diff --git a/.github/workflows/go-tests-other-os.yml b/.github/workflows/go-tests-other-os.yml deleted file mode 100644 index c06135ab82b9..000000000000 --- a/.github/workflows/go-tests-other-os.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: "Go: Run Tests - Other OS" -on: - pull_request: - paths: - - "go/**" - - "!go/documentation/**" - - "!go/ql/**" # don't run other-os if only ql/ files changed - - .github/workflows/go-tests-other-os.yml - - .github/actions/** - - codeql-workspace.yml - - MODULE.bazel - - .bazelrc - - misc/bazel/** - -permissions: - contents: read - -jobs: - test-mac: - name: Test MacOS - runs-on: macos-latest - steps: - - name: Check out code - uses: actions/checkout@v4 - - name: Run tests - uses: ./go/actions/test - - test-win: - name: Test Windows - runs-on: windows-latest - steps: - - name: Check out code - uses: actions/checkout@v4 - - name: Run tests - uses: ./go/actions/test diff --git a/.github/workflows/go-tests-rtjo.yml b/.github/workflows/go-tests-rtjo.yml deleted file mode 100644 index 43721fa1011a..000000000000 --- a/.github/workflows/go-tests-rtjo.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: "Go: Run RTJO Tests" -on: - pull_request: - types: - - labeled - -permissions: - contents: read - -jobs: - test-linux: - if: "github.repository_owner == 'github' && github.event.label.name == 'Run: RTJO Language Tests'" - name: RTJO Test Linux (Ubuntu) - runs-on: ubuntu-latest-xl - steps: - - name: Check out code - uses: actions/checkout@v4 - - name: Run tests - uses: ./go/actions/test - with: - run-code-checks: true - dynamic-join-order-mode: all diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 994aba441826..c30abdd9e5d7 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -1,20 +1,9 @@ name: "Go: Run Tests" on: - push: - paths: - - "go/**" - - "!go/documentation/**" - - "shared/**" - - .github/workflows/go-tests.yml - - .github/actions/** - - codeql-workspace.yml - branches: - - main - - "rc/*" pull_request: paths: - "go/**" - - "!go/documentation/**" + - "!go/documentation/**" - "shared/**" - .github/workflows/go-tests.yml - .github/actions/** diff --git a/MODULE.bazel b/MODULE.bazel index c30304156e37..3b2532b08afd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -37,6 +37,7 @@ bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True # 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" +# run buildutils-internal/scripts/fill-rust-sha256s.py when updating (internal repo) RUST_VERSION = "1.86.0" rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") @@ -47,6 +48,29 @@ rust.toolchain( "x86_64-apple-darwin", "aarch64-apple-darwin", ], + # generated by buildutils-internal/scripts/fill-rust-sha256s.py (internal repo) + sha256s = { + "rustc-1.86.0-x86_64-unknown-linux-gnu.tar.xz": "4438b809ce4a083af31ed17aeeedcc8fc60ccffc0625bef1926620751b6989d7", + "rustc-1.86.0-x86_64-apple-darwin.tar.xz": "42b76253626febb7912541a30d3379f463dec89581aad4cb72c6c04fb5a71dc5", + "rustc-1.86.0-aarch64-apple-darwin.tar.xz": "23b8f52102249a47ab5bc859d54c9a3cb588a3259ba3f00f557d50edeca4fde9", + "rustc-1.86.0-x86_64-pc-windows-msvc.tar.xz": "fdde839fea274529a31e51eb85c6df1782cc8479c9d1bc24e2914d66a0de41ab", + "clippy-1.86.0-x86_64-unknown-linux-gnu.tar.xz": "02aaff2c1407d2da8dba19aa4970dd873e311902b120a66cbcdbe51eb8836edf", + "clippy-1.86.0-x86_64-apple-darwin.tar.xz": "bb85efda7bbffaf124867f5ca36d50932b1e8f533c62ee923438afb32ff8fe9a", + "clippy-1.86.0-aarch64-apple-darwin.tar.xz": "239fa3a604b124f0312f2af08537874a1227dba63385484b468cca62e7c4f2f2", + "clippy-1.86.0-x86_64-pc-windows-msvc.tar.xz": "d00498f47d49219f032e2c5eeebdfc3d32317c0dc3d3fd7125327445bc482cb4", + "cargo-1.86.0-x86_64-unknown-linux-gnu.tar.xz": "c5c1590f7e9246ad9f4f97cfe26ffa92707b52a769726596a9ef81565ebd908b", + "cargo-1.86.0-x86_64-apple-darwin.tar.xz": "af163eb02d1a178044d1b4f2375960efd47130f795f6e33d09e345454bb26f4e", + "cargo-1.86.0-aarch64-apple-darwin.tar.xz": "3cb13873d48c3e1e4cc684d42c245226a11fba52af6b047c3346ed654e7a05c0", + "cargo-1.86.0-x86_64-pc-windows-msvc.tar.xz": "e57a9d89619b5604899bac443e68927bdd371e40f2e03e18950b6ceb3eb67966", + "llvm-tools-1.86.0-x86_64-unknown-linux-gnu.tar.xz": "282145ab7a63c98b625856f44b905b4dc726b497246b824632a5790debe95a78", + "llvm-tools-1.86.0-x86_64-apple-darwin.tar.xz": "b55706e92f7da989207c50c13c7add483a9fedd233bc431b106eca2a8f151ec9", + "llvm-tools-1.86.0-aarch64-apple-darwin.tar.xz": "04d3618c686845853585f036e3211eb9e18f2d290f4610a7a78bdc1fcce1ebd9", + "llvm-tools-1.86.0-x86_64-pc-windows-msvc.tar.xz": "721a17cc8dc219177e4277a3592253934ef08daa1e1b12eda669a67d15fad8dd", + "rust-std-1.86.0-x86_64-unknown-linux-gnu.tar.xz": "67be7184ea388d8ce0feaf7fdea46f1775cfc2970930264343b3089898501d37", + "rust-std-1.86.0-x86_64-apple-darwin.tar.xz": "3b1140d54870a080080e84700143f4a342fbd02a410a319b05d9c02e7dcf44cc", + "rust-std-1.86.0-aarch64-apple-darwin.tar.xz": "0fb121fb3b8fa9027d79ff598500a7e5cd086ddbc3557482ed3fdda00832c61b", + "rust-std-1.86.0-x86_64-pc-windows-msvc.tar.xz": "3d5354b7b9cb950b58bff3fce18a652aa374bb30c8f70caebd3bd0b43cb41a33", + }, versions = [RUST_VERSION], ) use_repo(rust, "rust_toolchains") @@ -206,6 +230,7 @@ use_repo( "kotlin-compiler-2.1.0-Beta1", "kotlin-compiler-2.1.20-Beta1", "kotlin-compiler-2.2.0-Beta1", + "kotlin-compiler-2.2.20-Beta2", "kotlin-compiler-embeddable-1.6.0", "kotlin-compiler-embeddable-1.6.20", "kotlin-compiler-embeddable-1.7.0", @@ -218,6 +243,7 @@ use_repo( "kotlin-compiler-embeddable-2.1.0-Beta1", "kotlin-compiler-embeddable-2.1.20-Beta1", "kotlin-compiler-embeddable-2.2.0-Beta1", + "kotlin-compiler-embeddable-2.2.20-Beta2", "kotlin-stdlib-1.6.0", "kotlin-stdlib-1.6.20", "kotlin-stdlib-1.7.0", @@ -230,6 +256,7 @@ use_repo( "kotlin-stdlib-2.1.0-Beta1", "kotlin-stdlib-2.1.20-Beta1", "kotlin-stdlib-2.2.0-Beta1", + "kotlin-stdlib-2.2.20-Beta2", ) go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 9547b4d46096..dffad0539b0e 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.4.14 + +No user-facing changes. + +## 0.4.13 + +### Bug Fixes + +* The `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` queries now exclude artifacts downloaded to `$[{ runner.temp }}` in addition to `/tmp`. + ## 0.4.12 ### Minor Analysis Improvements diff --git a/actions/ql/lib/change-notes/released/0.4.13.md b/actions/ql/lib/change-notes/released/0.4.13.md new file mode 100644 index 000000000000..1c7fa59a3568 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.13.md @@ -0,0 +1,5 @@ +## 0.4.13 + +### Bug Fixes + +* The `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` queries now exclude artifacts downloaded to `$[{ runner.temp }}` in addition to `/tmp`. diff --git a/actions/ql/lib/change-notes/released/0.4.14.md b/actions/ql/lib/change-notes/released/0.4.14.md new file mode 100644 index 000000000000..09e581963738 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.14.md @@ -0,0 +1,3 @@ +## 0.4.14 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 530dc320490d..3841668fe04e 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.12 +lastReleaseVersion: 0.4.14 diff --git a/actions/ql/lib/codeql/actions/Helper.qll b/actions/ql/lib/codeql/actions/Helper.qll index 48b70061ec0f..348ec75a5193 100644 --- a/actions/ql/lib/codeql/actions/Helper.qll +++ b/actions/ql/lib/codeql/actions/Helper.qll @@ -72,7 +72,7 @@ string normalizePath(string path) { then result = path else // foo -> GITHUB_WORKSPACE/foo - if path.regexpMatch("^[^/~].*") + if path.regexpMatch("^[^$/~].*") then result = "GITHUB_WORKSPACE/" + path.regexpReplaceAll("/$", "") else // ~/foo -> ~/foo diff --git a/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll b/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll index d8d5f83c867d..f0649bb8174e 100644 --- a/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll +++ b/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll @@ -262,8 +262,10 @@ class ArtifactPoisoningSink extends DataFlow::Node { ArtifactPoisoningSink() { download.getAFollowingStep() = poisonable and - // excluding artifacts downloaded to /tmp + // excluding artifacts downloaded to the temporary directory not download.getPath().regexpMatch("^/tmp.*") and + not download.getPath().regexpMatch("^\\$\\{\\{\\s*runner\\.temp\\s*}}.*") and + not download.getPath().regexpMatch("^\\$RUNNER_TEMP.*") and ( poisonable.(Run).getScript() = this.asExpr() and ( diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index f5e82a8647a6..6616f1dfc129 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.12 +version: 0.4.14 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index b2846cd81fc0..09fb20778fcf 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.6.6 + +No user-facing changes. + +## 0.6.5 + +No user-facing changes. + ## 0.6.4 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.5.md b/actions/ql/src/change-notes/released/0.6.5.md new file mode 100644 index 000000000000..b2bc387588d8 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.5.md @@ -0,0 +1,3 @@ +## 0.6.5 + +No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.6.md b/actions/ql/src/change-notes/released/0.6.6.md new file mode 100644 index 000000000000..ab10d897be1d --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.6.md @@ -0,0 +1,3 @@ +## 0.6.6 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index ced8cf94614b..f4cae0a77ada 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.4 +lastReleaseVersion: 0.6.6 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 442839b0dcf2..38ef0c2f0bc3 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.4 +version: 0.6.6 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning93.yml b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning93.yml new file mode 100644 index 000000000000..5bebc3484e68 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning93.yml @@ -0,0 +1,19 @@ +on: + workflow_run: + workflows: + - Benchmark + types: + - completed + +jobs: + benchmark: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download From PR + uses: actions/download-artifact@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + path: ${{ runner.temp }}/artifacts/ + - run: npm install \ No newline at end of file diff --git a/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning94.yml b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning94.yml new file mode 100644 index 000000000000..bee8abd41206 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning94.yml @@ -0,0 +1,19 @@ +on: + workflow_run: + workflows: + - Benchmark + types: + - completed + +jobs: + benchmark: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download From PR + uses: actions/download-artifact@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + path: /tmp/artifacts/ + - run: npm install \ No newline at end of file diff --git a/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning95.yml b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning95.yml new file mode 100644 index 000000000000..7a1aca467604 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning95.yml @@ -0,0 +1,19 @@ +on: + workflow_run: + workflows: + - Benchmark + types: + - completed + +jobs: + benchmark: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download From PR + uses: actions/download-artifact@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + path: $RUNNER_TEMP/artifacts/ + - run: npm install \ No newline at end of file diff --git a/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning96.yml b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning96.yml new file mode 100644 index 000000000000..f970a3fa1979 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning96.yml @@ -0,0 +1,18 @@ +on: + workflow_run: + workflows: + - Benchmark + types: + - completed + +jobs: + benchmark: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download From PR + uses: actions/download-artifact@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + - run: npm install \ No newline at end of file diff --git a/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning97.yml b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning97.yml new file mode 100644 index 000000000000..1bd28bafdd6e --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-829/.github/workflows/artifactpoisoning97.yml @@ -0,0 +1,19 @@ +on: + workflow_run: + workflows: + - Benchmark + types: + - completed + +jobs: + benchmark: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Download From PR + uses: actions/download-artifact@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + path: ${{ runner.temp }}/artifacts/ + - run: npm install diff --git a/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected b/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected index aa0057d60a1b..2d29cd9b79b4 100644 --- a/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected +++ b/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected @@ -13,6 +13,7 @@ edges | .github/workflows/artifactpoisoning42.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning42.yml:22:14:22:18 | ./cmd | provenance | Config | | .github/workflows/artifactpoisoning71.yml:9:9:16:6 | Uses Step | .github/workflows/artifactpoisoning71.yml:17:14:18:40 | sed -f config foo.md > bar.md\n | provenance | Config | | .github/workflows/artifactpoisoning81.yml:28:9:31:6 | Uses Step | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | provenance | Config | +| .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | provenance | Config | | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | provenance | Config | | .github/workflows/test18.yml:12:15:33:12 | Uses Step | .github/workflows/test18.yml:36:15:40:58 | Uses Step | provenance | Config | | .github/workflows/test25.yml:22:9:32:6 | Uses Step: downloadBuildScan | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | provenance | Config | @@ -44,6 +45,8 @@ nodes | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | semmle.label | python test.py | | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | semmle.label | Uses Step | | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | semmle.label | make snapshot | +| .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | semmle.label | Uses Step | +| .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | semmle.label | npm install | | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | semmle.label | Uses Step | | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | semmle.label | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | | .github/workflows/test18.yml:12:15:33:12 | Uses Step | semmle.label | Uses Step | @@ -66,6 +69,7 @@ subpaths | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | .github/workflows/artifactpoisoning81.yml:28:9:31:6 | Uses Step | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | python test.py | .github/workflows/artifactpoisoning81.yml:3:5:3:23 | pull_request_target | pull_request_target | | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | Uses Step | .github/workflows/artifactpoisoning92.yml:3:3:3:14 | workflow_run | workflow_run | | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | make snapshot | .github/workflows/artifactpoisoning92.yml:3:3:3:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | npm install | .github/workflows/artifactpoisoning96.yml:2:3:2:14 | workflow_run | workflow_run | | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | .github/workflows/artifactpoisoning101.yml:4:3:4:21 | pull_request_target | pull_request_target | | .github/workflows/test18.yml:36:15:40:58 | Uses Step | .github/workflows/test18.yml:12:15:33:12 | Uses Step | .github/workflows/test18.yml:36:15:40:58 | Uses Step | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/test18.yml:36:15:40:58 | Uses Step | Uses Step | .github/workflows/test18.yml:3:5:3:16 | workflow_run | workflow_run | | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | .github/workflows/test25.yml:22:9:32:6 | Uses Step: downloadBuildScan | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | ./gradlew buildScanPublishPrevious\n | .github/workflows/test25.yml:2:3:2:14 | workflow_run | workflow_run | diff --git a/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningMedium.expected b/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningMedium.expected index 09aed9e34a10..c0c52e47f5b3 100644 --- a/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningMedium.expected +++ b/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningMedium.expected @@ -13,6 +13,7 @@ edges | .github/workflows/artifactpoisoning42.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning42.yml:22:14:22:18 | ./cmd | provenance | Config | | .github/workflows/artifactpoisoning71.yml:9:9:16:6 | Uses Step | .github/workflows/artifactpoisoning71.yml:17:14:18:40 | sed -f config foo.md > bar.md\n | provenance | Config | | .github/workflows/artifactpoisoning81.yml:28:9:31:6 | Uses Step | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | provenance | Config | +| .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | provenance | Config | | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | provenance | Config | | .github/workflows/test18.yml:12:15:33:12 | Uses Step | .github/workflows/test18.yml:36:15:40:58 | Uses Step | provenance | Config | | .github/workflows/test25.yml:22:9:32:6 | Uses Step: downloadBuildScan | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | provenance | Config | @@ -44,6 +45,8 @@ nodes | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | semmle.label | python test.py | | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | semmle.label | Uses Step | | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | semmle.label | make snapshot | +| .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | semmle.label | Uses Step | +| .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | semmle.label | npm install | | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | semmle.label | Uses Step | | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | semmle.label | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | | .github/workflows/test18.yml:12:15:33:12 | Uses Step | semmle.label | Uses Step | diff --git a/actions/ql/test/query-tests/Security/CWE-829/UntrustedCheckoutCritical.expected b/actions/ql/test/query-tests/Security/CWE-829/UntrustedCheckoutCritical.expected index 5d7a94aead0b..39e54b2bbaed 100644 --- a/actions/ql/test/query-tests/Security/CWE-829/UntrustedCheckoutCritical.expected +++ b/actions/ql/test/query-tests/Security/CWE-829/UntrustedCheckoutCritical.expected @@ -51,6 +51,16 @@ edges | .github/workflows/artifactpoisoning92.yml:19:9:25:6 | Run Step: metadata | .github/workflows/artifactpoisoning92.yml:25:9:28:6 | Uses Step | | .github/workflows/artifactpoisoning92.yml:25:9:28:6 | Uses Step | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | .github/workflows/artifactpoisoning92.yml:29:9:29:27 | Run Step | +| .github/workflows/artifactpoisoning93.yml:12:9:13:6 | Uses Step | .github/workflows/artifactpoisoning93.yml:13:9:19:6 | Uses Step | +| .github/workflows/artifactpoisoning93.yml:13:9:19:6 | Uses Step | .github/workflows/artifactpoisoning93.yml:19:9:19:24 | Run Step | +| .github/workflows/artifactpoisoning94.yml:12:9:13:6 | Uses Step | .github/workflows/artifactpoisoning94.yml:13:9:19:6 | Uses Step | +| .github/workflows/artifactpoisoning94.yml:13:9:19:6 | Uses Step | .github/workflows/artifactpoisoning94.yml:19:9:19:24 | Run Step | +| .github/workflows/artifactpoisoning95.yml:12:9:13:6 | Uses Step | .github/workflows/artifactpoisoning95.yml:13:9:19:6 | Uses Step | +| .github/workflows/artifactpoisoning95.yml:13:9:19:6 | Uses Step | .github/workflows/artifactpoisoning95.yml:19:9:19:24 | Run Step | +| .github/workflows/artifactpoisoning96.yml:12:9:13:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | +| .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:18:9:18:24 | Run Step | +| .github/workflows/artifactpoisoning97.yml:12:9:13:6 | Uses Step | .github/workflows/artifactpoisoning97.yml:13:9:19:6 | Uses Step | +| .github/workflows/artifactpoisoning97.yml:13:9:19:6 | Uses Step | .github/workflows/artifactpoisoning97.yml:19:9:19:25 | Run Step | | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:16:9:19:59 | Run Step: pr_number | | .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:27:9:32:6 | Uses Step | | .github/workflows/auto_ci.yml:27:9:32:6 | Uses Step | .github/workflows/auto_ci.yml:32:9:37:6 | Run Step | diff --git a/config/identical-files.json b/config/identical-files.json index 56aac5604734..89beb48acd40 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -231,35 +231,10 @@ "java/ql/src/experimental/Security/CWE/CWE-400/LocalThreadResourceAbuse.qhelp", "java/ql/src/experimental/Security/CWE/CWE-400/ThreadResourceAbuse.qhelp" ], - "CryptoAlgorithms Python/JS/Ruby": [ - "javascript/ql/lib/semmle/javascript/security/CryptoAlgorithms.qll", - "python/ql/lib/semmle/python/concepts/CryptoAlgorithms.qll", - "ruby/ql/lib/codeql/ruby/security/CryptoAlgorithms.qll", - "rust/ql/lib/codeql/rust/security/CryptoAlgorithms.qll" - ], - "CryptoAlgorithmNames Python/JS/Ruby": [ - "javascript/ql/lib/semmle/javascript/security/internal/CryptoAlgorithmNames.qll", - "python/ql/lib/semmle/python/concepts/internal/CryptoAlgorithmNames.qll", - "ruby/ql/lib/codeql/ruby/security/internal/CryptoAlgorithmNames.qll", - "rust/ql/lib/codeql/rust/security/internal/CryptoAlgorithmNames.qll" - ], - "SensitiveDataHeuristics Python/JS": [ - "javascript/ql/lib/semmle/javascript/security/internal/SensitiveDataHeuristics.qll", - "python/ql/lib/semmle/python/security/internal/SensitiveDataHeuristics.qll", - "ruby/ql/lib/codeql/ruby/security/internal/SensitiveDataHeuristics.qll", - "swift/ql/lib/codeql/swift/security/internal/SensitiveDataHeuristics.qll", - "rust/ql/lib/codeql/rust/security/internal/SensitiveDataHeuristics.qll" - ], "IncompleteUrlSubstringSanitization": [ "javascript/ql/src/Security/CWE-020/IncompleteUrlSubstringSanitization.qll", "ruby/ql/src/queries/security/cwe-020/IncompleteUrlSubstringSanitization.qll" ], - "Concepts Python/Ruby/JS": [ - "python/ql/lib/semmle/python/internal/ConceptsShared.qll", - "ruby/ql/lib/codeql/ruby/internal/ConceptsShared.qll", - "javascript/ql/lib/semmle/javascript/internal/ConceptsShared.qll", - "rust/ql/lib/codeql/rust/internal/ConceptsShared.qll" - ], "ApiGraphModels": [ "javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll", "ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll", diff --git a/cpp/bulk_generation_targets.yml b/cpp/bulk_generation_targets.yml index dbcec7bf9ddf..39b5d4e56f9a 100644 --- a/cpp/bulk_generation_targets.yml +++ b/cpp/bulk_generation_targets.yml @@ -2,6 +2,9 @@ language: cpp strategy: dca destination: cpp/ql/lib/ext/generated targets: +- name: glibc + with-sinks: false + with-sources: false - name: zlib with-sinks: false with-sources: false diff --git a/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/old.dbscheme b/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/old.dbscheme new file mode 100644 index 000000000000..5340d6d5f428 --- /dev/null +++ b/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/old.dbscheme @@ -0,0 +1,2423 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/semmlecode.cpp.dbscheme b/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..801b2f03360d --- /dev/null +++ b/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/semmlecode.cpp.dbscheme @@ -0,0 +1,2433 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/upgrade.properties b/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/upgrade.properties new file mode 100644 index 000000000000..a469b3025bfb --- /dev/null +++ b/cpp/downgrades/5340d6d5f428557632b1a50113e406430f29ef7d/upgrade.properties @@ -0,0 +1,2 @@ +description: Uncomment cases in dbscheme +compatibility: full diff --git a/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/old.dbscheme b/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/old.dbscheme new file mode 100644 index 000000000000..5491582ac851 --- /dev/null +++ b/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/old.dbscheme @@ -0,0 +1,2428 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/semmlecode.cpp.dbscheme b/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..827dbc206ea5 --- /dev/null +++ b/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/semmlecode.cpp.dbscheme @@ -0,0 +1,2451 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/upgrade.properties b/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/upgrade.properties new file mode 100644 index 000000000000..1a8afbbb9c3a --- /dev/null +++ b/cpp/downgrades/5491582ac8511726e12fae3e2399000f9201cd9a/upgrade.properties @@ -0,0 +1,2 @@ +description: Remove unused external_package tables from the dbscheme +compatibility: full diff --git a/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql new file mode 100644 index 000000000000..9088493ce34c --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql @@ -0,0 +1,14 @@ +class BuiltinType extends @builtintype { + string toString() { none() } +} + +from BuiltinType type, string name, int kind, int kind_new, int size, int sign, int alignment +where + builtintypes(type, name, kind, size, sign, alignment) and + if + type instanceof @complex_fp16 or + type instanceof @complex_std_bfloat16 or + type instanceof @complex_std_float16 + then kind_new = 2 + else kind_new = kind +select type, name, kind_new, size, sign, alignment diff --git a/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme new file mode 100644 index 000000000000..7bc12b02a436 --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme @@ -0,0 +1,2509 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..e38346051783 --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme @@ -0,0 +1,2506 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties new file mode 100644 index 000000000000..c8d1d2d3c3a3 --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties @@ -0,0 +1,3 @@ +description: Introduce new complex 16-bit floating-point types +compatibility: backwards +builtintypes.rel: run builtintypes.qlo diff --git a/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/functions.ql b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/functions.ql new file mode 100644 index 000000000000..229e70616590 --- /dev/null +++ b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/functions.ql @@ -0,0 +1,9 @@ +class Function extends @function { + string toString() { none() } +} + +from Function f, string n, int k, int new_k +where + functions(f, n, k) and + if builtin_functions(f) then new_k = 6 else new_k = k +select f, n, new_k diff --git a/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/old.dbscheme b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/old.dbscheme new file mode 100644 index 000000000000..801b2f03360d --- /dev/null +++ b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/old.dbscheme @@ -0,0 +1,2433 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/semmlecode.cpp.dbscheme b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..5491582ac851 --- /dev/null +++ b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/semmlecode.cpp.dbscheme @@ -0,0 +1,2428 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/upgrade.properties b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/upgrade.properties new file mode 100644 index 000000000000..64195daeaeea --- /dev/null +++ b/cpp/downgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/upgrade.properties @@ -0,0 +1,4 @@ +description: Move builtin function identification to its own table +compatibility: full +functions.rel: run functions.qlo +builtin_functions.rel: delete diff --git a/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/old.dbscheme b/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/old.dbscheme new file mode 100644 index 000000000000..827dbc206ea5 --- /dev/null +++ b/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/old.dbscheme @@ -0,0 +1,2451 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/semmlecode.cpp.dbscheme b/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..e70d0b653187 --- /dev/null +++ b/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/semmlecode.cpp.dbscheme @@ -0,0 +1,2475 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_default ; + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location ref, + int bodylocation: @location ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/upgrade.properties b/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/upgrade.properties new file mode 100644 index 000000000000..c77161910eea --- /dev/null +++ b/cpp/downgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/upgrade.properties @@ -0,0 +1,2 @@ +description: sync dbscheme and delete svn tables +compatibility: full diff --git a/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/downgrades.ql b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/downgrades.ql new file mode 100644 index 000000000000..973fdeaba7c5 --- /dev/null +++ b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/downgrades.ql @@ -0,0 +1,161 @@ +class Accessible extends @accessible { + string toString() { none() } +} + +class Container extends @container { + string toString() { none() } +} + +class Expr extends @expr { + string toString() { none() } +} + +class Initialiser extends @initialiser { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +class Stmt extends @stmt { + string toString() { none() } +} + +predicate isLocationDefault(Location l) { + diagnostics(_, _, _, _, _, l) + or + macroinvocations(_, _, l, _) + or + fun_decls(_, _, _, _, l) + or + var_decls(_, _, _, _, l) + or + type_decls(_, _, l) + or + namespace_decls(_, _, l, _) + or + namespace_decls(_, _, _, l) + or + usings(_, _, l, _) + or + static_asserts(_, _, _, l, _) + or + enumconstants(_, _, _, _, _, l) + or + concept_templates(_, _, l) + or + attributes(_, _, _, _, l) + or + attribute_args(_, _, _, _, l) + or + derivations(_, _, _, _, l) + or + frienddecls(_, _, _, l) + or + comments(_, _, l) + or + namequalifiers(_, _, _, l) + or + lambda_capture(_, _, _, _, _, _, l) + or + preprocdirects(_, _, l) + or + xmllocations(_, l) + or + locations_default(l, _, 0, 0, 0, 0) // For containers. +} + +predicate isLocationExpr(Location l) { + initialisers(_, _, _, l) + or + exprs(_, _, l) +} + +predicate isLocationStmt(Location l) { stmts(_, _, l) } + +newtype TExprOrStmtLocation = + TExprLocation(Location l, Container c, int startLine, int startColumn, int endLine, int endColumn) { + isLocationExpr(l) and + (isLocationDefault(l) or isLocationStmt(l)) and + locations_default(l, c, startLine, startColumn, endLine, endColumn) + } or + TStmtLocation(Location l, Container c, int startLine, int startColumn, int endLine, int endColumn) { + isLocationStmt(l) and + (isLocationDefault(l) or isLocationExpr(l)) and + locations_default(l, c, startLine, startColumn, endLine, endColumn) + } + +module Fresh = QlBuiltins::NewEntity; + +class NewLocationBase = @location_default or Fresh::EntityId; + +class NewLocation extends NewLocationBase { + string toString() { none() } +} + +query predicate new_locations_default( + NewLocation l, Container c, int startLine, int startColumn, int endLine, int endColumn +) { + isLocationDefault(l) and + locations_default(l, c, startLine, startColumn, endLine, endColumn) +} + +query predicate new_locations_expr( + NewLocation l, Container c, int startLine, int startColumn, int endLine, int endColumn +) { + exists(Location l_old | + isLocationExpr(l_old) and + locations_default(l_old, c, startLine, startColumn, endLine, endColumn) + | + if not isLocationDefault(l_old) and not isLocationStmt(l) + then l = l_old + else l = Fresh::map(TExprLocation(l_old, c, startLine, startColumn, endLine, endColumn)) + ) +} + +query predicate new_locations_stmt( + NewLocation l, Container c, int startLine, int startColumn, int endLine, int endColumn +) { + exists(Location l_old | + isLocationStmt(l_old) and + locations_default(l_old, c, startLine, startColumn, endLine, endColumn) + | + if not isLocationDefault(l_old) and not isLocationExpr(l) + then l = l_old + else l = Fresh::map(TStmtLocation(l_old, c, startLine, startColumn, endLine, endColumn)) + ) +} + +query predicate new_exprs(Expr e, int kind, NewLocation l) { + exists(Location l_old, Container c, int startLine, int startColumn, int endLine, int endColumn | + exprs(e, kind, l_old) and + locations_default(l_old, c, startLine, startColumn, endLine, endColumn) + | + if not isLocationDefault(l_old) and not isLocationStmt(l) + then l = l_old + else l = Fresh::map(TExprLocation(l_old, c, startLine, startColumn, endLine, endColumn)) + ) +} + +query predicate new_initialisers(Initialiser i, Accessible v, Expr e, NewLocation l) { + exists(Location l_old, Container c, int startLine, int startColumn, int endLine, int endColumn | + initialisers(i, v, e, l_old) and + locations_default(l_old, c, startLine, startColumn, endLine, endColumn) + | + if not isLocationDefault(l_old) and not isLocationStmt(l) + then l = l_old + else l = Fresh::map(TExprLocation(l_old, c, startLine, startColumn, endLine, endColumn)) + ) +} + +query predicate new_stmts(Stmt s, int kind, NewLocation l) { + exists(Location l_old, Container c, int startLine, int startColumn, int endLine, int endColumn | + stmts(s, kind, l_old) and + locations_default(l_old, c, startLine, startColumn, endLine, endColumn) + | + if not isLocationDefault(l_old) and not isLocationExpr(l) + then l = l_old + else l = Fresh::map(TStmtLocation(l_old, c, startLine, startColumn, endLine, endColumn)) + ) +} diff --git a/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/old.dbscheme b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/old.dbscheme new file mode 100644 index 000000000000..e70d0b653187 --- /dev/null +++ b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/old.dbscheme @@ -0,0 +1,2475 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_default ; + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location ref, + int bodylocation: @location ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/semmlecode.cpp.dbscheme b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..7bc12b02a436 --- /dev/null +++ b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/semmlecode.cpp.dbscheme @@ -0,0 +1,2509 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/upgrade.properties b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/upgrade.properties new file mode 100644 index 000000000000..25f408d9b7e5 --- /dev/null +++ b/cpp/downgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/upgrade.properties @@ -0,0 +1,8 @@ +description: Merge location tables +compatibility: partial +locations_default.rel: run downgrades.ql new_locations_default +locations_expr.rel: run downgrades.ql new_locations_expr +locations_stmt.rel: run downgrades.ql new_locations_stmt +exprs.rel: run downgrades.ql new_exprs +initialisers.rel: run downgrades.ql new_initialisers +stmts.rel: run downgrades.ql new_stmts diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/b.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/b.c index 76369e11f221..e9973998d64a 100644 --- a/cpp/ql/integration-tests/header-variant-tests/clang-pch/b.c +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/b.c @@ -4,4 +4,3 @@ int main() { return ONE + TWO + THREE + FOUR; } -// semmle-extractor-options: --clang -include-pch ${testdir}/clang-pch.testproj/a.pch -Iextra_dummy_path diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 392305a64890..def048bdd3c3 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,30 @@ +## 5.4.0 + +### New Features + +* Exposed various SSA-related classes (`Definition`, `PhiNode`, `ExplicitDefinition`, `DirectExplicitDefinition`, and `IndirectExplicitDefinition`) which were previously only usable inside the internal dataflow directory. + +### Minor Analysis Improvements + +* The `cpp/overrun-write` query now recognizes more bound checks and thus produces fewer false positives. + +## 5.3.0 + +### Deprecated APIs + +* The `UnknownDefaultLocation`, `UnknownExprLocation`, and `UnknownStmtLocation` classes have been deprecated. Use `UnknownLocation` instead. + +### New Features + +* Added a `isFinalValueOfParameter` predicate to `DataFlow::Node` which holds when a dataflow node represents the final value of an output parameter of a function. + +### Minor Analysis Improvements + +* The `FunctionWithWrappers` library (`semmle.code.cpp.security.FunctionWithWrappers`) no longer considers calls through function pointers as wrapper functions. +* The analysis of C/C++ code targeting 64-bit Arm platforms has been improved. This includes support for the Arm-specific builtin functions, support for the `arm_neon.h` header and Neon vector types, and support for the `fp8` scalar type. The `arm_sve.h` header and scalable vectors are only partially supported at this point. +* Added support for `__fp16 _Complex` and `__bf16 _Complex` types +* Added `sql-injection` sink models for the Oracle Call Interface (OCI) database library functions `OCIStmtPrepare` and `OCIStmtPrepare2`. + ## 5.2.0 ### Deprecated APIs diff --git a/cpp/ql/lib/change-notes/released/5.3.0.md b/cpp/ql/lib/change-notes/released/5.3.0.md new file mode 100644 index 000000000000..a7ea151fcf33 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/5.3.0.md @@ -0,0 +1,16 @@ +## 5.3.0 + +### Deprecated APIs + +* The `UnknownDefaultLocation`, `UnknownExprLocation`, and `UnknownStmtLocation` classes have been deprecated. Use `UnknownLocation` instead. + +### New Features + +* Added a `isFinalValueOfParameter` predicate to `DataFlow::Node` which holds when a dataflow node represents the final value of an output parameter of a function. + +### Minor Analysis Improvements + +* The `FunctionWithWrappers` library (`semmle.code.cpp.security.FunctionWithWrappers`) no longer considers calls through function pointers as wrapper functions. +* The analysis of C/C++ code targeting 64-bit Arm platforms has been improved. This includes support for the Arm-specific builtin functions, support for the `arm_neon.h` header and Neon vector types, and support for the `fp8` scalar type. The `arm_sve.h` header and scalable vectors are only partially supported at this point. +* Added support for `__fp16 _Complex` and `__bf16 _Complex` types +* Added `sql-injection` sink models for the Oracle Call Interface (OCI) database library functions `OCIStmtPrepare` and `OCIStmtPrepare2`. diff --git a/cpp/ql/lib/change-notes/released/5.4.0.md b/cpp/ql/lib/change-notes/released/5.4.0.md new file mode 100644 index 000000000000..8c8cea5440c6 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/5.4.0.md @@ -0,0 +1,9 @@ +## 5.4.0 + +### New Features + +* Exposed various SSA-related classes (`Definition`, `PhiNode`, `ExplicitDefinition`, `DirectExplicitDefinition`, and `IndirectExplicitDefinition`) which were previously only usable inside the internal dataflow directory. + +### Minor Analysis Improvements + +* The `cpp/overrun-write` query now recognizes more bound checks and thus produces fewer false positives. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 9e57a36a7dce..afb2156eaa2b 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.2.0 +lastReleaseVersion: 5.4.0 diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index 168c25cdfaa0..53cf7292b12f 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -8,7 +8,7 @@ module CryptoInput implements InputSig { class LocatableElement = Language::Locatable; - class UnknownLocation = Language::UnknownDefaultLocation; + class UnknownLocation = Language::UnknownLocation; LocatableElement dfn_to_element(DataFlow::Node node) { result = node.asExpr() or @@ -56,7 +56,7 @@ module ArtifactFlowConfig implements DataFlow::ConfigSig { module ArtifactFlow = DataFlow::Global; /** - * Artifact output to node input configuration + * An artifact output to node input configuration */ abstract class AdditionalFlowInputStep extends DataFlow::Node { abstract DataFlow::Node getOutput(); @@ -91,9 +91,8 @@ module GenericDataSourceFlowConfig implements DataFlow::ConfigSig { module GenericDataSourceFlow = TaintTracking::Global; -private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { - ConstantDataSource() { this instanceof OpenSslGenericSourceCandidateLiteral } - +private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof OpenSslGenericSourceCandidateLiteral +{ override DataFlow::Node getOutputNode() { result.asExpr() = this } override predicate flowsTo(Crypto::FlowAwareElement other) { diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll index d46c2f691916..f802e58d0a76 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll @@ -48,7 +48,7 @@ module KnownOpenSslAlgorithmToAlgorithmValueConsumerConfig implements DataFlow:: module KnownOpenSslAlgorithmToAlgorithmValueConsumerFlow = DataFlow::Global; -module RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerConfig implements DataFlow::ConfigSig { +module RsaPaddingAlgorithmToPaddingAlgorithmValueConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr() instanceof OpenSslPaddingLiteral } predicate isSink(DataFlow::Node sink) { @@ -60,8 +60,8 @@ module RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerConfig implements DataF } } -module RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow = - DataFlow::Global; +module RsaPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow = + DataFlow::Global; class OpenSslAlgorithmAdditionalFlowStep extends AdditionalFlowInputStep { OpenSslAlgorithmAdditionalFlowStep() { exists(AlgorithmPassthroughCall c | c.getInNode() = this) } @@ -114,11 +114,11 @@ class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { override DataFlow::Node getOutNode() { result = outNode } } -class NIDToPointerPassthroughCall extends AlgorithmPassthroughCall { +class NidToPointerPassthroughCall extends AlgorithmPassthroughCall { DataFlow::Node inNode; DataFlow::Node outNode; - NIDToPointerPassthroughCall() { + NidToPointerPassthroughCall() { this.getTarget().getName() in ["OBJ_nid2obj", "OBJ_nid2ln", "OBJ_nid2sn"] and inNode.asExpr() = this.getArgument(0) and outNode.asExpr() = this @@ -150,11 +150,11 @@ class PointerToPointerPassthroughCall extends AlgorithmPassthroughCall { override DataFlow::Node getOutNode() { result = outNode } } -class PointerToNIDPassthroughCall extends AlgorithmPassthroughCall { +class PointerToNidPassthroughCall extends AlgorithmPassthroughCall { DataFlow::Node inNode; DataFlow::Node outNode; - PointerToNIDPassthroughCall() { + PointerToNidPassthroughCall() { this.getTarget().getName() in ["OBJ_obj2nid", "OBJ_ln2nid", "OBJ_sn2nid", "OBJ_txt2nid"] and ( inNode.asIndirectExpr() = this.getArgument(0) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll index 0fb8ecf95398..47ffd67924a6 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -33,9 +33,9 @@ predicate knownOpenSslConstantToCipherFamilyType( or name.matches("CAST5%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CAST5()) or - name.matches("2DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DoubleDES()) + name.matches("2DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DOUBLE_DES()) or - name.matches("3DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TripleDES()) + name.matches("3DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TRIPLE_DES()) or name.matches("DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES()) or @@ -113,7 +113,7 @@ class KnownOpenSslCipherConstantAlgorithmInstance extends OpenSslAlgorithmInstan this.(KnownOpenSslCipherAlgorithmExpr).getExplicitKeySize() = result } - override Crypto::KeyOpAlg::Algorithm getAlgorithmType() { + override KeyOpAlg::AlgorithmType getAlgorithmType() { knownOpenSslConstantToCipherFamilyType(this, result) or not knownOpenSslConstantToCipherFamilyType(this, _) and diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 9d60547a45ad..4328253f1a4f 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -210,7 +210,8 @@ string getAlgorithmAlias(string alias) { } /** - * Finds aliases of known alagorithms defined by users (through obj_name_add and various macros pointing to this function) + * Holds for aliases of known algorithms defined by users + * (through obj_name_add and various macros pointing to this function). * * The `target` and `alias` are converted to lowercase to be of a standard form. */ @@ -222,7 +223,7 @@ predicate customAliases(string target, string alias) { } /** - * A hard-coded mapping of known algorithm aliases in OpenSsl. + * Holds for a hard-coded mapping of known algorithm aliases in OpenSsl. * This was derived by applying the same kind of logic foun din `customAliases` to the * OpenSsl code base directly. * diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll index 2e476824316b..97b183b7e7d3 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll @@ -7,7 +7,7 @@ private import experimental.quantum.OpenSSL.Operations.OpenSSLOperations private import AlgToAVCFlow class KnownOpenSslMacConstantAlgorithmInstance extends OpenSslAlgorithmInstance, - Crypto::MACAlgorithmInstance instanceof KnownOpenSslMacAlgorithmExpr + Crypto::MacAlgorithmInstance instanceof KnownOpenSslMacAlgorithmExpr { OpenSslAlgorithmValueConsumer getterCall; @@ -39,14 +39,14 @@ class KnownOpenSslMacConstantAlgorithmInstance extends OpenSslAlgorithmInstance, result = this.(Call).getTarget().getName() } - override Crypto::TMACType getMacType() { - this instanceof KnownOpenSslHMacAlgorithmExpr and result instanceof Crypto::THMAC + override Crypto::MacType getMacType() { + this instanceof KnownOpenSslHMacAlgorithmExpr and result = Crypto::HMAC() or - this instanceof KnownOpenSslCMacAlgorithmExpr and result instanceof Crypto::TCMAC + this instanceof KnownOpenSslCMacAlgorithmExpr and result = Crypto::CMAC() } } -class KnownOpenSslHMacConstantAlgorithmInstance extends Crypto::HMACAlgorithmInstance, +class KnownOpenSslHMacConstantAlgorithmInstance extends Crypto::HmacAlgorithmInstance, KnownOpenSslMacConstantAlgorithmInstance { override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { @@ -54,13 +54,15 @@ class KnownOpenSslHMacConstantAlgorithmInstance extends Crypto::HMACAlgorithmIns then // ASSUMPTION: if there is an explicit hash algorithm, it is already modeled // and we can simply grab that model's AVC - exists(OpenSslAlgorithmInstance inst | inst.getAvc() = result and inst = this) + this.(OpenSslAlgorithmInstance).getAvc() = result else - // ASSUMPTION: If no explicit algorithm is given, then it is assumed to be configured by - // a signature operation - exists(Crypto::SignatureOperationInstance s | - s.getHashAlgorithmValueConsumer() = result and - s.getAnAlgorithmValueConsumer() = this.getAvc() + // ASSUMPTION: If no explicit algorithm is given, then find + // where the current AVC traces to a HashAlgorithmIO consuming operation step. + // TODO: need to consider getting reset values, tracing down to the first set for now + exists(OperationStep s, AvcContextCreationStep avc | + avc = this.getAvc() and + avc.flowsToOperationStep(s) and + s.getAlgorithmValueConsumerForInput(HashAlgorithmIO()) = result ) } } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll index 7a34b69ddf54..d487e05d0660 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll @@ -5,6 +5,7 @@ private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmCon private import AlgToAVCFlow private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import codeql.quantum.experimental.Standardization::Types::KeyOpAlg as KeyOpAlg /** * A class to define padding specific integer values. @@ -28,18 +29,18 @@ class OpenSslPaddingLiteral extends Literal { * Does not bind if there is no mapping (no mapping to 'unknown' or 'other'). */ predicate knownOpenSslConstantToPaddingFamilyType( - KnownOpenSslPaddingAlgorithmExpr e, Crypto::TPaddingType type + KnownOpenSslPaddingAlgorithmExpr e, KeyOpAlg::PaddingSchemeType type ) { exists(string name | name = e.(KnownOpenSslAlgorithmExpr).getNormalizedName() and ( - name.matches("OAEP") and type = Crypto::OAEP() + name = "OAEP" and type = KeyOpAlg::OAEP() or - name.matches("PSS") and type = Crypto::PSS() + name = "PSS" and type = KeyOpAlg::PSS() or - name.matches("PKCS7") and type = Crypto::PKCS7() + name = "PKCS7" and type = KeyOpAlg::PKCS7() or - name.matches("PKCS1V15") and type = Crypto::PKCS1_v1_5() + name = "PKCS1V15" and type = KeyOpAlg::PKCS1_V1_5() ) ) } @@ -85,7 +86,7 @@ class KnownOpenSslPaddingConstantAlgorithmInstance extends OpenSslAlgorithmInsta // Source is `this` src.asExpr() = this and // This traces to a padding-specific consumer - RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow::flow(src, sink) + RsaPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow::flow(src, sink) ) and isPaddingSpecificConsumer = true } @@ -98,24 +99,24 @@ class KnownOpenSslPaddingConstantAlgorithmInstance extends OpenSslAlgorithmInsta override OpenSslAlgorithmValueConsumer getAvc() { result = getterCall } - Crypto::TPaddingType getKnownPaddingType() { - this.(Literal).getValue().toInt() in [1, 7, 8] and result = Crypto::PKCS1_v1_5() + KeyOpAlg::PaddingSchemeType getKnownPaddingType() { + this.(Literal).getValue().toInt() in [1, 7, 8] and result = KeyOpAlg::PKCS1_V1_5() or - this.(Literal).getValue().toInt() = 3 and result = Crypto::NoPadding() + this.(Literal).getValue().toInt() = 3 and result = KeyOpAlg::NoPadding() or - this.(Literal).getValue().toInt() = 4 and result = Crypto::OAEP() + this.(Literal).getValue().toInt() = 4 and result = KeyOpAlg::OAEP() or - this.(Literal).getValue().toInt() = 5 and result = Crypto::ANSI_X9_23() + this.(Literal).getValue().toInt() = 5 and result = KeyOpAlg::ANSI_X9_23() or - this.(Literal).getValue().toInt() = 6 and result = Crypto::PSS() + this.(Literal).getValue().toInt() = 6 and result = KeyOpAlg::PSS() } - override Crypto::TPaddingType getPaddingType() { + override KeyOpAlg::PaddingSchemeType getPaddingType() { isPaddingSpecificConsumer = true and ( result = this.getKnownPaddingType() or - not exists(this.getKnownPaddingType()) and result = Crypto::OtherPadding() + not exists(this.getKnownPaddingType()) and result = KeyOpAlg::OtherPadding() ) or isPaddingSpecificConsumer = false and @@ -143,7 +144,7 @@ class KnownOpenSslPaddingConstantAlgorithmInstance extends OpenSslAlgorithmInsta // this instanceof Literal and // this.getValue().toInt() in [0, 1, 3, 4, 5, 6, 7, 8] // // TODO: trace to padding-specific consumers -// RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow +// RsaPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow // } // override string getRawPaddingAlgorithmName() { result = this.(Literal).getValue().toString() } // override Crypto::TPaddingType getPaddingType() { @@ -161,18 +162,18 @@ class KnownOpenSslPaddingConstantAlgorithmInstance extends OpenSslAlgorithmInsta // else result = Crypto::OtherPadding() // } // } -class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, +class OaepPaddingAlgorithmInstance extends Crypto::OaepPaddingAlgorithmInstance, KnownOpenSslPaddingConstantAlgorithmInstance { - OAEPPaddingAlgorithmInstance() { - this.(Crypto::PaddingAlgorithmInstance).getPaddingType() = Crypto::OAEP() + OaepPaddingAlgorithmInstance() { + this.(Crypto::PaddingAlgorithmInstance).getPaddingType() = KeyOpAlg::OAEP() } - override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { + override Crypto::HashAlgorithmInstance getOaepEncodingHashAlgorithm() { none() //TODO } - override Crypto::HashAlgorithmInstance getMGF1HashAlgorithm() { + override Crypto::HashAlgorithmInstance getMgf1HashAlgorithm() { none() //TODO } } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/SignatureAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/SignatureAlgorithmInstance.qll index afd67410c0ad..cc2e5771ffc8 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/SignatureAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/SignatureAlgorithmInstance.qll @@ -73,7 +73,7 @@ class KnownOpenSslSignatureConstantAlgorithmInstance extends OpenSslAlgorithmIns none() } - override KeyOpAlg::Algorithm getAlgorithmType() { + override KeyOpAlg::AlgorithmType getAlgorithmType() { knownOpenSslConstantToSignatureFamilyType(this, result) or not knownOpenSslConstantToSignatureFamilyType(this, _) and diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll index a4a65ead63d8..d200cf2a0961 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll @@ -4,10 +4,10 @@ private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmCon private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase /** - * Cases like EVP_MD5(), - * there is no input, rather it directly gets an algorithm - * and returns it. - * Also includes operations directly using an algorithm + * A call that is considered to inherently 'consume' an algorithm value. + * E.g., cases like EVP_MD5(), + * where there is no input, rather it directly gets an algorithm + * and returns it. Also includes operations directly using an algorithm * like AES_encrypt(). */ class DirectAlgorithmValueConsumer extends OpenSslAlgorithmValueConsumer instanceof OpenSslAlgorithmCall diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll index a03114b276d2..114cf78a112e 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll @@ -7,7 +7,7 @@ private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmI abstract class HashAlgorithmValueConsumer extends OpenSslAlgorithmValueConsumer { } /** - * EVP_Q_Digest directly consumes algorithm constant values + * An EVP_Q_Digest directly consumes algorithm constant values */ class Evp_Q_Digest_Algorithm_Consumer extends HashAlgorithmValueConsumer { Evp_Q_Digest_Algorithm_Consumer() { this.(Call).getTarget().getName() = "EVP_Q_digest" } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/CipherOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/CipherOperation.qll new file mode 100644 index 000000000000..44e30ddf9fc9 --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/CipherOperation.qll @@ -0,0 +1,273 @@ +import experimental.quantum.Language +private import OpenSSLOperationBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import EVPPKeyCtxInitializer + +/** + * A base class for all EVP cipher operations. + */ +abstract class EvpCipherInitializer extends OperationStep { + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and + type = PrimaryAlgorithmIO() and + // Constants that are not equal to zero or + // non-constants (e.g., variable accesses, which require data-flow to determine the value) + // A zero (null) value typically indicates use of this operation step to initialize + // other out parameters in a multi-step initialization. + (exists(result.asExpr().getValue()) implies result.asExpr().getValue().toInt() != 0) + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +/** + * A base class for EVP cipher/decrypt/encrypt 'ex' operations. + */ +abstract class EvpEXInitializer extends EvpCipherInitializer { + override DataFlow::Node getInput(IOType type) { + result = super.getInput(type) + or + ( + // Constants that are not equal to zero or + // non-constants (e.g., variable accesses, which require data-flow to determine the value) + // A zero (null) value typically indicates use of this operation step to initialize + // other out parameters in a multi-step initialization. + result.asExpr() = this.getArgument(3) and type = KeyIO() + or + result.asExpr() = this.getArgument(4) and type = IVorNonceIO() + ) and + (exists(result.asExpr().getValue()) implies result.asExpr().getValue().toInt() != 0) + } +} + +/** + * A base class for EVP cipher/decrypt/encrypt 'ex2' operations. + */ +abstract class EvpEX2Initializer extends EvpCipherInitializer { + override DataFlow::Node getInput(IOType type) { + result = super.getInput(type) + or + result.asExpr() = this.getArgument(2) and type = KeyIO() + or + result.asExpr() = this.getArgument(3) and type = IVorNonceIO() + } +} + +/** + * A Call to an EVP Cipher/Encrypt/Decrypt initialization operation. + */ +class EvpCipherEXInitCall extends EvpEXInitializer { + EvpCipherEXInitCall() { + this.getTarget().getName() in ["EVP_EncryptInit_ex", "EVP_DecryptInit_ex", "EVP_CipherInit_ex"] + } + + override DataFlow::Node getInput(IOType type) { + result = super.getInput(type) + or + // NOTE: for EncryptInit and DecryptInit there is no subtype arg + // the subtype is determined automatically by the initializer based on the operation name + this.getTarget().getName().toLowerCase().matches("%cipherinit%") and + result.asExpr() = this.getArgument(5) and + type = KeyOperationSubtypeIO() + } +} + +class Evp_Cipher_EX2_or_Simple_Init_Call extends EvpEX2Initializer { + Evp_Cipher_EX2_or_Simple_Init_Call() { + this.getTarget().getName() in [ + "EVP_EncryptInit_ex2", "EVP_DecryptInit_ex2", "EVP_CipherInit_ex2", "EVP_EncryptInit", + "EVP_DecryptInit", "EVP_CipherInit" + ] + } + + override DataFlow::Node getInput(IOType type) { + result = super.getInput(type) + or + this.getTarget().getName().toLowerCase().matches("%cipherinit%") and + result.asExpr() = this.getArgument(4) and + type = KeyOperationSubtypeIO() + } +} + +/** + * A call to EVP_Pkey_encrypt_init, EVP_Pkey_decrypt_init, or their 'ex' variants. + */ +class EvpPkeyEncryptDecryptInit extends OperationStep { + EvpPkeyEncryptDecryptInit() { + this.getTarget().getName() in [ + "EVP_PKEY_encrypt_init", "EVP_PKEY_encrypt_init_ex", "EVP_PKEY_decrypt_init", + "EVP_PKEY_decrypt_init_ex" + ] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = OsslParamIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +class EvpCipherInitSKeyCall extends EvpEX2Initializer { + EvpCipherInitSKeyCall() { this.getTarget().getName() = "EVP_CipherInit_SKEY" } + + override DataFlow::Node getInput(IOType type) { + result = super.getInput(type) + or + result.asExpr() = this.getArgument(5) and + type = KeyOperationSubtypeIO() + } +} + +//EVP_PKEY_encrypt_init +/** + * A Call to EVP_Cipher/Encrypt/DecryptUpdate. + * https://docs.openssl.org/3.2/man3/EVP_CipherUpdate + */ +class EvpCipherUpdateCall extends OperationStep { + EvpCipherUpdateCall() { + this.getTarget().getName() in ["EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate"] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(3) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(1) and type = CiphertextIO() + or + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = UpdateStep() } +} + +/** + * A base configuration for all EVP cipher operations. + */ +abstract class EvpCipherOperationFinalStep extends OperationStep { + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = FinalStep() } +} + +/** + * A Call to EVP_Cipher. + */ +class EvpCipherCall extends EvpCipherOperationFinalStep { + EvpCipherCall() { this.getTarget().getName() = "EVP_Cipher" } + + override DataFlow::Node getInput(IOType type) { + super.getInput(type) = result + or + result.asExpr() = this.getArgument(2) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + super.getOutput(type) = result + or + result.asExpr() = this.getArgument(1) and type = CiphertextIO() + } +} + +/** + * A Call to an EVP Cipher/Encrypt/Decrypt final operation. + */ +class EvpCipherFinalCall extends EvpCipherOperationFinalStep { + EvpCipherFinalCall() { + this.getTarget().getName() in [ + "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", + "EVP_DecryptFinal", "EVP_CipherFinal" + ] + } + + override DataFlow::Node getOutput(IOType type) { + super.getOutput(type) = result + or + result.asDefiningArgument() = this.getArgument(1) and + type = CiphertextIO() + // TODO: could indicate text lengths here, as well + } +} + +/** + * A call to a PKEY_encrypt or PKEY_decrypt operation. + * https://docs.openssl.org/3.2/man3/EVP_PKEY_decrypt/ + * https://docs.openssl.org/3.2/man3/EVP_PKEY_encrypt + */ +class EvpPKeyCipherOperation extends EvpCipherOperationFinalStep { + EvpPKeyCipherOperation() { + this.getTarget().getName() in ["EVP_PKEY_encrypt", "EVP_PKEY_decrypt"] + } + + override DataFlow::Node getInput(IOType type) { + super.getInput(type) = result + or + result.asExpr() = this.getArgument(3) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + super.getOutput(type) = result + or + result.asExpr() = this.getArgument(1) and type = CiphertextIO() + // TODO: could indicate text lengths here, as well + } +} + +/** + * An EVP cipher operation instance. + * Any operation step that is a final operation step for EVP cipher operation steps. + */ +class EvpCipherOperationInstance extends Crypto::KeyOperationInstance instanceof EvpCipherOperationFinalStep +{ + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + super.getPrimaryAlgorithmValueConsumer() = result + } + + override Crypto::KeyOperationSubtype getKeyOperationSubtype() { + result instanceof Crypto::TEncryptMode and + super.getTarget().getName().toLowerCase().matches("%encrypt%") + or + result instanceof Crypto::TDecryptMode and + super.getTarget().getName().toLowerCase().matches("%decrypt%") + or + super.getTarget().getName().toLowerCase().matches("%cipher%") and + resolveKeyOperationSubTypeOperationStep(super + .getDominatingInitializersToStep(KeyOperationSubtypeIO())) = result + } + + override Crypto::ConsumerInputDataFlowNode getNonceConsumer() { + super.getDominatingInitializersToStep(IVorNonceIO()).getInput(IVorNonceIO()) = result + } + + override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { + super.getDominatingInitializersToStep(KeyIO()).getInput(KeyIO()) = result + } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { + super.getOutputStepFlowingToStep(CiphertextIO()).getOutput(CiphertextIO()) = result + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + super.getDominatingInitializersToStep(PlaintextIO()).getInput(PlaintextIO()) = result + } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/HashOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/HashOperation.qll new file mode 100644 index 000000000000..1878bfbe09f2 --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/HashOperation.qll @@ -0,0 +1,134 @@ +/** + * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis + */ + +private import experimental.quantum.Language +private import OpenSSLOperationBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + +/** + * A call to and EVP digest initializer, such as: + * - `EVP_DigestInit` + * - `EVP_DigestInit_ex` + * - `EVP_DigestInit_ex2` + */ +class EvpDigestInitVariantCalls extends OperationStep instanceof Call { + EvpDigestInitVariantCalls() { + this.getTarget().getName() in ["EVP_DigestInit", "EVP_DigestInit_ex", "EVP_DigestInit_ex2"] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = PrimaryAlgorithmIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and + type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +/** + * A call to `EVP_DigestUpdate`. + */ +class EvpDigestUpdateCall extends OperationStep instanceof Call { + EvpDigestUpdateCall() { this.getTarget().getName() = "EVP_DigestUpdate" } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and + type = ContextIO() + } + + override OperationStepType getStepType() { result = UpdateStep() } +} + +/** + * A base class for final digest operations. + */ +abstract class EvpFinalDigestOperationStep extends OperationStep { + override OperationStepType getStepType() { result = FinalStep() } +} + +/** + * A call to `EVP_Q_digest` + * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis + */ +class EvpQDigestOperation extends EvpFinalDigestOperationStep instanceof Call { + EvpQDigestOperation() { this.getTarget().getName() = "EVP_Q_digest" } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(1) and type = PrimaryAlgorithmIO() + or + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(3) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and + type = ContextIO() + or + result.asDefiningArgument() = this.getArgument(5) and type = DigestIO() + } +} + +class EvpDigestOperation extends EvpFinalDigestOperationStep instanceof Call { + EvpDigestOperation() { this.getTarget().getName() = "EVP_Digest" } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(4) and type = PrimaryAlgorithmIO() + or + result.asExpr() = this.getArgument(0) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asDefiningArgument() = this.getArgument(2) and type = DigestIO() + } +} + +/** + * A call to EVP_DigestFinal variants + */ +class EvpDigestFinalCall extends EvpFinalDigestOperationStep instanceof Call { + EvpDigestFinalCall() { + this.getTarget().getName() in ["EVP_DigestFinal", "EVP_DigestFinal_ex", "EVP_DigestFinalXOF"] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and + type = ContextIO() + or + result.asDefiningArgument() = this.getArgument(1) and type = DigestIO() + } +} + +/** + * An openssl digest final hash operation instance + */ +class EvpDigestFinalOperationInstance extends Crypto::HashOperationInstance instanceof EvpFinalDigestOperationStep +{ + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + super.getPrimaryAlgorithmValueConsumer() = result + } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { + super.getOutputStepFlowingToStep(DigestIO()).getOutput(DigestIO()) = result + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + super.getDominatingInitializersToStep(PlaintextIO()).getInput(PlaintextIO()) = result + } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/KeyGenOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/KeyGenOperation.qll new file mode 100644 index 000000000000..2c146aec97f5 --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/KeyGenOperation.qll @@ -0,0 +1,204 @@ +private import experimental.quantum.Language +private import OpenSSLOperationBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + +/** + * A call to EC_KEY_generate_key, which is used to generate an EC key pair. + * Note: this is an operation, though the input parameter is a "EC_KEY*". + * EC_KEY is really an empty context for a key that hasn't been generated, hence + * we consider this an operation generating a key and not accepting a key input. + */ +class ECKeyGen extends OperationStep instanceof Call { + //, Crypto::KeyGenerationOperationInstance { + ECKeyGen() { this.(Call).getTarget().getName() = "EC_KEY_generate_key" } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.(Call).getArgument(0) and type = ContextIO() + } + + override DataFlow::Node getOutput(IOType type) { result.asExpr() = this and type = KeyIO() } + + override OperationStepType getStepType() { result = ContextCreationStep() } +} + +/** + * A call to EVP_PKEY_keygen_init or EVP_PKEY_paramgen_init. + */ +class EvpKeyGenInitialize extends OperationStep { + EvpKeyGenInitialize() { + this.getTarget().getName() in [ + "EVP_PKEY_keygen_init", + "EVP_PKEY_paramgen_init" + ] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +abstract class KeyGenFinalOperationStep extends OperationStep { + override OperationStepType getStepType() { result = FinalStep() } +} + +/** + * A call to `EVP_PKEY_Q_keygen` + */ +class EvpPKeyQKeyGen extends KeyGenFinalOperationStep instanceof Call { + EvpPKeyQKeyGen() { this.getTarget().getName() = "EVP_PKEY_Q_keygen" } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this and type = KeyIO() + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + // When arg 3 is a derived type, it is a curve name, otherwise it is a key size for RSA if provided + // and arg 2 is the algorithm type + this.getArgument(3).getType().getUnderlyingType() instanceof DerivedType and + result.asExpr() = this.getArgument(3) and + type = PrimaryAlgorithmIO() + or + not this.getArgument(3).getType().getUnderlyingType() instanceof DerivedType and + result.asExpr() = this.getArgument(2) and + type = PrimaryAlgorithmIO() + or + not this.getArgument(3).getType().getUnderlyingType() instanceof DerivedType and + result.asExpr() = this.getArgument(3) and + type = KeySizeIO() + } +} + +/** + * A call to `EVP_RSA_gen` + */ +class EvpRsaGen extends KeyGenFinalOperationStep instanceof Call { + EvpRsaGen() { this.getTarget().getName() = "EVP_RSA_gen" } + + override DataFlow::Node getOutput(IOType type) { result.asExpr() = this and type = KeyIO() } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = KeySizeIO() + } +} + +/** + * A call to RSA_generate_key + */ +class RsaGenerateKey extends KeyGenFinalOperationStep instanceof Call { + RsaGenerateKey() { this.getTarget().getName() = "RSA_generate_key" } + + override DataFlow::Node getOutput(IOType type) { result.asExpr() = this and type = KeyIO() } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = KeySizeIO() + } +} + +/** + * A call to RSA_generate_key_ex + */ +class RsaGenerateKeyEx extends KeyGenFinalOperationStep instanceof Call { + RsaGenerateKeyEx() { this.getTarget().getName() = "RSA_generate_key_ex" } + + override DataFlow::Node getOutput(IOType type) { + result.asDefiningArgument() = this.getArgument(0) and type = KeyIO() + } + + override DataFlow::Node getInput(IOType type) { + // arg 0 comes in as a blank RSA key, which we consider a context, + // on output it is considered a key + result.asExpr() = this.getArgument(0) and type = ContextIO() + } +} + +/** + * A call to `EVP_PKEY_generate` or `EVP_PKEY_keygen`. + */ +class EvpPkeyGen extends KeyGenFinalOperationStep instanceof Call { + EvpPkeyGen() { this.getTarget().getName() in ["EVP_PKEY_generate", "EVP_PKEY_keygen"] } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asDefiningArgument() = this.getArgument(1) and type = KeyIO() + or + result.asExpr() = this.getArgument(0) and type = ContextIO() + } +} + +/** + * A call to `EVP_PKEY_new_mac_key` that creates a new generic MAC key. + * - EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, const unsigned char *key, int keylen); + */ +class EvpNewMacKey extends KeyGenFinalOperationStep { + EvpNewMacKey() { this.getTarget().getName() = "EVP_PKEY_new_mac_key" } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + // the raw key that is configured into the output key + result.asExpr() = this.getArgument(2) and type = KeyIO() + or + result.asExpr() = this.getArgument(3) and type = KeySizeIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this and type = KeyIO() + or + result.asExpr() = this.getArgument(0) and type = ContextIO() + } +} + +/// TODO: https://docs.openssl.org/3.0/man3/EVP_PKEY_new/#synopsis +/** + * An `KeyGenerationOperationInstance` for the for all key gen final operation steps. + */ +class KeyGenOperationInstance extends Crypto::KeyGenerationOperationInstance instanceof KeyGenFinalOperationStep +{ + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + super.getPrimaryAlgorithmValueConsumer() = result + } + + override Crypto::KeyArtifactType getOutputKeyType() { result = Crypto::TAsymmetricKeyType() } + + override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { + super.getOutputStepFlowingToStep(KeyIO()).getOutput(KeyIO()) = result + } + + override predicate hasKeyValueConsumer() { + exists(OperationStep s | s.flowsToOperationStep(this) and s.setsValue(KeyIO())) + } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + super.getDominatingInitializersToStep(KeySizeIO()).getInput(KeySizeIO()) = result + } + + override int getKeySizeFixed() { + none() + // TODO: marked as none as the operation itself has no key size, it + // comes from the algorithm source, but note we could grab the + // algorithm source and get the key size (see below). + // We may need to reconsider what is the best approach here. + // result = + // this.getAnAlgorithmValueConsumer() + // .getAKnownAlgorithmSource() + // .(Crypto::EllipticCurveInstance) + // .getKeySize() + } + + override Crypto::ConsumerInputDataFlowNode getKeyValueConsumer() { + super.getDominatingInitializersToStep(KeyIO()).getInput(KeyIO()) = result + } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/SignatureOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/SignatureOperation.qll new file mode 100644 index 000000000000..b9b498ee8df3 --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/SignatureOperation.qll @@ -0,0 +1,260 @@ +/** + * Provides classes for modeling OpenSSL's EVP signature operations + */ + +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.AvcFlow +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import experimental.quantum.OpenSSL.Operations.OpenSSLOperations + +// TODO: verification functions +/** + * A base class for final signature operations. + */ +abstract class EvpSignatureFinalOperation extends OperationStep { + override OperationStepType getStepType() { result = FinalStep() } +} + +/** + * A call to EVP_DigestSignInit or EVP_DigestSignInit_ex. + */ +class EvpSignatureDigestInitializer extends OperationStep { + EvpSignatureDigestInitializer() { + this.getTarget().getName() in ["EVP_DigestSignInit_ex", "EVP_DigestSignInit"] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + this.getTarget().getName() = "EVP_DigestSignInit_ex" and + result.asExpr() = this.getArgument(3) and + type = OsslLibContextIO() + or + result.asExpr() = this.getArgument(2) and type = HashAlgorithmIO() + or + this.getTarget().getName() = "EVP_DigestSignInit" and + result.asExpr() = this.getArgument(4) and + type = KeyIO() + or + this.getTarget().getName() = "EVP_DigestSignInit_ex" and + result.asExpr() = this.getArgument(5) and + type = KeyIO() + or + this.getTarget().getName() = "EVP_DigestSignInit_ex" and + result.asExpr() = this.getArgument(6) and + type = OsslParamIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + // EVP_PKEY_CTX + result.asExpr() = this.getArgument(1) and type = ContextIO() + or + this.getTarget().getName() = "EVP_DigestSignInit_ex" and + result.asExpr() = this.getArgument(6) and + type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +/** + * A call to EVP_SignInit or EVP_SignInit_ex. + */ +class EvpSignInit extends OperationStep { + EvpSignInit() { this.getTarget().getName() in ["EVP_SignInit", "EVP_SignInit_ex"] } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = HashAlgorithmIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +/** + * A call to: + * - EVP_PKEY_sign_init_ex + * - EVP_PKEY_sign_init_ex2 + * - EVP_PKEY_sign_init + * - EVP_PKEY_sign_message_init + */ +class EvpPkeySignInit extends OperationStep { + EvpPkeySignInit() { + this.getTarget().getName() in [ + "EVP_PKEY_sign_init_ex", "EVP_PKEY_sign_init_ex2", "EVP_PKEY_sign_init", + "EVP_PKEY_sign_message_init" + ] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + this.getTarget().getName() in ["EVP_PKEY_sign_init_ex2", "EVP_PKEY_sign_message_init"] and + result.asExpr() = this.getArgument(1) and + type = PrimaryAlgorithmIO() + or + this.getTarget().getName() = "EVP_PKEY_sign_init_ex" and + result.asExpr() = this.getArgument(1) and + type = OsslParamIO() + or + // Argument 2 (0 based) only exists for EVP_PKEY_sign_init_ex2 and EVP_PKEY_sign_message_init + result.asExpr() = this.getArgument(2) and type = OsslParamIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = InitializerStep() } +} + +/** + * A call to EVP_DIgestSignUpdate, EVP_SignUpdate or EVP_PKEY_sign_message_update. + */ +class EvpSignatureUpdateCall extends OperationStep { + EvpSignatureUpdateCall() { + this.getTarget().getName() in [ + "EVP_DigestSignUpdate", "EVP_SignUpdate", "EVP_PKEY_sign_message_update" + ] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override OperationStepType getStepType() { result = UpdateStep() } +} + +/** + * A call to EVP_SignFinal or EVP_SignFinal_ex. + */ +class EvpSignFinal extends EvpSignatureFinalOperation { + EvpSignFinal() { this.getTarget().getName() in ["EVP_SignFinal_ex", "EVP_SignFinal"] } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(3) and type = KeyIO() + or + // params above 3 (0-based) only exist for EVP_SignFinal_ex + result.asExpr() = this.getArgument(4) and + type = OsslLibContextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = SignatureIO() + } +} + +/** + * A call to EVP_DigestSign or EVP_PKEY_sign. + */ +class EvpDigestSign extends EvpSignatureFinalOperation { + EvpDigestSign() { this.getTarget().getName() in ["EVP_DigestSign", "EVP_PKEY_sign"] } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(3) and type = PlaintextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = SignatureIO() + } +} + +/** + * A call to EVP_DigestSignFinal or EVP_PKEY_sign_message_final. + */ +class EvpDigestAndPkeySignFinal extends EvpSignatureFinalOperation { + EvpDigestAndPkeySignFinal() { + this.getTarget().getName() in [ + "EVP_DigestSignFinal", + "EVP_PKEY_sign_message_final" + ] + } + + override DataFlow::Node getInput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + } + + override DataFlow::Node getOutput(IOType type) { + result.asExpr() = this.getArgument(0) and type = ContextIO() + or + result.asExpr() = this.getArgument(1) and type = SignatureIO() + } + + override OperationStepType getStepType() { result = FinalStep() } +} + +/** + * An EVP signature operation instance. + */ +class EvpSignatureOperationInstance extends Crypto::SignatureOperationInstance instanceof EvpSignatureFinalOperation +{ + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + super.getPrimaryAlgorithmValueConsumer() = result + } + + /** + * Signing, verification or unknown. + */ + override Crypto::KeyOperationSubtype getKeyOperationSubtype() { + // TODO: if this KeyOperationSubtype does not match initialization call's KeyOperationSubtype then we found a bug + if super.getTarget().getName().toLowerCase().matches("%sign%") + then result instanceof Crypto::TSignMode + else + if super.getTarget().getName().toLowerCase().matches("%verify%") + then result instanceof Crypto::TVerifyMode + else result instanceof Crypto::TUnknownKeyOperationMode + } + + override Crypto::ConsumerInputDataFlowNode getNonceConsumer() { + // TODO: some signing operations may have explicit nonce generators + none() + } + + /** + * Keys provided in the initialization call or in a context are found by this method. + * Keys in explicit arguments are found by overridden methods in extending classes. + */ + override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { + super.getDominatingInitializersToStep(KeyIO()).getInput(KeyIO()) = result + } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { + super.getOutputStepFlowingToStep(SignatureIO()).getOutput(SignatureIO()) = result + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + super.getDominatingInitializersToStep(PlaintextIO()).getInput(PlaintextIO()) = result + } + + /** + * TODO: only signing operations for now, change when verificaiton is added + */ + override Crypto::ConsumerInputDataFlowNode getSignatureConsumer() { none() } + + override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { + super + .getDominatingInitializersToStep(HashAlgorithmIO()) + .getAlgorithmValueConsumerForInput(HashAlgorithmIO()) = result + } +} diff --git a/cpp/ql/lib/ext/Oracle.oci.model.yml b/cpp/ql/lib/ext/Oracle.oci.model.yml new file mode 100644 index 000000000000..eb172fcdb59a --- /dev/null +++ b/cpp/ql/lib/ext/Oracle.oci.model.yml @@ -0,0 +1,8 @@ +# partial model of the Oracle Call Interface (OCI) library +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: sinkModel + data: # namespace, type, subtypes, name, signature, ext, input, kind, provenance + - ["", "", False, "OCIStmtPrepare", "", "", "Argument[*2]", "sql-injection", "manual"] + - ["", "", False, "OCIStmtPrepare2", "", "", "Argument[*3]", "sql-injection", "manual"] diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index 810a98de85d4..ccebfc9f3401 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -32,4 +32,18 @@ extensions: - ["", "", False, "CommandLineToArgvA", "", "", "Argument[*0]", "ReturnValue[**]", "taint", "manual"] - ["", "", False, "CommandLineToArgvW", "", "", "Argument[*0]", "ReturnValue[**]", "taint", "manual"] # fileapi.h - - ["", "", False, "ReadFileEx", "", "", "Argument[*3].Field[@hEvent]", "Argument[4].Parameter[*2].Field[@hEvent]", "value", "manual"] \ No newline at end of file + - ["", "", False, "ReadFileEx", "", "", "Argument[*3].Field[@hEvent]", "Argument[4].Parameter[*2].Field[@hEvent]", "value", "manual"] + # processthreadsapi.h + - ["", "", False, "CreateThread", "", "", "Argument[@3]", "Argument[2].Parameter[@0]", "value", "manual"] + - ["", "", False, "CreateRemoteThread", "", "", "Argument[@4]", "Argument[3].Parameter[@0]", "value", "manual"] + - ["", "", False, "CreateRemoteThreadEx", "", "", "Argument[@4]", "Argument[3].Parameter[@0]", "value", "manual"] + # wdm.h + - ["", "", False, "RtlCopyVolatileMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] + - ["", "", False, "RtlCopyDeviceMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] + - ["", "", False, "RtlCopyMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] + - ["", "", False, "RtlCopyMemoryNonTemporal", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] + - ["", "", False, "RtlCopyUnicodeString", "", "", "Argument[*1].Field[*Buffer]", "Argument[*0].Field[*Buffer]", "value", "manual"] + - ["", "", False, "RtlMoveMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] + - ["", "", False, "RtlMoveVolatileMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] + # winternl.h + - ["", "", False, "RtlInitUnicodeString", "", "", "Argument[*1]", "Argument[*0].Field[*Buffer]", "value", "manual"] \ No newline at end of file diff --git a/cpp/ql/lib/ext/generated/glibc/glibc.model.yml b/cpp/ql/lib/ext/generated/glibc/glibc.model.yml new file mode 100644 index 000000000000..0a35aae15605 --- /dev/null +++ b/cpp/ql/lib/ext/generated/glibc/glibc.model.yml @@ -0,0 +1,5494 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: + - ["", "", True, "_IO_adjust_column", "(unsigned int,const char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_adjust_column", "(unsigned int,const char *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_adjust_column", "(unsigned int,const char *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_adjust_wcolumn", "(unsigned int,const wchar_t *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_adjust_wcolumn", "(unsigned int,const wchar_t *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_adjust_wcolumn", "(unsigned int,const wchar_t *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_cookie_init", "(_IO_cookie_file *,int,void *,cookie_io_functions_t)", "", "Argument[**2]", "Argument[*0].Field[***__cookie]", "value", "dfc-generated"] + - ["", "", True, "_IO_cookie_init", "(_IO_cookie_file *,int,void *,cookie_io_functions_t)", "", "Argument[*2]", "Argument[*0].Field[**__cookie]", "value", "dfc-generated"] + - ["", "", True, "_IO_cookie_init", "(_IO_cookie_file *,int,void *,cookie_io_functions_t)", "", "Argument[2]", "Argument[*0].Field[*__cookie]", "value", "dfc-generated"] + - ["", "", True, "_IO_cookie_init", "(_IO_cookie_file *,int,void *,cookie_io_functions_t)", "", "Argument[3]", "Argument[*0].Field[*__io_functions]", "value", "dfc-generated"] + - ["", "", True, "_IO_cookie_seek", "(FILE *,off64_t,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_default_pbackfail", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**_IO_read_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_default_pbackfail", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_default_setbuf", "(FILE *,char *,ssize_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_default_setbuf", "(FILE *,char *,ssize_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_default_uflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_default_xsgetn", "(FILE *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_default_xsgetn", "(FILE *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_default_xsgetn", "(FILE *,void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_default_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_default_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**_IO_write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_default_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[**_IO_write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_default_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_feof", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_ferror", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_fgets", "(char *,int,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_IO_fgets", "(char *,int,FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_file_close_mmap", "(FILE *)", "", "Argument[*0].Field[**_IO_buf_end]", "Argument[*0].Field[**_IO_buf_base]", "value", "dfc-generated"] + - ["", "", True, "_IO_file_close_mmap", "(FILE *)", "", "Argument[*0].Field[*_IO_buf_end]", "Argument[*0].Field[*_IO_buf_base]", "value", "dfc-generated"] + - ["", "", True, "_IO_file_open", "(FILE *,const char *,int,int,int,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_file_open", "(FILE *,const char *,int,int,int,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_file_open", "(FILE *,const char *,int,int,int,int)", "", "Argument[4]", "Argument[*0].Field[*_flags]", "taint", "dfc-generated"] + - ["", "", True, "_IO_file_open", "(FILE *,const char *,int,int,int,int)", "", "Argument[4]", "ReturnValue[*].Field[*_flags]", "taint", "dfc-generated"] + - ["", "", True, "_IO_file_seekoff_mmap", "(FILE *,off64_t,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_file_seekoff_mmap", "(FILE *,off64_t,int,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_file_seekoff_mmap", "(FILE *,off64_t,int,int)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_IO_file_setbuf_mmap", "(FILE *,char *,ssize_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_file_setbuf_mmap", "(FILE *,char *,ssize_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_file_underflow_mmap", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_file_xsgetn", "(FILE *,void *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_IO_file_xsgetn", "(FILE *,void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_file_xsgetn", "(FILE *,void *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_file_xsgetn", "(FILE *,void *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_IO_file_xsgetn", "(FILE *,void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_file_xsgetn_mmap", "(FILE *,void *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_file_xsgetn_mmap", "(FILE *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_file_xsgetn_mmap", "(FILE *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_fread", "(void *,size_t,size_t,FILE *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_fread", "(void *,size_t,size_t,FILE *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_ftell", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_fwide", "(FILE *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_fwrite", "(const void *,size_t,size_t,FILE *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_fwrite", "(const void *,size_t,size_t,FILE *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_getc", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_getline", "(FILE *,char *,size_t,int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline", "(FILE *,char *,size_t,int,int)", "", "Argument[3]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline", "(FILE *,char *,size_t,int,int)", "", "Argument[3]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline", "(FILE *,char *,size_t,int,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline_info", "(FILE *,char *,size_t,int,int,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline_info", "(FILE *,char *,size_t,int,int,int *)", "", "Argument[3]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline_info", "(FILE *,char *,size_t,int,int,int *)", "", "Argument[3]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_getline_info", "(FILE *,char *,size_t,int,int,int *)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_gets", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_IO_gets", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_IO_gets", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_gets", "(char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_IO_getwc", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_getwline", "(FILE *,wchar_t *,size_t,wint_t,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_getwline_info", "(FILE *,wchar_t *,size_t,wint_t,int,wint_t *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_init", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[*_flags]", "taint", "dfc-generated"] + - ["", "", True, "_IO_init_internal", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[*_flags]", "taint", "dfc-generated"] + - ["", "", True, "_IO_init_marker", "(_IO_marker *,FILE *)", "", "Argument[*0]", "Argument[*1].Field[**_markers]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_marker", "(_IO_marker *,FILE *)", "", "Argument[0]", "Argument[*1].Field[*_markers]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_marker", "(_IO_marker *,FILE *)", "", "Argument[1]", "Argument[*0].Field[*_sbuf]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_marker", "(_IO_marker *,FILE *)", "", "Argument[1]", "Argument[*1].Field[**_markers].Field[*_sbuf]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_wmarker", "(_IO_marker *,FILE *)", "", "Argument[*0]", "Argument[*1].Field[**_markers]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_wmarker", "(_IO_marker *,FILE *)", "", "Argument[0]", "Argument[*1].Field[*_markers]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_wmarker", "(_IO_marker *,FILE *)", "", "Argument[1]", "Argument[*0].Field[*_sbuf]", "value", "dfc-generated"] + - ["", "", True, "_IO_init_wmarker", "(_IO_marker *,FILE *)", "", "Argument[1]", "Argument[*1].Field[**_markers].Field[*_sbuf]", "value", "dfc-generated"] + - ["", "", True, "_IO_iter_file", "(_IO_ITER)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_IO_iter_file", "(_IO_ITER)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_iter_next", "(_IO_ITER)", "", "Argument[*0].Field[**_chain]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_IO_iter_next", "(_IO_ITER)", "", "Argument[*0].Field[*_chain]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_least_wmarker", "(FILE *,wchar_t *)", "", "Argument[*0].Field[**_markers].Field[*_pos]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_least_wmarker", "(FILE *,wchar_t *)", "", "Argument[*0].Field[**_wide_data].Field[*_IO_read_base]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_least_wmarker", "(FILE *,wchar_t *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_marker_delta", "(_IO_marker *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_marker_difference", "(_IO_marker *,_IO_marker *)", "", "Argument[*0].Field[*_pos]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_marker_difference", "(_IO_marker *,_IO_marker *)", "", "Argument[*1].Field[*_pos]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_do_write", "(FILE *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*_cur_column]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_fdopen", "(int,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*_fileno]", "value", "dfc-generated"] + - ["", "", True, "_IO_new_fgetpos", "(FILE *,__fpos_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_IO_new_file_attach", "(FILE *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_new_file_attach", "(FILE *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_attach", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[*_fileno]", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_attach", "(FILE *,int)", "", "Argument[1]", "ReturnValue[*].Field[*_fileno]", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_fopen", "(FILE *,const char *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_new_file_fopen", "(FILE *,const char *,const char *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_overflow", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_setbuf", "(FILE *,char *,ssize_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_new_file_setbuf", "(FILE *,char *,ssize_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_underflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_new_file_write", "(FILE *,const void *,ssize_t)", "", "Argument[2]", "Argument[*0].Field[*_offset]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_write", "(FILE *,const void *,ssize_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**_IO_write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*_cur_column]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[**_IO_write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*_cur_column]", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_new_fsetpos", "(FILE *,const __fpos_t *)", "", "Argument[*1].Field[*__state]", "Argument[*0].Field[**_wide_data].Field[*_IO_state]", "value", "dfc-generated"] + - ["", "", True, "_IO_new_proc_open", "(FILE *,const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_IO_new_proc_open", "(FILE *,const char *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_no_init", "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)", "", "Argument[*3]", "Argument[*0].Field[**_wide_data]", "value", "dfc-generated"] + - ["", "", True, "_IO_no_init", "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)", "", "Argument[*4]", "Argument[*0].Field[**_wide_data].Field[**_wide_vtable]", "value", "dfc-generated"] + - ["", "", True, "_IO_no_init", "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)", "", "Argument[1]", "Argument[*0].Field[*_flags]", "taint", "dfc-generated"] + - ["", "", True, "_IO_no_init", "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)", "", "Argument[2]", "Argument[*0].Field[*_mode]", "value", "dfc-generated"] + - ["", "", True, "_IO_no_init", "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)", "", "Argument[3]", "Argument[*0].Field[*_wide_data]", "value", "dfc-generated"] + - ["", "", True, "_IO_no_init", "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)", "", "Argument[4]", "Argument[*0].Field[**_wide_data].Field[*_wide_vtable]", "value", "dfc-generated"] + - ["", "", True, "_IO_old_init", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[*_flags]", "taint", "dfc-generated"] + - ["", "", True, "_IO_peekc_locked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_putc", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_seekmark", "(FILE *,_IO_marker *,int)", "", "Argument[*1].Field[*_pos]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_seekmark", "(FILE *,_IO_marker *,int)", "", "Argument[*1].Field[*_pos]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_seekwmark", "(FILE *,_IO_marker *,int)", "", "Argument[*1].Field[*_pos]", "Argument[*0].Field[**_wide_data].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_seekwmark", "(FILE *,_IO_marker *,int)", "", "Argument[*1].Field[*_pos]", "Argument[*0].Field[**_wide_data].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "_IO_setb", "(FILE *,char *,char *,int)", "", "Argument[*1]", "Argument[*0].Field[**_IO_buf_base]", "value", "dfc-generated"] + - ["", "", True, "_IO_setb", "(FILE *,char *,char *,int)", "", "Argument[*2]", "Argument[*0].Field[**_IO_buf_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_setb", "(FILE *,char *,char *,int)", "", "Argument[1]", "Argument[*0].Field[*_IO_buf_base]", "value", "dfc-generated"] + - ["", "", True, "_IO_setb", "(FILE *,char *,char *,int)", "", "Argument[2]", "Argument[*0].Field[*_IO_buf_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_sputbackc", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_sputbackwc", "(FILE *,wint_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_str_count", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_str_init_readonly", "(_IO_strfile *,const char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_str_init_readonly", "(_IO_strfile *,const char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_str_init_static", "(_IO_strfile *,char *,int,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_str_init_static", "(_IO_strfile *,char *,int,char *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_str_init_static_internal", "(_IO_strfile *,_IO_strfile_ *,char *,size_t,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_str_init_static_internal", "(_IO_strfile *,_IO_strfile_ *,char *,size_t,char *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_str_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**_IO_read_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_str_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_str_overflow", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_str_pbackfail", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**_IO_read_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_str_pbackfail", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_str_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_str_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_str_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_str_underflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_sungetc", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_sungetwc", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_vscanf", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_vsscanf", "(const char *,const char *,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_IO_wdefault_pbackfail", "(FILE *,wint_t)", "", "Argument[1]", "Argument[*0].Field[**_wide_data].Field[**_IO_read_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_wdefault_pbackfail", "(FILE *,wint_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_wdefault_uflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsgetn", "(FILE *,void *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wdefault_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_overflow", "(FILE *,wint_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_overflow", "(FILE *,wint_t)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_IO_wfile_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_IO_wfile_underflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_underflow_mmap", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wfile_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wmarker_delta", "(_IO_marker *)", "", "Argument[*0].Field[*_pos]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_IO_wsetb", "(FILE *,wchar_t *,wchar_t *,int)", "", "Argument[*1]", "Argument[*0].Field[**_wide_data].Field[**_IO_buf_base]", "value", "dfc-generated"] + - ["", "", True, "_IO_wsetb", "(FILE *,wchar_t *,wchar_t *,int)", "", "Argument[*2]", "Argument[*0].Field[**_wide_data].Field[**_IO_buf_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_wsetb", "(FILE *,wchar_t *,wchar_t *,int)", "", "Argument[1]", "Argument[*0].Field[**_wide_data].Field[*_IO_buf_base]", "value", "dfc-generated"] + - ["", "", True, "_IO_wsetb", "(FILE *,wchar_t *,wchar_t *,int)", "", "Argument[2]", "Argument[*0].Field[**_wide_data].Field[*_IO_buf_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_count", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wstr_init_static", "(FILE *,wchar_t *,size_t,wchar_t *)", "", "Argument[*3]", "Argument[*0].Field[**_wide_data].Field[**_IO_read_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_init_static", "(FILE *,wchar_t *,size_t,wchar_t *)", "", "Argument[*3]", "Argument[*0].Field[**_wide_data].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_init_static", "(FILE *,wchar_t *,size_t,wchar_t *)", "", "Argument[3]", "Argument[*0].Field[**_wide_data].Field[*_IO_read_end]", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_init_static", "(FILE *,wchar_t *,size_t,wchar_t *)", "", "Argument[3]", "Argument[*0].Field[**_wide_data].Field[*_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_overflow", "(FILE *,wint_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wstr_overflow", "(FILE *,wint_t)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_IO_wstr_pbackfail", "(FILE *,wint_t)", "", "Argument[1]", "Argument[*0].Field[**_wide_data].Field[**_IO_read_ptr]", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_pbackfail", "(FILE *,wint_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_IO_wstr_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_IO_wstr_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_IO_wstr_seekoff", "(FILE *,off64_t,int,int)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_IO_wstr_underflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__IO_vfscanf", "(FILE *,const char *,va_list,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "____strtod_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "____strtod_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____strtod_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____strtod_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "____strtod_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "____strtod_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____strtof128_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "____strtof128_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____strtof128_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____strtof128_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "____strtof128_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "____strtof128_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____strtof_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____strtof_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "____strtof_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "____strtof_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "____strtol_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____strtol_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____strtol_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "____strtol_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "____strtol_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____strtol_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____strtold_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____strtold_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "____strtold_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "____strtoul_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____strtoul_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____strtoul_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "____strtoul_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "____strtoul_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____strtoul_l_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____wcstod_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "____wcstod_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____wcstod_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "____wcstod_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "____wcstod_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____wcstof128_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "____wcstof128_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____wcstof128_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "____wcstof128_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "____wcstof128_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "____wcstof_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____wcstof_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "____wcstof_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "____wcstof_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "____wcstol_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____wcstol_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____wcstol_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "____wcstol_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "____wcstol_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____wcstol_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____wcstold_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____wcstold_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "____wcstold_l_internal", "(const wchar_t *,wchar_t **,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "____wcstoul_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "____wcstoul_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____wcstoul_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "____wcstoul_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "____wcstoul_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "____wcstoul_l_internal", "(const wchar_t *,wchar_t **,int,int,bool,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___aio_suspend_time64", "(const aiocb *const[],int,const timespec *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "___asprintf", "(char **,const char *,...)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___asprintf_chk", "(char **,int,const char *,...)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___cbaud_to_speed", "(tcflag_t,speed_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___cbaud_to_speed", "(tcflag_t,speed_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "___dn_skipname", "(const unsigned char *,const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___gai_suspend_time64", "(const gaicb *const[],int,const timespec *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_ntop", "(const unsigned char *,char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_pack", "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_skip", "(const unsigned char **,const unsigned char *)", "", "Argument[**0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_skip", "(const unsigned char **,const unsigned char *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_skip", "(const unsigned char **,const unsigned char *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_skip", "(const unsigned char **,const unsigned char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___ns_name_unpack", "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___pthread_barrier_init", "(pthread_barrier_t *,const pthread_barrierattr_t *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*count]", "value", "dfc-generated"] + - ["", "", True, "___pthread_getspecific", "(pthread_key_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "___pthread_getspecific", "(pthread_key_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "___pthread_getspecific", "(pthread_key_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "___pthread_mutex_init", "(pthread_mutex_t *,const pthread_mutexattr_t *)", "", "Argument[*1].Field[*mutexkind]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__lock]", "taint", "dfc-generated"] + - ["", "", True, "___pthread_mutexattr_settype", "(pthread_mutexattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*mutexkind]", "taint", "dfc-generated"] + - ["", "", True, "___pthread_rwlock_init", "(pthread_rwlock_t *,const pthread_rwlockattr_t *)", "", "Argument[*1].Field[*lockkind]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__flags]", "value", "dfc-generated"] + - ["", "", True, "___pthread_rwlock_init", "(pthread_rwlock_t *,const pthread_rwlockattr_t *)", "", "Argument[*1].Field[*pshared]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__shared]", "taint", "dfc-generated"] + - ["", "", True, "___res_mkquery", "(int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int)", "", "Argument[7]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_nmkquery", "(res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int)", "", "Argument[8]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_nquery", "(res_state,const char *,int,int,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "___res_nquery", "(res_state,const char *,int,int,unsigned char *,int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_nquerydomain", "(res_state,const char *,const char *,int,int,unsigned char *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "___res_nquerydomain", "(res_state,const char *,const char *,int,int,unsigned char *,int)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_nsearch", "(res_state,const char *,int,int,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "___res_nsearch", "(res_state,const char *,int,int,unsigned char *,int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_nsend", "(res_state,const unsigned char *,int,unsigned char *,int)", "", "Argument[*1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "___res_nsend", "(res_state,const unsigned char *,int,unsigned char *,int)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___res_nsend", "(res_state,const unsigned char *,int,unsigned char *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___res_nsend", "(res_state,const unsigned char *,int,unsigned char *,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_query", "(const char *,int,int,unsigned char *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___res_query", "(const char *,int,int,unsigned char *,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_querydomain", "(const char *,const char *,int,int,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "___res_querydomain", "(const char *,const char *,int,int,unsigned char *,int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_search", "(const char *,int,int,unsigned char *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___res_search", "(const char *,int,int,unsigned char *,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___res_send", "(const unsigned char *,int,unsigned char *,int)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "___res_send", "(const unsigned char *,int,unsigned char *,int)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "___res_send", "(const unsigned char *,int,unsigned char *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "___res_send", "(const unsigned char *,int,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___snprintf_chk", "(char *,size_t,int,size_t,const char *,...)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___snprintf_chk", "(char *,size_t,int,size_t,const char *,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___strfmon_l", "(char *,size_t,locale_t,const char *,...)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___strfmon_l", "(char *,size_t,locale_t,const char *,...)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___strfmon_l", "(char *,size_t,locale_t,const char *,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___tls_get_addr", "(tls_index *)", "", "Argument[*0].Field[*ti_offset]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "___vfprintf_chk", "(FILE *,int,const char *,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___vfscanf", "(FILE *,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "___vprintf_chk", "(int,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "___vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "___vsnprintf_chk", "(char *,size_t,int,size_t,const char *,va_list)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___vsnprintf_chk", "(char *,size_t,int,size_t,const char *,va_list)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "___vsnprintf_chk", "(char *,size_t,int,size_t,const char *,va_list)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "___vsprintf_chk", "(char *,int,size_t,const char *,va_list)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__acos", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__acosf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acosf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acosf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__acosh", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acosh", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__acoshf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acoshf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acoshf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acoshf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__acoshl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acoshl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__acosl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__acospi", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acospif128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acospif", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__acospil", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__addmntent", "(FILE *,const mntent *)", "", "Argument[*1].Field[*mnt_freq]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__addmntent", "(FILE *,const mntent *)", "", "Argument[*1].Field[*mnt_passno]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__adjtime", "(const timeval *,timeval *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__aio_enqueue_request", "(aiocb_union *,int)", "", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*aio_reqprio]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__abs_prio]", "taint", "dfc-generated"] + - ["", "", True, "__aio_enqueue_request", "(aiocb_union *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**aiocbp]", "value", "dfc-generated"] + - ["", "", True, "__aio_enqueue_request", "(aiocb_union *,int)", "", "Argument[0]", "ReturnValue[*].Field[*aiocbp]", "value", "dfc-generated"] + - ["", "", True, "__aio_enqueue_request", "(aiocb_union *,int)", "", "Argument[1]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*aio_lio_opcode]", "value", "dfc-generated"] + - ["", "", True, "__aio_error", "(const aiocb *)", "", "Argument[*0].Field[*__error_code]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__aio_fsync", "(int,aiocb *)", "", "Argument[*1].Union[*(unnamed class/struct/union)].Field[*aio_reqprio]", "Argument[*1].Union[*(unnamed class/struct/union)].Field[*__abs_prio]", "taint", "dfc-generated"] + - ["", "", True, "__aio_read", "(aiocb *)", "", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*aio_reqprio]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__abs_prio]", "taint", "dfc-generated"] + - ["", "", True, "__aio_remove_request", "(requestlist *,requestlist *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__aio_return", "(aiocb *)", "", "Argument[*0].Field[*__return_value]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__aio_write", "(aiocb *)", "", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*aio_reqprio]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__abs_prio]", "taint", "dfc-generated"] + - ["", "", True, "__alloc_dir", "(int,bool,int,const stat64 *)", "", "Argument[*3].Field[*st_blksize]", "ReturnValue[*].Field[*allocation]", "value", "dfc-generated"] + - ["", "", True, "__alloc_dir", "(int,bool,int,const stat64 *)", "", "Argument[0]", "ReturnValue[*].Field[*fd]", "value", "dfc-generated"] + - ["", "", True, "__allocate_shadow_stack", "(size_t,shadow_stack_size_t *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__alphasort64", "(const dirent64 **,const dirent64 **)", "", "Argument[**0].Field[*d_name]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__alphasort64", "(const dirent64 **,const dirent64 **)", "", "Argument[**1].Field[*d_name]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__alphasort64", "(const dirent64 **,const dirent64 **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__alphasort64", "(const dirent64 **,const dirent64 **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__arc4random_buf", "(void *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__arc4random_uniform", "(__uint32_t,uint32_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__argp_error_internal", "(const argp_state *,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__argp_failure_internal", "(const argp_state *,int,int,const char *,va_list,unsigned int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_ensure", "(argp_fmtstream *,argp_fmtstream_t,size_t)", "", "Argument[1]", "Argument[*0].Field[**end]", "taint", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_ensure", "(argp_fmtstream *,argp_fmtstream_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*end]", "taint", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_point", "(argp_fmtstream_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__argp_fmtstream_putc", "(argp_fmtstream_t,int)", "", "Argument[1]", "Argument[*0].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_puts", "(argp_fmtstream_t,const char *)", "", "Argument[*1]", "Argument[*0].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_puts", "(argp_fmtstream_t,const char *)", "", "Argument[1]", "Argument[*0].Field[**p]", "taint", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_set_lmargin", "(argp_fmtstream_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*lmargin]", "value", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_set_rmargin", "(argp_fmtstream_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*rmargin]", "value", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_set_wmargin", "(argp_fmtstream_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*wmargin]", "value", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_write", "(argp_fmtstream_t,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_write", "(argp_fmtstream_t,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**p]", "taint", "dfc-generated"] + - ["", "", True, "__argp_fmtstream_write", "(argp_fmtstream_t,const char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__argp_make_fmtstream", "(FILE *,size_t,size_t,ssize_t)", "", "Argument[*0]", "ReturnValue[*].Field[**stream]", "value", "dfc-generated"] + - ["", "", True, "__argp_make_fmtstream", "(FILE *,size_t,size_t,ssize_t)", "", "Argument[0]", "ReturnValue[*].Field[*stream]", "value", "dfc-generated"] + - ["", "", True, "__argp_make_fmtstream", "(FILE *,size_t,size_t,ssize_t)", "", "Argument[1]", "ReturnValue[*].Field[*lmargin]", "value", "dfc-generated"] + - ["", "", True, "__argp_make_fmtstream", "(FILE *,size_t,size_t,ssize_t)", "", "Argument[2]", "ReturnValue[*].Field[*rmargin]", "value", "dfc-generated"] + - ["", "", True, "__argp_make_fmtstream", "(FILE *,size_t,size_t,ssize_t)", "", "Argument[3]", "ReturnValue[*].Field[*wmargin]", "value", "dfc-generated"] + - ["", "", True, "__argz_add", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)", "", "Argument[*2]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "__argz_add", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add_sep", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add_sep", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add_sep", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_add_sep", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[*2]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_append", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_create", "(char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_create_sep", "(const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_extract", "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__argz_extract", "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_extract", "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)", "", "Argument[0]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_extract", "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)", "", "Argument[0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__argz_extract", "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_extract", "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[*3]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[3]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_insert", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__argz_next", "(const char *,size_t,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__argz_next", "(const char *,size_t,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__argz_next", "(const char *,size_t,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__argz_next", "(const char *,size_t,const char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__argz_next", "(const char *,size_t,const char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__argz_replace", "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__argz_stringify", "(char *,size_t,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__argz_stringify", "(char *,size_t,int)", "", "Argument[2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__asctime_r", "(const tm *,char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__asctime_r", "(const tm *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__asctime_r", "(const tm *,char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asctime_r", "(const tm *,char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__asin", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__asinf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinh", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinhf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__asinhf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__asinhf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinhf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinhl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__asinpi", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__asinpif128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__asinpif", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__asinpil", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan2f128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan2f128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2f", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2f", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan2f", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2l", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan2pif128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2pif128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2pif", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan2pif", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atan_avx", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan_fma4", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atan_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanh", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanhf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanhf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanhl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__atanpif128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__atanpif", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__b64_ntop", "(const u_char *,const unsigned char *,size_t,char *,size_t)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__b64_ntop", "(const u_char *,const unsigned char *,size_t,char *,size_t)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__b64_pton", "(const char *,u_char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__backtrace_symbols", "(void *const *,int)", "", "Argument[**0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__backtrace_symbols", "(void *const *,int)", "", "Argument[*0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__backtrace_symbols", "(void *const *,int)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__backtrace_symbols", "(void *const *,int)", "", "Argument[1]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__backtrace_symbols", "(void *const *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__basename", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__basename", "(const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__basename", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__bind_textdomain_codeset", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__bind_textdomain_codeset", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__bindtextdomain", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__bindtextdomain", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__branred", "(double,double *,double *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__branred", "(double,double *,double *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__branred", "(double,double *,double *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__btowc", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__canonicalize", "(double *,const double *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__canonicalize", "(double *,const double *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__canonicalizef128", "(_Float128 *,const _Float128 *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__canonicalizef128", "(_Float128 *,const _Float128 *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__canonicalizef", "(float *,const float *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__canonicalizef", "(float *,const float *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__canonicalizel", "(long double *,const long double *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__canonicalizel", "(long double *,const long double *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__cbrt", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cbrtf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cbrtf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cbrtl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ceil_c", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ceilf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__ceilf_c", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cfgetibaud", "(const termios *)", "", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cfgetispeed", "(const termios *)", "", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cfgetobaud", "(const termios *)", "", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cfgetospeed", "(const termios *)", "", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cfsetbaud", "(termios *,baud_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__cfsetibaud", "(termios *,baud_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__cfsetispeed", "(termios *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__cfsetobaud", "(termios *,baud_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__cfsetospeed", "(termios *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__cfsetspeed", "(termios *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__clock_getcpuclockid", "(pid_t,clockid_t *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__collidx_table_lookup", "(const char *,uint32_t)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__collidx_table_lookup", "(const char *,uint32_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__collidx_table_lookup", "(const char *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__collseq_table_lookup", "(const char *,uint32_t)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__collseq_table_lookup", "(const char *,uint32_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__collseq_table_lookup", "(const char *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[*0].Field[*re_nsub]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*3].Field[*rm_eo]", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*3].Field[*rm_so]", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[1]", "Argument[*3].Field[*rm_eo]", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[1]", "Argument[*3].Field[*rm_so]", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__compat_regexec", "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__compoundn", "(double,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__compoundnf128", "(_Float128,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__compoundnf128", "(_Float128,long long)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__compoundnf", "(float,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__compoundnl", "(long double,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__compoundnl", "(long double,long long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[*3]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[0]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[3]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "__copy_grp", "(const group,const size_t,group *,char *,char **)", "", "Argument[3]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[*3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixmb", "(const char *,const char *,const char *,const char *)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[*3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__correctly_grouped_prefixwc", "(const wchar_t *,const wchar_t *,wchar_t,const char *)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__cos_avx", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cos_fma4", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cos_fma", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cos_sse2", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cosf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cosf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cosf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cosf_fma", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cosf_sse2", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cosh", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cosh", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__coshf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__coshf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__coshf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__coshl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__coshl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__cosl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__cospif", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__create_ib_request", "(const_nis_name,unsigned int)", "", "Argument[*0]", "ReturnValue[*].Field[**ibr_name]", "value", "dfc-generated"] + - ["", "", True, "__create_ib_request", "(const_nis_name,unsigned int)", "", "Argument[0]", "ReturnValue[*].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__create_ib_request", "(const_nis_name,unsigned int)", "", "Argument[1]", "ReturnValue[*].Field[*ibr_flags]", "value", "dfc-generated"] + - ["", "", True, "__current_locale_name", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__daddl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__daddl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dcgettext", "(const char *,const char *,int)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dcgettext", "(const char *,const char *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dcgettext", "(const char *,const char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dcgettext", "(const char *,const char *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__dcigettext", "(const char *,const char *,const char *,int,unsigned long,int)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dcigettext", "(const char *,const char *,const char *,int,unsigned long,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dcigettext", "(const char *,const char *,const char *,int,unsigned long,int)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dcigettext", "(const char *,const char *,const char *,int,unsigned long,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dcigettext", "(const char *,const char *,const char *,int,unsigned long,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__dcigettext", "(const char *,const char *,const char *,int,unsigned long,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dcngettext", "(const char *,const char *,const char *,unsigned long,int)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dcngettext", "(const char *,const char *,const char *,unsigned long,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dcngettext", "(const char *,const char *,const char *,unsigned long,int)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dcngettext", "(const char *,const char *,const char *,unsigned long,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dcngettext", "(const char *,const char *,const char *,unsigned long,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__dcngettext", "(const char *,const char *,const char *,unsigned long,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ddivl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__deadline_from_timeval", "(deadline_current_time,timeval)", "", "Argument[0].Field[*current].Field[*tv_nsec]", "ReturnValue.Field[*absolute].Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "__deadline_from_timeval", "(deadline_current_time,timeval)", "", "Argument[0].Field[*current].Field[*tv_sec]", "ReturnValue.Field[*absolute].Field[*tv_sec]", "taint", "dfc-generated"] + - ["", "", True, "__deadline_from_timeval", "(deadline_current_time,timeval)", "", "Argument[1].Field[*tv_sec]", "ReturnValue.Field[*absolute].Field[*tv_sec]", "taint", "dfc-generated"] + - ["", "", True, "__deadline_from_timeval", "(deadline_current_time,timeval)", "", "Argument[1].Field[*tv_usec]", "ReturnValue.Field[*absolute].Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "__deadline_to_ms", "(deadline_current_time,deadline)", "", "Argument[0].Field[*current].Field[*tv_nsec]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__deadline_to_ms", "(deadline_current_time,deadline)", "", "Argument[0].Field[*current].Field[*tv_sec]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__deadline_to_ms", "(deadline_current_time,deadline)", "", "Argument[1].Field[*absolute].Field[*tv_nsec]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__deadline_to_ms", "(deadline_current_time,deadline)", "", "Argument[1].Field[*absolute].Field[*tv_sec]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dfmal", "(long double,long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dfmal", "(long double,long double,long double)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dgettext", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dgettext", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dgettext", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dgettext", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__difftime", "(time_t,time_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__difftime", "(time_t,time_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dirfd", "(DIR *)", "", "Argument[*0].Field[*fd]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dlclose", "(void *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "__dmull", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dngettext", "(const char *,const char *,const char *,unsigned long)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dngettext", "(const char *,const char *,const char *,unsigned long)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dngettext", "(const char *,const char *,const char *,unsigned long)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__dngettext", "(const char *,const char *,const char *,unsigned long)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__dngettext", "(const char *,const char *,const char *,unsigned long)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__dngettext", "(const char *,const char *,const char *,unsigned long)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__drand48_iterate", "(unsigned short[3],drand48_data *)", "", "Argument[*1].Field[*__a]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__drand48_iterate", "(unsigned short[3],drand48_data *)", "", "Argument[*1].Field[*__c]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__drand48_iterate", "(unsigned short[3],drand48_data *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__dsubl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__dsubl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__duplocale", "(locale_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__duplocale", "(locale_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ecvt", "(double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__ecvt", "(double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__ecvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__ecvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__ecvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__ecvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__erand48_r", "(unsigned short[3],drand48_data *,double *)", "", "Argument[*1].Field[*__a]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__erand48_r", "(unsigned short[3],drand48_data *,double *)", "", "Argument[*1].Field[*__c]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__erand48_r", "(unsigned short[3],drand48_data *,double *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__erf", "(double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erf", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfc", "(double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfc", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfcf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfcf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfcf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfcl", "(long double)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfcl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erff128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erff128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erff", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfl", "(long double)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__erfl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__error_at_line_internal", "(int,int,const char *,unsigned int,const char *,va_list,unsigned int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__error_internal", "(int,int,const char *,va_list,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__exp10", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp10_compat", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__exp10f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp10f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp10f_compat", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__exp10l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__exp10m1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp10m1f_fma", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp10m1f_sse2", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2_compat", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__exp2f128", "(_Float128)", "", "Argument[0]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__exp2f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2f_compat", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__exp2f_fma", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2f_sse2", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__exp2m1f128", "(_Float128)", "", "Argument[0]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__exp2m1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2m1f_fma", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp2m1f_sse2", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__exp_compat", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__expf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__expf_compat", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__expf_fma", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__expf_sse2", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__expl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__expm1_fma", "(double)", "", "Argument[0]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__expm1_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__expm1_sse2", "(double)", "", "Argument[0]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__expm1_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__expm1f128", "(_Float128,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__expm1f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__f32addf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32addf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32divf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32mulf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32subf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32subf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xaddf64", "(_Float64,_Float64)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xaddf64", "(_Float64,_Float64)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xdivf64", "(_Float64,_Float64)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xdivf64", "(_Float64,_Float64)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xmulf64", "(_Float64,_Float64)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xmulf64", "(_Float64,_Float64)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xsubf64", "(_Float64,_Float64)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f32xsubf64", "(_Float64,_Float64)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64addf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64addf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64divf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64mulf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64subf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64subf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xaddf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xaddf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xdivf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xfmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xfmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xmulf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xsubf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__f64xsubf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fadd", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fadd", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__faddl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__faddl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fbufsize", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__fcvt", "(double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__fcvt", "(double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__fcvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__fcvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__fcvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__fcvt_r", "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__fd_to_filename", "(int,fd_to_filename *)", "", "Argument[*1].Field[*buffer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fdelt_chk", "(long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdim", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdim", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdimf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdimf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdimf", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdimf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdiml", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdiml", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdiv", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdivl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fdopendir", "(int)", "", "Argument[0]", "ReturnValue[*].Field[*fd]", "value", "dfc-generated"] + - ["", "", True, "__feof_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ferror_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ffma", "(double,double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ffma", "(double,double,double)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ffmal", "(long double,long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ffmal", "(long double,long double,long double)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fgetgrent_r", "(FILE *,group *,char *,size_t,group **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__fgetgrent_r", "(FILE *,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__fgetpwent_r", "(FILE *,passwd *,char *,size_t,passwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__fgetpwent_r", "(FILE *,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__fgets_chk", "(char *,size_t,int,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fgets_chk", "(char *,size_t,int,FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fgets_unlocked", "(char *,char *__restrict__,int,FILE *,FILE *__restrict__)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fgets_unlocked", "(char *,char *__restrict__,int,FILE *,FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fgets_unlocked_chk", "(char *,size_t,int,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fgets_unlocked_chk", "(char *,size_t,int,FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fgetsgent_r", "(FILE *,sgrp *,char *,size_t,sgrp **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__fgetsgent_r", "(FILE *,sgrp *,char *,size_t,sgrp **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__fgetspent_r", "(FILE *,spwd *,char *,size_t,spwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__fgetspent_r", "(FILE *,spwd *,char *,size_t,spwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__fgetws_chk", "(wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fgetws_chk", "(wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fgetws_unlocked_chk", "(wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fgetws_unlocked_chk", "(wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__file_change_detection_for_stat", "(file_change_detection *,const stat64 *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__fileno", "(FILE *)", "", "Argument[*0].Field[*_fileno]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__find_specwc", "(const unsigned int *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__find_specwc", "(const unsigned int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__find_specwc", "(const unsigned int *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__finite", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__finitef128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__finitef", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__flbf", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__floor_c", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__floorf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__floorf_c", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fma_sse2", "(double,double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fma_sse2", "(double,double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fma_sse2", "(double,double,double)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaf128", "(_Float128,_Float128,_Float128)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaf_sse2", "(float,float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaf_sse2", "(float,float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaf_sse2", "(float,float,float)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmal", "(long double,long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmal", "(long double,long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmal", "(long double,long double,long double)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmaxf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_num", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_num", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_numf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_numf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_numf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_numf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_numl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_mag_numl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_magf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_magf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_magf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_magf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_magl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_magl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_num", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_num", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_numf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_numf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_numf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_numf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_numl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximum_numl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximumf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximumf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximumf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximumf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximuml", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaximuml", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmag", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmag", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmagf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmagf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmagf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmagf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmagl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmaxmagl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_num", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_num", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_numf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_numf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_numf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_numf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_numl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_mag_numl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_magf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_magf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_magf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_magf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_magl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_magl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_num", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_num", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_numf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_numf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_numf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_numf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_numl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimum_numl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimumf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimumf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimumf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimumf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimuml", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminimuml", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmag", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmag", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmagf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmagf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmagf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmagf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmagl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fminmagl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmod", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmod", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmod_compat", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmod_compatf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmodf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__fmodf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__fmodf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmodf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmodl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fmul", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fmull", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[**0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[**0]", "Argument[*2].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[**1]", "Argument[*2].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[*0]", "Argument[*2].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[*1]", "Argument[*2].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[0]", "Argument[*2].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__follow_path", "(char **,char **,ib_request *,dir_binding *)", "", "Argument[1]", "Argument[*2].Field[**ibr_name]", "taint", "dfc-generated"] + - ["", "", True, "__fopen_maybe_mmap", "(FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__fopen_maybe_mmap", "(FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fp_nquery", "(const unsigned char *,int,FILE *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__fp_nquery", "(const unsigned char *,int,FILE *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__fp_query", "(const unsigned char *,FILE *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__fp_query", "(const unsigned char *,FILE *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__fpending", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__fread_chk", "(void *__restrict__,size_t,size_t,size_t,FILE *__restrict__)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fread_chk", "(void *__restrict__,size_t,size_t,size_t,FILE *__restrict__)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fread_unlocked", "(void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fread_unlocked", "(void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__fread_unlocked_chk", "(void *__restrict__,size_t,size_t,size_t,FILE *__restrict__)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fread_unlocked_chk", "(void *__restrict__,size_t,size_t,size_t,FILE *__restrict__)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__frexp", "(double,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__frexp", "(double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__frexpf128", "(_Float128,int *)", "", "Argument[0].Field[*msw]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__frexpf128", "(_Float128,int *)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__frexpf128", "(_Float128,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__frexpf128", "(_Float128,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__frexpf", "(float,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__frexpf", "(float,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__frexpf", "(float,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__frexpl", "(long double,int *)", "", "Argument[0].Field[*sign_exponent]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__frexpl", "(long double,int *)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue.Field[*sign_exponent]", "taint", "dfc-generated"] + - ["", "", True, "__frexpl", "(long double,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__frexpl", "(long double,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__fromfp", "(double,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfp", "(double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpf128", "(_Float128,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpf", "(float,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpf", "(float,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpl", "(long double,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpl", "(long double,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpl", "(long double,int,unsigned int)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpl", "(long double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpx", "(double,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpx", "(double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxf128", "(_Float128,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxf", "(float,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxf", "(float,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxl", "(long double,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxl", "(long double,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxl", "(long double,int,unsigned int)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fromfpxl", "(long double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fstatvfs64", "(int,statvfs64 *)", "", "Argument[*1].Field[*f_ffree]", "Argument[*1].Field[*f_favail]", "value", "dfc-generated"] + - ["", "", True, "__fsub", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fsub", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fsubl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__fsubl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ftello", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__futimens", "(int,const timespec[2])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__fwriting", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gai_enqueue_request", "(gaicb *)", "", "Argument[*0]", "ReturnValue[*].Field[**gaicbp]", "value", "dfc-generated"] + - ["", "", True, "__gai_enqueue_request", "(gaicb *)", "", "Argument[0]", "ReturnValue[*].Field[*gaicbp]", "value", "dfc-generated"] + - ["", "", True, "__gai_error", "(gaicb *)", "", "Argument[*0].Field[*__return]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gamma_product", "(double,double,int,double *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_product", "(double,double,int,double *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gamma_product", "(double,double,int,double *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_product", "(double,double,int,double *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gamma_productf128", "(_Float128,_Float128,int,_Float128 *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_productf128", "(_Float128,_Float128,int,_Float128 *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gamma_productf128", "(_Float128,_Float128,int,_Float128 *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_productf128", "(_Float128,_Float128,int,_Float128 *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_productl", "(long double,long double,int,long double *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_productl", "(long double,long double,int,long double *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gamma_productl", "(long double,long double,int,long double *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gamma_productl", "(long double,long double,int,long double *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[**3]", "Argument[*0].Field[*__data].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[*0].Field[*__data].Field[**__outbuf]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[*0].Field[*__data].Field[*__outbuf]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[*3]", "Argument[*0].Field[*__data].Field[*__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[*4]", "Argument[*0].Field[*__data].Field[**__outbufend]", "value", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[3]", "Argument[*0].Field[*__data].Field[*__outbuf]", "taint", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv", "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)", "", "Argument[4]", "Argument[*0].Field[*__data].Field[*__outbufend]", "value", "dfc-generated"] + - ["", "", True, "__gconv_alias_compare", "(const void *,const void *)", "", "Argument[*0].Field[**fromname]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_alias_compare", "(const void *,const void *)", "", "Argument[*0].Field[*fromname]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_alias_compare", "(const void *,const void *)", "", "Argument[*1].Field[**fromname]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_alias_compare", "(const void *,const void *)", "", "Argument[*1].Field[*fromname]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_btwoc_ascii", "(__gconv_step *,unsigned char)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gconv_close_transform", "(__gconv_step *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_close_transform", "(__gconv_step *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias_cache", "(const char *,const char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias_cache", "(const char *,const char *,int *)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias_cache", "(const char *,const char *,int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_compare_alias_cache", "(const char *,const char *,int *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**fromcode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**fromcode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**tocode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**tocode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**fromcode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**fromcode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[**tocode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_create_spec", "(gconv_spec *,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**tocode]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_shlib", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__gconv_find_shlib", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_shlib", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[*0]", "Argument[**2].Field[**__to_name]", "value", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[*1]", "Argument[**2].Field[**__from_name]", "value", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[*1]", "Argument[**2].Field[**__to_name]", "value", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[*3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[0]", "Argument[**2].Field[**__to_name]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_find_transform", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_lookup_cache", "(const char *,const char *,__gconv_step **,size_t *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_open", "(gconv_spec *,__gconv_t *,int)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__gconv_transform_ascii_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ascii_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ascii_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ascii_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ascii", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs2reverse", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_ucs4le", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_internal_utf8", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs2reverse_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4le_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__gconv_transform_ucs4le_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4le_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4le_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_ucs4le_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transform_utf8_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_utf8_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_utf8_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "__gconv_transform_utf8_internal", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transliterate", "(__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transliterate", "(__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transliterate", "(__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transliterate", "(__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gconv_transliterate", "(__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__gcvt", "(double,int,char *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gcvt", "(double,int,char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__gcvt", "(double,int,char *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gcvt", "(double,int,char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__gcvt", "(double,int,char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__get_errlist", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__get_errname", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__get_errname", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getaddrinfo_a", "(int,gaicb *[],int,sigevent *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__getaddrinfo_a", "(int,gaicb *[],int,sigevent *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__getaliasbyname_r", "(const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getaliasbyname_r", "(const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getaliasbyname_r", "(const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getaliasbyname_r", "(const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getaliasent_r", "(aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getaliasent_r", "(aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__getcwd", "(char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__getcwd", "(char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd", "(char *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__getcwd", "(char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd", "(char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd", "(char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd_chk", "(char *,size_t,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__getcwd_chk", "(char *,size_t,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd_chk", "(char *,size_t,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__getcwd_chk", "(char *,size_t,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd_chk", "(char *,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getcwd_chk", "(char *,size_t,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getdate_r", "(const char *,tm *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getgrent_r", "(group *,char *,size_t,group **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getgrent_r", "(group *,char *,size_t,group **)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,group **)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getgrnam_r", "(const char *,group *,char *,size_t,group **)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__getgrnam_r", "(const char *,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getgrnam_r", "(const char *,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getgrnam_r", "(const char *,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyaddr2_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *)", "", "Argument[*3]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyaddr2_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *)", "", "Argument[3]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyaddr2_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyaddr2_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *)", "", "Argument[3]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyaddr2_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyaddr_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[*3]", "Argument[**6]", "value", "df-generated"] + - ["", "", True, "__gethostbyaddr_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[*3]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyaddr_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyaddr_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyaddr_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyaddr_r", "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[**5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname2_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname3_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **)", "", "Argument[*2]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname3_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname3_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname3_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname3_r", "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname_r", "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[**4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname_r", "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__gethostbyname_r", "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname_r", "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__gethostbyname_r", "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__gethostbyname_r", "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__gethostent_r", "(hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__gethostent_r", "(hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getline", "(char **,size_t *,FILE *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__getline", "(char **,size_t *,FILE *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__getline", "(char **,size_t *,FILE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getline", "(char **,size_t *,FILE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getline", "(char **,size_t *,FILE *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getmntent_r", "(FILE *,mntent *,char *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__getmntent_r", "(FILE *,mntent *,char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__getnetbyaddr_r", "(uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "__getnetbyaddr_r", "(uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "__getnetbyaddr_r", "(uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__getnetbyaddr_r", "(uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__getnetbyaddr_r", "(uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__getnetbyname_r", "(const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getnetbyname_r", "(const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getnetbyname_r", "(const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getnetbyname_r", "(const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getnetbyname_r", "(const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__getnetent_r", "(netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getnetent_r", "(netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getpayload", "(const double *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__getpayload", "(const double *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadf128", "(const _Float128 *)", "", "Argument[*0].Field[*lsw]", "ReturnValue.Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadf128", "(const _Float128 *)", "", "Argument[*0].Field[*lsw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadf128", "(const _Float128 *)", "", "Argument[*0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadf", "(const float *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadf", "(const float *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadl", "(const long double *)", "", "Argument[*0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__getpayloadl", "(const long double *)", "", "Argument[*0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__getprotobyname_r", "(const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getprotobyname_r", "(const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getprotobyname_r", "(const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getprotobyname_r", "(const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getprotobynumber_r", "(int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getprotobynumber_r", "(int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getprotobynumber_r", "(int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getprotobynumber_r", "(int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getprotoent_r", "(protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getprotoent_r", "(protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getpwent_r", "(passwd *,char *,size_t,passwd **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getpwent_r", "(passwd *,char *,size_t,passwd **)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getpwnam_r", "(const char *,passwd *,char *,size_t,passwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getpwnam_r", "(const char *,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getpwnam_r", "(const char *,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getpwnam_r", "(const char *,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,passwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getrpcbyname_r", "(const char *,rpcent *,char *,size_t,rpcent **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getrpcbyname_r", "(const char *,rpcent *,char *,size_t,rpcent **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getrpcbyname_r", "(const char *,rpcent *,char *,size_t,rpcent **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getrpcbyname_r", "(const char *,rpcent *,char *,size_t,rpcent **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getrpcbynumber_r", "(int,rpcent *,char *,size_t,rpcent **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getrpcbynumber_r", "(int,rpcent *,char *,size_t,rpcent **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getrpcbynumber_r", "(int,rpcent *,char *,size_t,rpcent **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getrpcbynumber_r", "(int,rpcent *,char *,size_t,rpcent **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getrpcent_r", "(rpcent *,char *,size_t,rpcent **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getrpcent_r", "(rpcent *,char *,size_t,rpcent **)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__gets_chk", "(char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__gets_chk", "(char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__gets_chk", "(char *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gets_chk", "(char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__gets_chk", "(char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__gets_chk", "(char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getservbyname_r", "(const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__getservbyname_r", "(const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "__getservbyname_r", "(const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "__getservbyname_r", "(const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__getservbyname_r", "(const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__getservbyport_r", "(int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__getservbyport_r", "(int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[*2]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "__getservbyport_r", "(int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "__getservbyport_r", "(int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__getservbyport_r", "(int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__getservent_r", "(servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getservent_r", "(servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getsgent_r", "(sgrp *,char *,size_t,sgrp **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getsgent_r", "(sgrp *,char *,size_t,sgrp **)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getsgnam_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getsgnam_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getsgnam_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getsgnam_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__getspent_r", "(spwd *,char *,size_t,spwd **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__getspent_r", "(spwd *,char *,size_t,spwd **)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__getspnam_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__getspnam_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "__getspnam_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__getspnam_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__gettext", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gettext", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__gettext", "(const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gettext", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__gettext_extract_plural", "(const char *,const expression **,unsigned long *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__gettext_extract_plural", "(const char *,const expression **,unsigned long *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__getutent_r", "(utmp *,utmp **)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__getutid_r", "(const utmp *,utmp *,utmp **)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__getutline_r", "(const utmp *,utmp *,utmp **)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__getwc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__getwd_chk", "(char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__getwd_chk", "(char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getwd_chk", "(char *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__getwd_chk", "(char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__getwd_chk", "(char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__getwd_chk", "(char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__glob", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[*0]", "Argument[*3].Field[***gl_pathv]", "value", "dfc-generated"] + - ["", "", True, "__glob", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[0]", "Argument[*3].Field[***gl_pathv]", "taint", "dfc-generated"] + - ["", "", True, "__glob", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[0]", "Argument[*3].Field[**gl_pathv]", "value", "dfc-generated"] + - ["", "", True, "__glob", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[1]", "Argument[*3].Field[*gl_flags]", "value", "dfc-generated"] + - ["", "", True, "__glob_lstat_compat", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[*0]", "Argument[*3].Field[***gl_pathv]", "value", "dfc-generated"] + - ["", "", True, "__glob_lstat_compat", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[0]", "Argument[*3].Field[***gl_pathv]", "taint", "dfc-generated"] + - ["", "", True, "__glob_lstat_compat", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[0]", "Argument[*3].Field[**gl_pathv]", "value", "dfc-generated"] + - ["", "", True, "__glob_lstat_compat", "(const char *,int,..(*)(..),glob_t *)", "", "Argument[1]", "Argument[*3].Field[*gl_flags]", "value", "dfc-generated"] + - ["", "", True, "__gmtime_r", "(const time_t *,const time_t *__restrict__,tm *,tm *__restrict__)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__gmtime_r", "(const time_t *,const time_t *__restrict__,tm *,tm *__restrict__)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__gnu_dev_major", "(__dev_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gnu_dev_makedev", "(unsigned int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gnu_dev_makedev", "(unsigned int,unsigned int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__gnu_dev_minor", "(__dev_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__grouping_iterator_init", "(grouping_iterator *,int,locale_t,unsigned int)", "", "Argument[3]", "Argument[*0].Field[*remaining]", "value", "dfc-generated"] + - ["", "", True, "__grouping_iterator_init", "(grouping_iterator *,int,locale_t,unsigned int)", "", "Argument[3]", "Argument[*0].Field[*remaining_in_current_group]", "value", "dfc-generated"] + - ["", "", True, "__grouping_iterator_init", "(grouping_iterator *,int,locale_t,unsigned int)", "", "Argument[3]", "Argument[*0].Field[*separators]", "taint", "dfc-generated"] + - ["", "", True, "__grouping_iterator_init_none", "(grouping_iterator *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*remaining]", "value", "dfc-generated"] + - ["", "", True, "__grouping_iterator_init_none", "(grouping_iterator *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*remaining_in_current_group]", "value", "dfc-generated"] + - ["", "", True, "__handle_registered_modifier_mb", "(const unsigned char **,printf_info *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__handle_registered_modifier_mb", "(const unsigned char **,printf_info *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__handle_registered_modifier_mb", "(const unsigned char **,printf_info *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__handle_registered_modifier_wc", "(const unsigned int **,printf_info *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__handle_registered_modifier_wc", "(const unsigned int **,printf_info *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__handle_registered_modifier_wc", "(const unsigned int **,printf_info *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__hash_string", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hash_string", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hasmntopt", "(const mntent *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__hasmntopt", "(const mntent *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hasmntopt", "(const mntent *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__hcreate_r", "(size_t,hsearch_data *)", "", "Argument[0]", "Argument[*1].Field[*size]", "taint", "dfc-generated"] + - ["", "", True, "__hsearch_r", "(ENTRY,ACTION,ENTRY **,hsearch_data *)", "", "Argument[*3].Field[**table].Field[*entry]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__hsearch_r", "(ENTRY,ACTION,ENTRY **,hsearch_data *)", "", "Argument[0]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "__hypot", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypot", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypot_compat", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__hypotf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypotf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypotf", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypotf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypotf_compat", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__hypotl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__hypotl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__hypotl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__idna_from_dns_encoding", "(const char *,char **)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__idna_from_dns_encoding", "(const char *,char **)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__idna_to_dns_encoding", "(const char *,char **)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__idna_to_dns_encoding", "(const char *,char **)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acos_fma4", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acos_fma", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acos_sse2", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acosf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acosf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acosh", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acoshf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acoshf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acoshf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_acoshf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_acoshl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_asin_fma4", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_asin_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_asin_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_asinf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_asinf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_asinl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_avx", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_avx", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_fma4", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_fma4", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_fma", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_fma", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_sse2", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2_sse2", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2f128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_atan2f128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2f", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atan2f", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_atanh_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_atanh_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_atanhf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_atanhf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_atanhl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_cosh", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_coshf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_coshf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_coshl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp10f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp2f128", "(_Float128)", "", "Argument[0]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp2f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp_avx", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp_fma4", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp_fma", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_exp_sse2", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_expf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_fmodf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__ieee754_fmodf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__ieee754_gamma_r", "(double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_gamma_r", "(double,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_gammaf128_r", "(_Float128,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_gammaf_r", "(float,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_gammal_r", "(long double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_gammal_r", "(long double,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_hypotf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_hypotf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_hypotl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_hypotl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_ilogbf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j0", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j0f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j0f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j0l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j1", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_j1f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_j1l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jn", "(int,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jn", "(int,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jnf128", "(int,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jnf128", "(int,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_jnf", "(int,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jnf", "(int,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jnl", "(int,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_jnl", "(int,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgamma_r", "(double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf128_r", "(_Float128,int *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf128_r", "(_Float128,int *)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf128_r", "(_Float128,int *)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf128_r", "(_Float128,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf128_r", "(_Float128,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf128_r", "(_Float128,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammaf_r", "(float,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_lgammal_r", "(long double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_log10", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_log10f128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_log10f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_log10f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_log2f128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_log2f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_log_avx", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_log_fma4", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_log_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_log_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_logf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_logf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_logf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_pow_fma4", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_pow_fma4", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_pow_fma", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_pow_fma", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_pow_sse2", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_pow_sse2", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_powf128", "(_Float128,_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_powf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_powf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_rem_pio2f128", "(_Float128,_Float128 *)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__ieee754_rem_pio2f128", "(_Float128,_Float128 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_rem_pio2l", "(long double,long double *)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__ieee754_rem_pio2l", "(long double,long double *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainder", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_remainder", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainderf128", "(_Float128,_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainderf128", "(_Float128,_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainderf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainderf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainderf", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_remainderf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_scalb", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_scalb", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_scalbf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_scalbf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_sinh_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_sinh_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_sinhf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_sinhf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_sinhl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ieee754_sqrtf128", "(_Float128,__float128)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__ieee754_y0", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_y0f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__ieee754_y0f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_y0l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__ieee754_y1", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_y1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_y1f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_y1l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__ieee754_yn", "(int,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_yn", "(int,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_ynf128", "(int,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_ynf", "(int,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_ynf", "(int,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ieee754_ynl", "(int,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__if_indextoname", "(unsigned int,char[16])", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ilogb", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ilogbf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ilogbf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__inet_makeaddr", "(in_addr_t,in_addr_t)", "", "Argument[0]", "ReturnValue.Field[*s_addr]", "taint", "dfc-generated"] + - ["", "", True, "__inet_makeaddr", "(in_addr_t,in_addr_t)", "", "Argument[1]", "ReturnValue.Field[*s_addr]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop", "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__inet_ntop", "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop", "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop", "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop", "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__inet_ntop", "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop_chk", "(int,const void *,char *,socklen_t,size_t)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__inet_ntop_chk", "(int,const void *,char *,socklen_t,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop_chk", "(int,const void *,char *,socklen_t,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop_chk", "(int,const void *,char *,socklen_t,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__inet_ntop_chk", "(int,const void *,char *,socklen_t,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__inet_ntop_chk", "(int,const void *,char *,socklen_t,size_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__initstate", "(unsigned int,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__initstate_r", "(unsigned int,char *,size_t,random_data *)", "", "Argument[0]", "Argument[*3].Field[**fptr]", "value", "dfc-generated"] + - ["", "", True, "__initstate_r", "(unsigned int,char *,size_t,random_data *)", "", "Argument[0]", "Argument[*3].Field[**rptr]", "value", "dfc-generated"] + - ["", "", True, "__internal_atexit", "(..(*)(..),void *,void *,exit_function_list **)", "", "Argument[*3]", "Argument[**3].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "__internal_atexit", "(..(*)(..),void *,void *,exit_function_list **)", "", "Argument[3]", "Argument[**3].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "__internal_atexit", "(..(*)(..),void *,void *,exit_function_list **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__internal_getnetgrent_r", "(char **,char **,char **,__netgrent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "__internal_getnetgrent_r", "(char **,char **,char **,__netgrent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__internal_getnetgrent_r", "(char **,char **,char **,__netgrent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "__internal_getnetgrent_r", "(char **,char **,char **,__netgrent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__internal_getnetgrent_r", "(char **,char **,char **,__netgrent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__internal_getnetgrent_r", "(char **,char **,char **,__netgrent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__internal_setnetgrent", "(const char *,__netgrent *)", "", "Argument[*0]", "Argument[*1].Field[**known_groups].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "__internal_setnetgrent", "(const char *,__netgrent *)", "", "Argument[0]", "Argument[*1].Field[**known_groups].Field[*name]", "taint", "dfc-generated"] + - ["", "", True, "__internal_statvfs64", "(statvfs64 *,const statfs64 *)", "", "Argument[*0].Field[*f_ffree]", "Argument[*0].Field[*f_favail]", "value", "dfc-generated"] + - ["", "", True, "__isalnum_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isalnum_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isalnum_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isalpha_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isalpha_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isalpha_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isblank_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isblank_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isblank_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iscanonicall", "(long double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iscntrl_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iscntrl_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iscntrl_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isctype", "(int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isctype", "(int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isdigit_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isdigit_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isdigit_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isgraph_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isgraph_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isgraph_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinf", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinff128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinff128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinff", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinfl", "(long double)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinfl", "(long double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isinfl", "(long double)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__islower_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__islower_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__islower_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnan", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanf128_impl", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanf128_impl", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanl", "(long double)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanl", "(long double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isnanl", "(long double)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtol", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtol", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_vfscanf", "(FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_vfwscanf", "(FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_vscanf", "(const char *,const char *__restrict__,__gnuc_va_list,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_vsscanf", "(const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_vswscanf", "(const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_vwscanf", "(const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc23_wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isoc99_vfscanf", "(FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc99_vfwscanf", "(FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc99_vscanf", "(const char *,const char *__restrict__,__gnuc_va_list,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__isoc99_vsscanf", "(const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc99_vswscanf", "(const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__isoc99_vwscanf", "(const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__isprint_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isprint_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isprint_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ispunct_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ispunct_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ispunct_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isspace_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isspace_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isspace_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isupper_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isupper_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isupper_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalnum", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalnum_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalnum_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalnum_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalpha", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalpha_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalpha_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswalpha_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswblank", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswblank_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswblank_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswblank_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswcntrl", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswcntrl_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswcntrl_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswcntrl_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswctype", "(wint_t,wctype_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswctype", "(wint_t,wctype_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswctype_l", "(wint_t,wctype_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswctype_l", "(wint_t,wctype_t,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswdigit", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswdigit_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswgraph", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswgraph_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswgraph_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswgraph_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswlower", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswlower_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswlower_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswlower_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswprint", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswprint_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswprint_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswprint_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswpunct", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswpunct_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswpunct_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswpunct_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswspace", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswspace_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswspace_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswspace_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswupper", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswupper_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswupper_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswupper_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswxdigit", "(wint_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswxdigit_l", "(wint_t,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswxdigit_l", "(wint_t,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__iswxdigit_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isxdigit_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isxdigit_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_b]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__isxdigit_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j0", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j0", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__j0f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j0f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j0f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__j0l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j0l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__j1", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j1", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__j1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__j1f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j1f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__j1l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__j1l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__jn", "(int,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jn", "(int,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__jn", "(int,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jnf128", "(int,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jnf128", "(int,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__jnf", "(int,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jnf", "(int,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__jnf", "(int,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jnl", "(int,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jnl", "(int,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__jnl", "(int,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__jrand48_r", "(unsigned short[3],drand48_data *,long *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__jrand48_r", "(unsigned short[3],drand48_data *,long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__jrand48_r", "(unsigned short[3],drand48_data *,long *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_cosf128", "(_Float128,_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_cosf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_cosf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_cosl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_cosl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[*5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_rem_pio2", "(double *,double *,int,int,int,const int32_t *)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_sincosf128", "(_Float128,_Float128,_Float128 *,_Float128 *,int)", "", "Argument[0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__kernel_sincosf128", "(_Float128,_Float128,_Float128 *,_Float128 *,int)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_sincosf128", "(_Float128,_Float128,_Float128 *,_Float128 *,int)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__kernel_sinf128", "(_Float128,_Float128,int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_sinf128", "(_Float128,_Float128,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_sinf128", "(_Float128,_Float128,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_sinl", "(long double,long double,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_sinl", "(long double,long double,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_standard", "(double,double,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_standard_f", "(float,float,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_standard_l", "(long double,long double,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_tanf128", "(_Float128,_Float128,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_tanf128", "(_Float128,_Float128,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_tanf128", "(_Float128,_Float128,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_tanl", "(long double,long double,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__kernel_tanl", "(long double,long double,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__kernel_tanl", "(long double,long double,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lcong48_r", "(unsigned short[7],drand48_data *)", "", "Argument[0]", "Argument[*1].Field[*__a]", "taint", "dfc-generated"] + - ["", "", True, "__lcong48_r", "(unsigned short[7],drand48_data *)", "", "Argument[0]", "Argument[*1].Field[*__c]", "taint", "dfc-generated"] + - ["", "", True, "__lcong48_r", "(unsigned short[7],drand48_data *)", "", "Argument[0]", "Argument[*1].Field[*__x]", "taint", "dfc-generated"] + - ["", "", True, "__ldexp", "(double,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ldexp", "(double,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ldexpf128", "(_Float128,int)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__ldexpf128", "(_Float128,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ldexpf128", "(_Float128,int)", "", "Argument[1]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__ldexpf", "(float,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ldexpf", "(float,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ldexpl", "(long double,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgamma_compat", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgamma_neg", "(double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_negf128", "(_Float128,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_negl", "(long double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_product", "(double,double,double,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_product", "(double,double,double,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_product", "(double,double,double,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_productf128", "(_Float128,_Float128,_Float128,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_productf128", "(_Float128,_Float128,_Float128,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_productf128", "(_Float128,_Float128,_Float128,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_productl", "(long double,long double,long double,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_productl", "(long double,long double,long double,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_productl", "(long double,long double,long double,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_r", "(double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgamma_r", "(double,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgammaf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128_r", "(_Float128,int *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128_r", "(_Float128,int *)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128_r", "(_Float128,int *)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128_r", "(_Float128,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128_r", "(_Float128,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf128_r", "(_Float128,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgammaf_compat", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgammaf_r", "(float,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammaf_r", "(float,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgammal", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammal", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgammal_compat", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lgammal_r", "(long double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lgammal_r", "(long double,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_alloc_array", "(alloc_buffer *,size_t,size_t,size_t)", "", "Argument[*0].Field[*__alloc_buffer_current]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_alloc_array", "(alloc_buffer *,size_t,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*__alloc_buffer_current]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_alloc_array", "(alloc_buffer *,size_t,size_t,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_allocate", "(size_t,void **)", "", "Argument[*1]", "ReturnValue.Field[*__alloc_buffer_current]", "value", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_allocate", "(size_t,void **)", "", "Argument[*1]", "ReturnValue.Field[*__alloc_buffer_end]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_allocate", "(size_t,void **)", "", "Argument[0]", "ReturnValue.Field[*__alloc_buffer_end]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_allocate", "(size_t,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_allocate", "(size_t,void **)", "", "Argument[1]", "ReturnValue.Field[*__alloc_buffer_current]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_allocate", "(size_t,void **)", "", "Argument[1]", "ReturnValue.Field[*__alloc_buffer_end]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_copy_bytes", "(alloc_buffer,const void *,size_t)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__libc_alloc_buffer_copy_bytes", "(alloc_buffer,const void *,size_t)", "", "Argument[2]", "Argument[0].Field[*__alloc_buffer_current]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_copy_bytes", "(alloc_buffer,const void *,size_t)", "", "Argument[2]", "ReturnValue.Field[*__alloc_buffer_current]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_copy_string", "(alloc_buffer,const char *)", "", "Argument[0].Field[*__alloc_buffer_current]", "ReturnValue.Field[*__alloc_buffer_current]", "taint", "dfc-generated"] + - ["", "", True, "__libc_alloc_buffer_copy_string", "(alloc_buffer,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__libc_clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__libc_clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__libc_clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int)", "", "Argument[6]", "ReturnValue[*].Field[**cl_private].Field[**cu_outbuf]", "taint", "dfc-generated"] + - ["", "", True, "__libc_clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int)", "", "Argument[6]", "ReturnValue[*].Field[**cl_private].Field[*cu_outbuf]", "taint", "dfc-generated"] + - ["", "", True, "__libc_dlclose", "(void *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "__libc_dynarray_finalize", "(dynarray_header *,void *,size_t,dynarray_finalize_result *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "__libc_dynarray_resize", "(dynarray_header *,size_t,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*allocated]", "value", "dfc-generated"] + - ["", "", True, "__libc_dynarray_resize", "(dynarray_header *,size_t,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*used]", "value", "dfc-generated"] + - ["", "", True, "__libc_dynarray_resize_clear", "(dynarray_header *,size_t,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*allocated]", "value", "dfc-generated"] + - ["", "", True, "__libc_dynarray_resize_clear", "(dynarray_header *,size_t,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*used]", "value", "dfc-generated"] + - ["", "", True, "__libc_free", "(void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__libc_getutent_r", "(utmp *,utmp **)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__libc_getutid_r", "(const utmp *,utmp *,utmp **)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__libc_getutline_r", "(const utmp *,utmp *,utmp **)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__libc_malloc", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__libc_malloc", "(size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__libc_memalign", "(size_t,size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__libc_memalign", "(size_t,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__libc_memalign", "(size_t,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__libc_memalign", "(size_t,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__libc_ns_makecanon", "(const char *,char *,size_t)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__libc_ns_makecanon", "(const char *,char *,size_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__libc_pututline", "(const utmp *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__libc_pututline", "(const utmp *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__libc_realloc", "(void *,size_t)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__libc_realloc", "(void *,size_t)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__libc_realloc", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__libc_realloc", "(void *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__libc_realloc", "(void *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__libc_realloc", "(void *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__libc_reallocarray", "(void *,size_t,size_t)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__libc_reallocarray", "(void *,size_t,size_t)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__libc_reallocarray", "(void *,size_t,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__libc_reallocarray", "(void *,size_t,size_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__libc_reallocarray", "(void *,size_t,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__libc_rpc_gethostbyname", "(const char *,sockaddr_in *)", "", "Argument[*0]", "Argument[*1].Field[*sin_addr]", "taint", "dfc-generated"] + - ["", "", True, "__libc_rpc_gethostbyname", "(const char *,sockaddr_in *)", "", "Argument[0]", "Argument[*1].Field[*sin_addr]", "taint", "dfc-generated"] + - ["", "", True, "__libc_rpc_getport", "(sockaddr_in *,u_long,u_long,u_int,time_t,time_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__libc_scratch_buffer_set_array_size", "(scratch_buffer *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "__libc_scratch_buffer_set_array_size", "(scratch_buffer *,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "__libc_start_main_impl", "(..(*)(..),int,char **,..(*)(..),..(*)(..),void *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__libc_start_main_impl", "(..(*)(..),int,char **,..(*)(..),..(*)(..),void *)", "", "Argument[1]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__libc_start_main_impl", "(..(*)(..),int,char **,..(*)(..),..(*)(..),void *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__libc_start_main_impl", "(..(*)(..),int,char **,..(*)(..),..(*)(..),void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__libc_start_main_impl", "(..(*)(..),int,char **,..(*)(..),..(*)(..),void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__libc_valloc", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__libc_valloc", "(size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__libio_codecvt_in", "(_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **)", "", "Argument[*2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__libio_codecvt_in", "(_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **)", "", "Argument[*5]", "Argument[**7]", "value", "df-generated"] + - ["", "", True, "__libio_codecvt_in", "(_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **)", "", "Argument[2]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__libio_codecvt_in", "(_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **)", "", "Argument[5]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "__libio_codecvt_length", "(_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__libio_codecvt_out", "(_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **)", "", "Argument[*2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__libio_codecvt_out", "(_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **)", "", "Argument[*5]", "Argument[**7]", "value", "df-generated"] + - ["", "", True, "__libio_codecvt_out", "(_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **)", "", "Argument[2]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__libio_codecvt_out", "(_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **)", "", "Argument[5]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "__lio_listio_21", "(int,aiocb *const[],int,sigevent *)", "", "Argument[**1].Field[*aio_lio_opcode]", "Argument[**1].Union[*(unnamed class/struct/union)].Field[*aio_lio_opcode]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_21", "(int,aiocb *const[],int,sigevent *)", "", "Argument[**1].Union[*(unnamed class/struct/union)].Field[*aio_reqprio]", "Argument[**1].Union[*(unnamed class/struct/union)].Field[*__abs_prio]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_21", "(int,aiocb *const[],int,sigevent *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_21", "(int,aiocb *const[],int,sigevent *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_24", "(int,aiocb *const[],int,sigevent *)", "", "Argument[**1].Field[*aio_lio_opcode]", "Argument[**1].Union[*(unnamed class/struct/union)].Field[*aio_lio_opcode]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_24", "(int,aiocb *const[],int,sigevent *)", "", "Argument[**1].Union[*(unnamed class/struct/union)].Field[*aio_reqprio]", "Argument[**1].Union[*(unnamed class/struct/union)].Field[*__abs_prio]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_24", "(int,aiocb *const[],int,sigevent *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__lio_listio_24", "(int,aiocb *const[],int,sigevent *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__lll_clocklock_elision", "(int *,short *,clockid_t,const timespec *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__lll_lock_elision", "(int *,short *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__lll_trylock_elision", "(int *,short *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__lll_unlock_elision", "(int *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__llogb", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llogbf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llogbf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llrintf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llrintf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llrintf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__llround", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__llroundf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llroundf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__llroundf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__llroundf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__llroundl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__loc_aton", "(const char *,u_char *,unsigned char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__loc_ntoa", "(const u_char *,const unsigned char *,char *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__loc_ntoa", "(const u_char *,const unsigned char *,char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__loc_ntoa", "(const u_char *,const unsigned char *,char *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__loc_ntoa", "(const u_char *,const unsigned char *,char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__loc_ntoa", "(const u_char *,const unsigned char *,char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__localtime_r", "(const time_t *,tm *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__localtime_r", "(const time_t *,tm *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log10", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log10", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log10f128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log10f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log10f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log10l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log10p1", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log10p1f128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log10p1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log10p1f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log10p1l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log1p_fma", "(double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log1p_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log1p_sse2", "(double)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log1p_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log1pf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log1pf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log1pf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2_compat", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2f128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log2f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log2f_compat", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2f_fma", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2f_sse2", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__log2p1", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log2p1f128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log2p1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log2p1f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log2p1l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__log_compat", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__logb", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logbf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logbf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logbf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logf128", "(_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__logf_compat", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__logf_fma", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__logf_sse2", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__login", "(const utmp *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__logl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lrintf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lrintf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lrintf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lroundf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lroundf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__lroundf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lroundf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__lroundl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__makecontext", "(ucontext_t *,..(*)(..),int,...)", "", "Argument[1]", "Argument[*0].Field[*uc_mcontext].Field[*gregs]", "value", "dfc-generated"] + - ["", "", True, "__makecontext", "(ucontext_t *,..(*)(..),int,...)", "", "Argument[2]", "Argument[*0].Field[*__ssp]", "taint", "dfc-generated"] + - ["", "", True, "__makecontext", "(ucontext_t *,..(*)(..),int,...)", "", "Argument[2]", "Argument[*0].Field[*uc_mcontext].Field[*gregs]", "taint", "dfc-generated"] + - ["", "", True, "__malloc_hugepage_config", "(size_t,size_t *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__malloc_usable_size", "(void *)", "", "Argument[*0].Field[*mchunk_size]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__malloc_usable_size", "(void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__math_check_oflow", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_check_uflow", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_edom", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_edomf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_invalid", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__math_invalid_i", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_invalid_li", "(long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_invalidf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__math_invalidf_i", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__math_invalidf_li", "(long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mbrlen", "(const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mbrtowc", "(wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mbsnrtowcs", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mbsnrtowcs", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__mbsnrtowcs_chk", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mbsnrtowcs_chk", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__mbsrtowcs", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mbsrtowcs", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__mbsrtowcs_chk", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mbsrtowcs_chk", "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__mbsrtowcs_l", "(wchar_t *,const char **,size_t,mbstate_t *,locale_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mbsrtowcs_l", "(wchar_t *,const char **,size_t,mbstate_t *,locale_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__mbstowcs_chk", "(wchar_t *,const char *,size_t,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__md5_buffer", "(const char *,size_t,void *)", "", "Argument[**2]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__md5_buffer", "(const char *,size_t,void *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__md5_buffer", "(const char *,size_t,void *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__md5_finish_ctx", "(md5_ctx *,void *)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__md5_finish_ctx", "(md5_ctx *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__md5_finish_ctx", "(md5_ctx *,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__md5_process_block", "(const void *,size_t,md5_ctx *)", "", "Argument[1]", "Argument[*2].Field[*total]", "taint", "dfc-generated"] + - ["", "", True, "__md5_process_bytes", "(const void *,size_t,md5_ctx *)", "", "Argument[**0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__md5_process_bytes", "(const void *,size_t,md5_ctx *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__md5_process_bytes", "(const void *,size_t,md5_ctx *)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__md5_process_bytes", "(const void *,size_t,md5_ctx *)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__md5_read_ctx", "(const md5_ctx *,void *)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__md5_read_ctx", "(const md5_ctx *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__md5_read_ctx", "(const md5_ctx *,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__memccpy", "(void *,const void *,int,size_t)", "", "Argument[**1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__memccpy", "(void *,const void *,int,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__memccpy", "(void *,const void *,int,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[*0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[*2]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[*2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[1]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[2]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__memmem", "(const void *,size_t,const void *,size_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__merge_grp", "(group *,char *,char *,size_t,group *,char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__minimal_realloc", "(void *,size_t)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__minimal_realloc", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "__minimal_realloc", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__minimal_realloc", "(void *,size_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__minimal_realloc", "(void *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__mktemp", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__mktemp", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mktime_internal", "(tm *,..(*)(..),mktime_offset_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__modf", "(double,double *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__modf", "(double,double *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__modf", "(double,double *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__modf", "(double,double *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__modf", "(double,double *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__modff128", "(_Float128,_Float128 *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__modff128", "(_Float128,_Float128 *)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__modff128", "(_Float128,_Float128 *)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__modff128", "(_Float128,_Float128 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__modff128", "(_Float128,_Float128 *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__modff", "(float,float *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__modff", "(float,float *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__modff", "(float,float *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__modff", "(float,float *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__modff", "(float,float *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__modfl", "(long double,long double *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__modfl", "(long double,long double *)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__modfl", "(long double,long double *)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__modfl", "(long double,long double *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__modfl", "(long double,long double *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_add", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_add", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_add", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_add", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_add_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_add_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_add_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_add_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_double", "(mp_srcptr,int,int)", "", "Argument[*0]", "ReturnValue.Field[*mantissa0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_double", "(mp_srcptr,int,int)", "", "Argument[*0]", "ReturnValue.Field[*mantissa1]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_double", "(mp_srcptr,int,int)", "", "Argument[0]", "ReturnValue.Field[*mantissa0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_double", "(mp_srcptr,int,int)", "", "Argument[0]", "ReturnValue.Field[*mantissa1]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_double", "(mp_srcptr,int,int)", "", "Argument[1]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_double", "(mp_srcptr,int,int)", "", "Argument[2]", "ReturnValue.Field[*negative]", "value", "dfc-generated"] + - ["", "", True, "__mpn_construct_float128", "(mp_srcptr,int,int)", "", "Argument[1]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_float128", "(mp_srcptr,int,int)", "", "Argument[2]", "ReturnValue.Field[*negative]", "value", "dfc-generated"] + - ["", "", True, "__mpn_construct_float", "(mp_srcptr,int,int)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_float", "(mp_srcptr,int,int)", "", "Argument[0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_float", "(mp_srcptr,int,int)", "", "Argument[1]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_construct_float", "(mp_srcptr,int,int)", "", "Argument[2]", "ReturnValue.Field[*negative]", "value", "dfc-generated"] + - ["", "", True, "__mpn_divmod_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mpn_divmod_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divmod_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[*4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[5]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_divrem", "(mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_extract_double", "(mp_ptr,mp_size_t,int *,int *,double)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_extract_float128", "(mp_ptr,mp_size_t,int *,int *,_Float128)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_extract_long_double", "(mp_ptr,mp_size_t,int *,int *,long double)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*4]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n_basecase", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n_basecase", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_mul_n_basecase", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[*3]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n", "(mp_ptr,mp_srcptr,mp_size_t,mp_ptr)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n_basecase", "(mp_ptr,mp_srcptr,mp_size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n_basecase", "(mp_ptr,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_impn_sqr_n_basecase", "(mp_ptr,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mod_1", "(mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mpn_mod_1", "(mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mod_1", "(mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[*3]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_mul_n", "(mp_ptr,mp_srcptr,mp_srcptr,mp_size_t)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_sub", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_sub", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_sub", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_sub", "(mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_sub_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__mpn_sub_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_sub_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__mpn_sub_1", "(mp_ptr,mp_srcptr,mp_size_t,mp_limb_t)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nearbyint_c", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nearbyintf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__nearbyintf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nearbyintf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nearbyintf_c", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__netlink_request", "(netlink_handle *,int)", "", "Argument[*0].Field[*seq]", "Argument[*0].Field[**end_ptr].Field[*seq]", "value", "dfc-generated"] + - ["", "", True, "__netlink_request", "(netlink_handle *,int)", "", "Argument[*0].Field[*seq]", "Argument[*0].Field[**nlm_list].Field[*seq]", "value", "dfc-generated"] + - ["", "", True, "__new_exitfn", "(exit_function_list **)", "", "Argument[*0]", "Argument[**0].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "__new_exitfn", "(exit_function_list **)", "", "Argument[0]", "Argument[**0].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "__new_exitfn", "(exit_function_list **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__new_sem_init", "(sem_t *,int,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "__newlocale", "(int,const char *,locale_t)", "", "Argument[*1]", "ReturnValue[*].Field[**__locales].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "__newlocale", "(int,const char *,locale_t)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__newlocale", "(int,const char *,locale_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__newlocale", "(int,const char *,locale_t)", "", "Argument[1]", "ReturnValue[*].Field[**__locales].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "__newlocale", "(int,const char *,locale_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__newlocale", "(int,const char *,locale_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nextafter", "(double,double)", "", "Argument[0].Field[*lsw]", "ReturnValue.Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__nextafter", "(double,double)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "value", "dfc-generated"] + - ["", "", True, "__nextafter", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nextafter", "(double,double)", "", "Argument[1].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__nextafter", "(double,double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextafterf128", "(_Float128,_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue.Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__nextafterf128", "(_Float128,_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "value", "dfc-generated"] + - ["", "", True, "__nextafterf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nextafterf128", "(_Float128,_Float128)", "", "Argument[1].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__nextafterf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextafterf", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nextafterf", "(float,float)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextafterl", "(long double,long double)", "", "Argument[1].Field[*sign_exponent]", "ReturnValue.Field[*sign_exponent]", "taint", "dfc-generated"] + - ["", "", True, "__nextafterl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextdown", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nextdownf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nextdownf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nextdownl", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nexttoward", "(double,long double)", "", "Argument[0].Field[*lsw]", "ReturnValue.Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__nexttoward", "(double,long double)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "value", "dfc-generated"] + - ["", "", True, "__nexttoward", "(double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nexttoward", "(double,long double)", "", "Argument[1].Field[*sign_exponent]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__nexttoward", "(double,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nexttowardf", "(float,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nexttowardf", "(float,long double)", "", "Argument[1].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nexttowardf", "(float,long double)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextup", "(double)", "", "Argument[0].Field[*lsw]", "ReturnValue.Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__nextup", "(double)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "value", "dfc-generated"] + - ["", "", True, "__nextup", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextupf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue.Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__nextupf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "value", "dfc-generated"] + - ["", "", True, "__nextupf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextupf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nextupl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__ngettext", "(const char *,const char *,unsigned long)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ngettext", "(const char *,const char *,unsigned long)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__ngettext", "(const char *,const char *,unsigned long)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__ngettext", "(const char *,const char *,unsigned long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ngettext", "(const char *,const char *,unsigned long)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__ngettext", "(const char *,const char *,unsigned long)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nis_create_callback", "(..(*)(..),const void *,unsigned int)", "", "Argument[**1]", "ReturnValue[*].Field[***userdata]", "value", "dfc-generated"] + - ["", "", True, "__nis_create_callback", "(..(*)(..),const void *,unsigned int)", "", "Argument[*1]", "ReturnValue[*].Field[**userdata]", "value", "dfc-generated"] + - ["", "", True, "__nis_create_callback", "(..(*)(..),const void *,unsigned int)", "", "Argument[0]", "ReturnValue[*].Field[*callback]", "value", "dfc-generated"] + - ["", "", True, "__nis_create_callback", "(..(*)(..),const void *,unsigned int)", "", "Argument[1]", "ReturnValue[*].Field[*userdata]", "value", "dfc-generated"] + - ["", "", True, "__nis_default_access", "(char *,unsigned int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nis_default_group", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nis_default_group", "(char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nis_default_owner", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nis_default_owner", "(char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nis_default_ttl", "(char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nis_default_ttl", "(char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nis_do_callback", "(dir_binding *,netobj *,nis_cb *)", "", "Argument[*2].Field[*result]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nis_domain_of", "(const_nis_name)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nis_domain_of", "(const_nis_name)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nis_domain_of", "(const_nis_name)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nis_hash", "(const void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nis_hash", "(const void *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nisbind_create", "(dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[**server_val]", "value", "dfc-generated"] + - ["", "", True, "__nisbind_create", "(dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*server_val]", "value", "dfc-generated"] + - ["", "", True, "__nisbind_create", "(dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*server_len]", "value", "dfc-generated"] + - ["", "", True, "__nisbind_create", "(dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int)", "", "Argument[3]", "Argument[*0].Field[*server_used]", "value", "dfc-generated"] + - ["", "", True, "__nisbind_create", "(dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int)", "", "Argument[4]", "Argument[*0].Field[*current_ep]", "value", "dfc-generated"] + - ["", "", True, "__nisfind_server", "(const_nis_name,int,directory_obj **,dir_binding *,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__nl_langinfo_l", "(nl_item,locale_t)", "", "Argument[*1].Field[**__names]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__nl_langinfo_l", "(nl_item,locale_t)", "", "Argument[*1].Field[*__names]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nl_langinfo_l", "(nl_item,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nptl_stack_list_add", "(list_t *,list_t *)", "", "Argument[*0]", "Argument[*1].Field[**next].Field[**prev]", "value", "dfc-generated"] + - ["", "", True, "__nptl_stack_list_add", "(list_t *,list_t *)", "", "Argument[*0]", "Argument[*1].Field[**next]", "value", "dfc-generated"] + - ["", "", True, "__nptl_stack_list_add", "(list_t *,list_t *)", "", "Argument[0]", "Argument[*1].Field[**next].Field[*prev]", "value", "dfc-generated"] + - ["", "", True, "__nptl_stack_list_add", "(list_t *,list_t *)", "", "Argument[0]", "Argument[*1].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "__nptl_stack_list_add", "(list_t *,list_t *)", "", "Argument[1]", "Argument[*0].Field[*prev]", "value", "dfc-generated"] + - ["", "", True, "__nptl_stack_list_add", "(list_t *,list_t *)", "", "Argument[1]", "Argument[*1].Field[**next].Field[*prev]", "value", "dfc-generated"] + - ["", "", True, "__nrand48_r", "(unsigned short[3],drand48_data *,long *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__nrand48_r", "(unsigned short[3],drand48_data *,long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nrand48_r", "(unsigned short[3],drand48_data *,long *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__ns_name_length_uncompressed", "(const unsigned char *,const unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ns_name_length_uncompressed", "(const unsigned char *,const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ns_rr_cursor_init", "(ns_rr_cursor *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__ns_rr_cursor_init", "(ns_rr_cursor *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__ns_rr_cursor_init", "(ns_rr_cursor *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__ns_rr_cursor_next", "(ns_rr_cursor *,ns_rr_wire *)", "", "Argument[*1].Field[*rdlength]", "Argument[*0].Field[**current]", "taint", "dfc-generated"] + - ["", "", True, "__ns_rr_cursor_next", "(ns_rr_cursor *,ns_rr_wire *)", "", "Argument[*1].Field[*rdlength]", "Argument[*0].Field[*current]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_cache_search", "(request_type,const char *,size_t,const mapped_database *,size_t)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__nscd_cache_search", "(request_type,const char *,size_t,const mapped_database *,size_t)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__nscd_get_map_ref", "(request_type,const char *,volatile locked_map_ptr *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_get_mapping", "(request_type,const char *,mapped_database **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_getgrgid_r", "(gid_t,group *,char *,size_t,group **)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__nscd_getgrgid_r", "(gid_t,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getgrnam_r", "(const char *,group *,char *,size_t,group **)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__nscd_getgrnam_r", "(const char *,group *,char *,size_t,group **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getgrouplist", "(const char *,gid_t,long *,gid_t **,long)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_getgrouplist", "(const char *,gid_t,long *,gid_t **,long)", "", "Argument[1]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getgrouplist", "(const char *,gid_t,long *,gid_t **,long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_getgrouplist", "(const char *,gid_t,long *,gid_t **,long)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_getgrouplist", "(const char *,gid_t,long *,gid_t **,long)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nscd_gethostbyaddr_r", "(const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *)", "", "Argument[*3]", "Argument[**6]", "value", "df-generated"] + - ["", "", True, "__nscd_gethostbyaddr_r", "(const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *)", "", "Argument[3]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "__nscd_gethostbyname2_r", "(const char *,int,hostent *,char *,size_t,hostent **,int *)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__nscd_gethostbyname2_r", "(const char *,int,hostent *,char *,size_t,hostent **,int *)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__nscd_gethostbyname_r", "(const char *,hostent *,char *,size_t,hostent **,int *)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__nscd_gethostbyname_r", "(const char *,hostent *,char *,size_t,hostent **,int *)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getpwnam_r", "(const char *,passwd *,char *,size_t,passwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getpwnam_r", "(const char *,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getpwuid_r", "(uid_t,passwd *,char *,size_t,passwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getpwuid_r", "(uid_t,passwd *,char *,size_t,passwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,servent **)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__nscd_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,servent **)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__nscd_getservbyport_r", "(int,const char *,servent *,char *,size_t,servent **)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__nscd_getservbyport_r", "(int,const char *,servent *,char *,size_t,servent **)", "", "Argument[2]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__nss_action_allocate", "(nss_action *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__nss_action_allocate", "(nss_action *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_action_allocate", "(nss_action *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nss_action_parse", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__nss_action_parse", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__nss_aliases_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_aliases_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_aliases_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_aliases_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_database_fork_subprocess", "(nss_database_data *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_database_get", "(nss_database,nss_action_list *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__nss_database_get_noreload", "(nss_database)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nss_endent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)", "", "Argument[**2]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "__nss_endent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)", "", "Argument[**2]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__nss_endent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)", "", "Argument[*2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__nss_endent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)", "", "Argument[*2]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "__nss_endent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_endent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__nss_ethers_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_ethers_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_ethers_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_ethers_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__nss_fgetent_r", "(FILE *,void *,char *,size_t,nss_files_parse_line)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__nss_files_data_open", "(nss_files_per_file_data **,nss_files_file,const char *,int *,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_files_data_open", "(nss_files_per_file_data **,nss_files_file,const char *,int *,int *)", "", "Argument[1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_files_data_open", "(nss_files_per_file_data **,nss_files_file,const char *,int *,int *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent", "(getent_r_function,void **,char **,size_t,size_t *,int *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent", "(getent_r_function,void **,char **,size_t,size_t *,int *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent", "(getent_r_function,void **,char **,size_t,size_t *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent", "(getent_r_function,void **,char **,size_t,size_t *,int *)", "", "Argument[3]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__nss_getent", "(getent_r_function,void **,char **,size_t,size_t *,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent", "(getent_r_function,void **,char **,size_t,size_t *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[**3]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[**3]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[**4]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[**4]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[*3]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[*4]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[*8]", "Argument[**11]", "value", "dfc-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[12]", "Argument[*12]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__nss_getent_r", "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)", "", "Argument[8]", "Argument[*11]", "value", "dfc-generated"] + - ["", "", True, "__nss_group_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_group_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_group_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_group_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_gshadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_gshadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_gshadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_gshadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_hash", "(const void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nss_hash", "(const void *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nss_hostname_digits_dots", "(const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)", "", "Argument[*1]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "__nss_hostname_digits_dots", "(const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)", "", "Argument[1]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "__nss_hostname_digits_dots", "(const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_hostname_digits_dots_context", "(resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)", "", "Argument[*2]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "__nss_hostname_digits_dots_context", "(resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)", "", "Argument[2]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "__nss_hostname_digits_dots_context", "(resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__nss_hosts_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_hosts_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_hosts_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_hosts_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_lookup", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_lookup", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_lookup", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_lookup", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_module_allocate", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue[*].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "__nss_module_allocate", "(const char *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*name]", "taint", "dfc-generated"] + - ["", "", True, "__nss_module_get_function", "(nss_module *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__nss_module_get_function", "(nss_module *,const char *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "__nss_module_get_function", "(nss_module *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__nss_netgroup_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_netgroup_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_netgroup_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_netgroup_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_networks_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_networks_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_networks_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_networks_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_next2", "(nss_action **,nss_action_list *,const char *,const char *,void **,int,int)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_next2", "(nss_action **,nss_action_list *,const char *,const char *,void **,int,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_next2", "(nss_action **,nss_action_list *,const char *,const char *,void **,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_next2", "(nss_action **,nss_action_list *,const char *,const char *,void **,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_passwd_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_passwd_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_passwd_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_passwd_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_protocols_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_protocols_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_protocols_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_protocols_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_publickey_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_publickey_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_publickey_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_publickey_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_readline", "(FILE *,char *,size_t,off64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__nss_readline", "(FILE *,char *,size_t,off64_t *)", "", "Argument[2]", "Argument[*0].Field[**_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__nss_readline", "(FILE *,char *,size_t,off64_t *)", "", "Argument[2]", "Argument[*0].Field[*_IO_read_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__nss_readline", "(FILE *,char *,size_t,off64_t *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__nss_readline", "(FILE *,char *,size_t,off64_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[**1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rewrite_field", "(const char *,char **)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__nss_rpc_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rpc_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rpc_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_rpc_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_services_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_services_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_services_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_services_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[**2]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[**2]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[*2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[*2]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[5]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "__nss_setent", "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__nss_shadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_shadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_shadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_shadow_lookup2", "(nss_action **,nss_action_list *,const char *,const char *,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__nss_valid_list_field", "(char **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_valid_list_field", "(char **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__nss_valid_list_field", "(char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__obstack_vprintf", "(obstack *,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__obstack_vprintf_chk", "(obstack *,int,const char *,__gnuc_va_list,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__obstack_vprintf_internal", "(obstack *,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__offtime", "(time_t,long,tm *)", "", "Argument[1]", "Argument[*2].Field[*tm_hour]", "taint", "dfc-generated"] + - ["", "", True, "__offtime", "(time_t,long,tm *)", "", "Argument[1]", "Argument[*2].Field[*tm_min]", "taint", "dfc-generated"] + - ["", "", True, "__offtime", "(time_t,long,tm *)", "", "Argument[1]", "Argument[*2].Field[*tm_sec]", "taint", "dfc-generated"] + - ["", "", True, "__old_cfgetispeed", "(const old_termios_t *)", "", "Argument[*0].Field[*c_cflag]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_cfgetospeed", "(const old_termios_t *)", "", "Argument[*0].Field[*c_cflag]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_cfsetispeed", "(old_termios_t *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "__old_cfsetispeed", "(old_termios_t *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*c_cflag]", "taint", "dfc-generated"] + - ["", "", True, "__old_cfsetospeed", "(old_termios_t *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "__old_cfsetospeed", "(old_termios_t *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*c_cflag]", "taint", "dfc-generated"] + - ["", "", True, "__old_cfsetspeed", "(old_termios_t *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "__old_cfsetspeed", "(old_termios_t *,speed_t)", "", "Argument[1]", "Argument[*0].Field[*c_cflag]", "taint", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[*0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[1]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[1]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[2]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[2]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[3]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[3]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[4]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[4]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[5]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[5]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[6]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[6]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[7]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[7]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[8]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[8]", "ReturnValue[*].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[9]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_mempcpy_small", "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[9]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__old_realpath", "(const char *,char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[1]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[2]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[3]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[4]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[5]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[6]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[7]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[8]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_stpcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[8]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[1]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[2]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[3]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[4]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[5]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[6]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strcpy_small", "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)", "", "Argument[7]", "Argument[*0].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "__old_strpbrk_c2", "(const char *,int,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strpbrk_c2", "(const char *,int,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_strpbrk_c2", "(const char *,int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__old_strpbrk_c3", "(const char *,int,int,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strpbrk_c3", "(const char *,int,int,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_strpbrk_c3", "(const char *,int,int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_1c", "(char **,char)", "", "Argument[1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_2c", "(char **,char,char)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strsep_2c", "(char **,char,char)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_2c", "(char **,char,char)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_strsep_2c", "(char **,char,char)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_2c", "(char **,char,char)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_2c", "(char **,char,char)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_3c", "(char **,char,char,char)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strsep_3c", "(char **,char,char,char)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_3c", "(char **,char,char,char)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__old_strsep_3c", "(char **,char,char,char)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_3c", "(char **,char,char,char)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__old_strsep_3c", "(char **,char,char,char)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[**2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[**2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[*2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__old_strtok_r_1c", "(char *,char,char **)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__p_cdname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__p_cdname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__p_cdname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_cdnname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__p_cdnname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__p_cdnname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_class", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_fqname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__p_fqname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__p_fqname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_fqnname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__p_fqnname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__p_fqnname", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_option", "(u_long,unsigned long)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_rcode", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_secstodate", "(u_long)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_time", "(uint32_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__p_type", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__parse_one_specmb", "(const unsigned char *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[1]", "Argument[*2].Field[*data_arg]", "value", "dfc-generated"] + - ["", "", True, "__parse_one_specmb", "(const unsigned char *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[1]", "Argument[*2].Field[*prec_arg]", "value", "dfc-generated"] + - ["", "", True, "__parse_one_specmb", "(const unsigned char *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[1]", "Argument[*2].Field[*width_arg]", "value", "dfc-generated"] + - ["", "", True, "__parse_one_specmb", "(const unsigned char *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__parse_one_specwc", "(const unsigned int *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[1]", "Argument[*2].Field[*data_arg]", "value", "dfc-generated"] + - ["", "", True, "__parse_one_specwc", "(const unsigned int *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[1]", "Argument[*2].Field[*prec_arg]", "value", "dfc-generated"] + - ["", "", True, "__parse_one_specwc", "(const unsigned int *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[1]", "Argument[*2].Field[*width_arg]", "value", "dfc-generated"] + - ["", "", True, "__parse_one_specwc", "(const unsigned int *,size_t,printf_spec *,size_t *,bool *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__path_search", "(char *,size_t,const char *,const char *,bool)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__path_search", "(char *,size_t,const char *,const char *,bool)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__path_search", "(char *,size_t,const char *,const char *,bool)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__path_search", "(char *,size_t,const char *,const char *,bool)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__pkey_get", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__pmap_getnisport", "(sockaddr_in *,u_long,u_long,u_int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[**1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__posix_getopt", "(int,char *const *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__posix_memalign", "(void **,size_t,size_t)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "__posix_memalign", "(void **,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__posix_memalign", "(void **,size_t,size_t)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "__posix_memalign", "(void **,size_t,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__posix_spawnattr_setflags", "(posix_spawnattr_t *,short)", "", "Argument[1]", "Argument[*0].Field[*__flags]", "value", "dfc-generated"] + - ["", "", True, "__posix_spawnattr_setsigdefault", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__)", "", "Argument[*1]", "Argument[*0].Field[*__sd]", "value", "dfc-generated"] + - ["", "", True, "__posix_spawnattr_setsigdefault", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__)", "", "Argument[1]", "Argument[*0].Field[*__sd]", "taint", "dfc-generated"] + - ["", "", True, "__posix_spawnattr_setsigmask", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__)", "", "Argument[*1]", "Argument[*0].Field[*__ss]", "value", "dfc-generated"] + - ["", "", True, "__posix_spawnattr_setsigmask", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__)", "", "Argument[1]", "Argument[*0].Field[*__ss]", "taint", "dfc-generated"] + - ["", "", True, "__pow_compat", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__powf128", "(_Float128,_Float128)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__powf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__powf_compat", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__powf_fma", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powf_fma", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powf_sse2", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powf_sse2", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__pownf128", "(_Float128,long long)", "", "Argument[0].Field[*w0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__pownf128", "(_Float128,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__pownf128", "(_Float128,long long)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__powr", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powr", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powrf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powrf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__powrf", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powrf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powrl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__powrl", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ppoll_chk", "(pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__prepare_niscall", "(const_nis_name,directory_obj **,dir_binding *,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer", "(__printf_buffer *,const char *,va_list,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer", "(__printf_buffer *,const char *,va_list,unsigned int)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer", "(__printf_buffer *,const char *,va_list,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer", "(__printf_buffer *,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_init", "(__printf_buffer_as_file *,__printf_buffer *)", "", "Argument[1]", "Argument[*0].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**next].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[*stream].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_overflow", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_terminate", "(__printf_buffer_as_file *)", "", "Argument[*0].Field[*stream].Field[**_IO_write_ptr]", "Argument[*0].Field[**next].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_terminate", "(__printf_buffer_as_file *)", "", "Argument[*0].Field[*stream].Field[*_IO_write_ptr]", "Argument[*0].Field[**next].Field[*write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**next].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*stream].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**next].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*stream].Field[**_IO_write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__printf_buffer_pad_1", "(__printf_buffer *,char,size_t)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_pad_1", "(__printf_buffer *,char,size_t)", "", "Argument[2]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_pad_1", "(__printf_buffer *,char,size_t)", "", "Argument[2]", "Argument[*0].Field[*write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_putc_1", "(__printf_buffer *,char)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_puts_1", "(__printf_buffer *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_puts_1", "(__printf_buffer *,const char *)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_snprintf_init", "(__printf_buffer_snprintf *,char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*base].Field[**write_end]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_snprintf_init", "(__printf_buffer_snprintf *,char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*base].Field[*write_end]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_snprintf_init", "(__printf_buffer_snprintf *,char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_to_file_init", "(__printf_buffer_to_file *,FILE *)", "", "Argument[1]", "Argument[*0].Field[*fp]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_write", "(__printf_buffer *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__printf_buffer_write", "(__printf_buffer *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_write", "(__printf_buffer *,const char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_buffer_write", "(__printf_buffer *,const char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__printf_fp_l_buffer", "(__printf_buffer *,locale_t,const printf_info *,const void *const *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__printf_fphex_l_buffer", "(__printf_buffer *,locale_t,const printf_info *,const void *const *)", "", "Argument[**3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__printf_fphex_l_buffer", "(__printf_buffer *,locale_t,const printf_info *,const void *const *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__printf_fphex_l_buffer", "(__printf_buffer *,locale_t,const printf_info *,const void *const *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__printf_fphex_l_buffer", "(__printf_buffer *,locale_t,const printf_info *,const void *const *)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__printf_size", "(FILE *,const printf_info *,const void *const *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pselect", "(int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_copy", "(pthread_attr_t *,const pthread_attr_t *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "__pthread_attr_copy", "(pthread_attr_t *,const pthread_attr_t *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_copy", "(pthread_attr_t *,const pthread_attr_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_getaffinity_new", "(const pthread_attr_t *,size_t,cpu_set_t *)", "", "Argument[*0].Field[**extension].Field[**cpuset]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getaffinity_new", "(const pthread_attr_t *,size_t,cpu_set_t *)", "", "Argument[*0].Field[**extension].Field[*cpuset]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_getaffinity_old", "(const pthread_attr_t *,cpu_set_t *)", "", "Argument[*0].Field[**extension].Field[**cpuset]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getaffinity_old", "(const pthread_attr_t *,cpu_set_t *)", "", "Argument[*0].Field[**extension].Field[*cpuset]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_getguardsize", "(const pthread_attr_t *,size_t *)", "", "Argument[*0].Field[*guardsize]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getschedparam", "(const pthread_attr_t *,sched_param *)", "", "Argument[*0].Field[*schedparam]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getschedpolicy", "(const pthread_attr_t *,int *)", "", "Argument[*0].Field[*schedpolicy]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getsigmask_np", "(const pthread_attr_t *,__sigset_t *,sigset_t *)", "", "Argument[*0].Field[**extension].Field[*sigmask]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getstack", "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__pthread_attr_getstack", "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__pthread_attr_getstack", "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__pthread_attr_getstackaddr", "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__)", "", "Argument[*0].Field[**stackaddr]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getstackaddr", "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__)", "", "Argument[*0].Field[*stackaddr]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_getstacksize", "(const pthread_attr_t *,const pthread_attr_t *__restrict__,size_t *,size_t *__restrict__)", "", "Argument[*0].Field[*stacksize]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_np", "(pthread_attr_t *,size_t,const cpu_set_t *)", "", "Argument[*0].Field[**extension].Field[*cpuset]", "Argument[*0].Field[**extension].Field[**cpuset]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_np", "(pthread_attr_t *,size_t,const cpu_set_t *)", "", "Argument[*2]", "Argument[*0].Field[**extension].Field[**cpuset]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_np", "(pthread_attr_t *,size_t,const cpu_set_t *)", "", "Argument[1]", "Argument[*0].Field[**extension].Field[*cpusetsize]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_np", "(pthread_attr_t *,size_t,const cpu_set_t *)", "", "Argument[2]", "Argument[*0].Field[**extension].Field[**cpuset]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_old", "(pthread_attr_t *,cpu_set_t *)", "", "Argument[*0].Field[**extension].Field[*cpuset]", "Argument[*0].Field[**extension].Field[**cpuset]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_old", "(pthread_attr_t *,cpu_set_t *)", "", "Argument[*1]", "Argument[*0].Field[**extension].Field[**cpuset]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setaffinity_old", "(pthread_attr_t *,cpu_set_t *)", "", "Argument[1]", "Argument[*0].Field[**extension].Field[**cpuset]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setguardsize", "(pthread_attr_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*guardsize]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setschedparam", "(pthread_attr_t *,const sched_param *)", "", "Argument[*1]", "Argument[*0].Field[*schedparam]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setschedparam", "(pthread_attr_t *,const sched_param *)", "", "Argument[1]", "Argument[*0].Field[*schedparam]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setschedpolicy", "(pthread_attr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*schedpolicy]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setsigmask_internal", "(pthread_attr_t *,const sigset_t *)", "", "Argument[*1]", "Argument[*0].Field[**extension].Field[*sigmask]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setsigmask_internal", "(pthread_attr_t *,const sigset_t *)", "", "Argument[1]", "Argument[*0].Field[**extension].Field[*sigmask]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setsigmask_internal", "(pthread_attr_t *,const sigset_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstack", "(pthread_attr_t *,void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**stackaddr]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstack", "(pthread_attr_t *,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**stackaddr]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstack", "(pthread_attr_t *,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*stackaddr]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstack", "(pthread_attr_t *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[**stackaddr]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstack", "(pthread_attr_t *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*stackaddr]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstack", "(pthread_attr_t *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*stacksize]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstackaddr", "(pthread_attr_t *,void *)", "", "Argument[**1]", "Argument[*0].Field[***stackaddr]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstackaddr", "(pthread_attr_t *,void *)", "", "Argument[*1]", "Argument[*0].Field[**stackaddr]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstackaddr", "(pthread_attr_t *,void *)", "", "Argument[1]", "Argument[*0].Field[*stackaddr]", "value", "dfc-generated"] + - ["", "", True, "__pthread_attr_setstacksize", "(pthread_attr_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*stacksize]", "value", "dfc-generated"] + - ["", "", True, "__pthread_barrierattr_getpshared", "(const pthread_barrierattr_t *,int *)", "", "Argument[*0].Field[*pshared]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_barrierattr_setpshared", "(pthread_barrierattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*pshared]", "value", "dfc-generated"] + - ["", "", True, "__pthread_cleanup_push", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***__arg]", "value", "dfc-generated"] + - ["", "", True, "__pthread_cleanup_push", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**__arg]", "value", "dfc-generated"] + - ["", "", True, "__pthread_cleanup_push", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*__routine]", "value", "dfc-generated"] + - ["", "", True, "__pthread_cleanup_push", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*__arg]", "value", "dfc-generated"] + - ["", "", True, "__pthread_condattr_getclock", "(const pthread_condattr_t *,clockid_t *)", "", "Argument[*0].Field[*value]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutex_getprioceiling", "(const pthread_mutex_t *,int *)", "", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__lock]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutex_setprioceiling", "(pthread_mutex_t *,int,int *)", "", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__lock]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutex_setprioceiling", "(pthread_mutex_t *,int,int *)", "", "Argument[1]", "Argument[*0].Union[*(unnamed class/struct/union)].Field[*__lock]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutexattr_getprioceiling", "(const pthread_mutexattr_t *,int *)", "", "Argument[*0].Field[*mutexkind]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutexattr_getprotocol", "(const pthread_mutexattr_t *,int *)", "", "Argument[*0].Field[*mutexkind]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutexattr_gettype", "(const pthread_mutexattr_t *,int *)", "", "Argument[*0].Field[*mutexkind]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutexattr_setprioceiling", "(pthread_mutexattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*mutexkind]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_mutexattr_setprotocol", "(pthread_mutexattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*mutexkind]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_rwlockattr_getkind_np", "(const pthread_rwlockattr_t *,int *)", "", "Argument[*0].Field[*lockkind]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_rwlockattr_getpshared", "(const pthread_rwlockattr_t *,int *)", "", "Argument[*0].Field[*pshared]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__pthread_rwlockattr_setkind_np", "(pthread_rwlockattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*lockkind]", "value", "dfc-generated"] + - ["", "", True, "__pthread_rwlockattr_setpshared", "(pthread_rwlockattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*pshared]", "value", "dfc-generated"] + - ["", "", True, "__pthread_setattr_default_np", "(const pthread_attr_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_setschedparam", "(pthread_t,int,const sched_param *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__pthread_sigmask", "(int,const sigset_t *,sigset_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__putc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__putlong", "(uint32_t,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__putshort", "(uint16_t,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__pututline", "(const utmp *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__pututline", "(const utmp *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__qecvt", "(long double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__qecvt", "(long double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__qecvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__qecvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__qecvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__qecvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__qfcvt", "(long double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__qfcvt", "(long double,int,int *,int *__restrict__,int *,int *__restrict__)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__qfcvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__qfcvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__qfcvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__qfcvt_r", "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__qgcvt", "(long double,int,char *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__qgcvt", "(long double,int,char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__qgcvt", "(long double,int,char *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__qgcvt", "(long double,int,char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__qgcvt", "(long double,int,char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__qsort_r", "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__random_r", "(random_data *,int32_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__re_match", "(re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *)", "", "Argument[*0].Field[*re_nsub]", "Argument[*4].Field[*num_regs]", "taint", "dfc-generated"] + - ["", "", True, "__re_match", "(re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__re_match_2", "(re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t)", "", "Argument[*0].Field[*re_nsub]", "Argument[*6].Field[*num_regs]", "taint", "dfc-generated"] + - ["", "", True, "__re_match_2", "(re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__re_search", "(re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *)", "", "Argument[*0].Field[*re_nsub]", "Argument[*5].Field[*num_regs]", "taint", "dfc-generated"] + - ["", "", True, "__re_search", "(re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__re_search_2", "(re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t)", "", "Argument[*0].Field[*re_nsub]", "Argument[*7].Field[*num_regs]", "taint", "dfc-generated"] + - ["", "", True, "__re_search_2", "(re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[*1].Field[**end]", "Argument[*1].Field[**start]", "value", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[*1].Field[*end]", "Argument[*1].Field[*start]", "value", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[*3]", "Argument[*1].Field[**start]", "value", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[*4]", "Argument[*1].Field[**end]", "value", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[2]", "Argument[*1].Field[*num_regs]", "value", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[3]", "Argument[*1].Field[*start]", "value", "dfc-generated"] + - ["", "", True, "__re_set_registers", "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)", "", "Argument[4]", "Argument[*1].Field[*end]", "value", "dfc-generated"] + - ["", "", True, "__readall", "(int,void *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__readall", "(int,void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__readdir64", "(DIR *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__readdir64", "(DIR *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__readdir64_r", "(DIR *,dirent64 *,dirent64 **)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__realpath", "(const char *,char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__realpath_chk", "(const char *,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[*0].Field[*re_nsub]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*3].Field[*rm_eo]", "taint", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*3].Field[*rm_so]", "taint", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[1]", "Argument[*3].Field[*rm_eo]", "taint", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[1]", "Argument[*3].Field[*rm_so]", "taint", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__regexec", "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__remainder", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__remainder", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remainderf128", "(_Float128,_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__remainderf128", "(_Float128,_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remainderf128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remainderf128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remainderf", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remainderf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__remainderf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remainderl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__remquo", "(double,double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquo", "(double,double,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquof128", "(_Float128,_Float128,int *)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquof128", "(_Float128,_Float128,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquof128", "(_Float128,_Float128,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquof", "(float,float,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquof", "(float,float,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquol", "(long double,long double,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__remquol", "(long double,long double,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__res_context_hostalias", "(resolv_context *,const char *,char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__res_context_mkquery", "(resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int)", "", "Argument[6]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__res_context_query", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_query", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__res_context_query", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_query", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_query", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[9]", "Argument[*9]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[**6]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[*4]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[10]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[4]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_search", "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[9]", "Argument[*9]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_send", "(resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[10]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_send", "(resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "__res_context_send", "(resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "__res_get_nsaddr", "(res_state,unsigned int)", "", "Argument[*0].Field[*nsaddr_list]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__res_get_nsaddr", "(res_state,unsigned int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__res_get_nsaddr", "(res_state,unsigned int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__res_handle_no_aaaa", "(resolv_context *,const unsigned char *,int,unsigned char *,int,int *)", "", "Argument[*1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "__res_handle_no_aaaa", "(resolv_context *,const unsigned char *,int,unsigned char *,int,int *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__res_handle_no_aaaa", "(resolv_context *,const unsigned char *,int,unsigned char *,int,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__res_handle_no_aaaa", "(resolv_context *,const unsigned char *,int,unsigned char *,int,int *)", "", "Argument[3]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__res_hostalias", "(const res_state,res_state,const char *,char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__res_nopt", "(resolv_context *,int,unsigned char *,int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__res_nopt", "(resolv_context *,int,unsigned char *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__resolv_conf_allocate", "(const resolv_conf *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__resolv_conf_attach", "(__res_state *,resolv_conf *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__resolv_conf_load", "(__res_state *,file_change_detection *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__resolv_context_get_override", "(__res_state *)", "", "Argument[*0]", "ReturnValue[*].Field[**resp]", "value", "dfc-generated"] + - ["", "", True, "__resolv_context_get_override", "(__res_state *)", "", "Argument[0]", "ReturnValue[*].Field[*resp]", "value", "dfc-generated"] + - ["", "", True, "__rint_c", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__rintf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__rintf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__rintf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__rintf_c", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__rootn", "(double,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__rootnf128", "(_Float128,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__rootnf", "(float,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__rootnl", "(long double,long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__round", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__roundeven_c", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__roundevenf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__roundevenf_c", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__roundevenl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__roundf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__roundf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__roundl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__rtld_malloc_init_real", "(link_map *)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "__run_exit_handlers", "(int,exit_function_list **,bool,bool)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sbrk", "(intptr_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__scalb", "(double,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalb", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__scalbf", "(float,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalbf", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__scalbl", "(long double,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalbln", "(double,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalbln", "(double,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__scalblnf128", "(_Float128,long)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__scalblnf128", "(_Float128,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalblnf128", "(_Float128,long)", "", "Argument[1]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__scalblnf", "(float,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalblnf", "(float,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__scalblnl", "(long double,long)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue.Field[*sign_exponent]", "taint", "dfc-generated"] + - ["", "", True, "__scalblnl", "(long double,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalblnl", "(long double,long)", "", "Argument[1]", "ReturnValue.Field[*sign_exponent]", "taint", "dfc-generated"] + - ["", "", True, "__scalbn", "(double,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalbn", "(double,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__scalbnf128", "(_Float128,int)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__scalbnf128", "(_Float128,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalbnf128", "(_Float128,int)", "", "Argument[1]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__scalbnf", "(float,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__scalbnf", "(float,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__scandir64_tail", "(DIR *,dirent64 ***,..(*)(..),..(*)(..))", "", "Argument[*0]", "Argument[***1]", "taint", "df-generated"] + - ["", "", True, "__seed48_r", "(unsigned short[3],drand48_data *)", "", "Argument[*0]", "Argument[*1].Field[*__x]", "value", "dfc-generated"] + - ["", "", True, "__seed48_r", "(unsigned short[3],drand48_data *)", "", "Argument[*1].Field[**__x]", "Argument[*1].Field[*__old_x]", "value", "dfc-generated"] + - ["", "", True, "__seed48_r", "(unsigned short[3],drand48_data *)", "", "Argument[*1].Field[*__x]", "Argument[*1].Field[*__old_x]", "value", "dfc-generated"] + - ["", "", True, "__seed48_r", "(unsigned short[3],drand48_data *)", "", "Argument[0]", "Argument[*1].Field[*__x]", "taint", "dfc-generated"] + - ["", "", True, "__sem_check_add_mapping", "(const char *,int,sem_t *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__sem_check_add_mapping", "(const char *,int,sem_t *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__setpayload", "(double *,double)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadf128", "(_Float128 *,_Float128)", "", "Argument[1].Field[*lsw]", "Argument[*0].Field[*lsw]", "value", "dfc-generated"] + - ["", "", True, "__setpayloadf128", "(_Float128 *,_Float128)", "", "Argument[1].Field[*msw]", "Argument[*0].Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadf128", "(_Float128 *,_Float128)", "", "Argument[1].Field[*msw]", "Argument[*0].Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadf", "(float *,float)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadl", "(long double *,long double)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__setpayloadsig", "(double *,double)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadsigf128", "(_Float128 *,_Float128)", "", "Argument[1].Field[*lsw]", "Argument[*0].Field[*lsw]", "value", "dfc-generated"] + - ["", "", True, "__setpayloadsigf128", "(_Float128 *,_Float128)", "", "Argument[1].Field[*msw]", "Argument[*0].Field[*lsw]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadsigf128", "(_Float128 *,_Float128)", "", "Argument[1].Field[*msw]", "Argument[*0].Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadsigf", "(float *,float)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__setpayloadsigl", "(long double *,long double)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__setstate_r", "(char *,random_data *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__setstate_r", "(char *,random_data *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__settimeofday", "(const timeval *,const timezone *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__sgetsgent_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__sgetsgent_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__sgetsgent_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sgetsgent_r", "(const char *,sgrp *,char *,size_t,sgrp **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__sgetspent_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "__sgetspent_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "__sgetspent_r", "(const char *,spwd *,char *,size_t,spwd **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__sigaddset_compat", "(__sigset_t *,int)", "", "Argument[1]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "__sigdelset_compat", "(__sigset_t *,int)", "", "Argument[1]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "__sigdescr_np", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__significand", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__significandf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sigprocmask", "(int,const sigset_t *,sigset_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sin_avx", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sin_fma4", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sin_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sin_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sincos_avx", "(double,double *,double *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__sincos_avx", "(double,double *,double *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_avx", "(double,double *,double *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_avx", "(double,double *,double *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_avx", "(double,double *,double *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_avx", "(double,double *,double *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_fma4", "(double,double *,double *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__sincos_fma4", "(double,double *,double *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_fma4", "(double,double *,double *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_fma4", "(double,double *,double *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_fma4", "(double,double *,double *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_fma4", "(double,double *,double *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_fma", "(double,double *,double *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__sincos_fma", "(double,double *,double *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_fma", "(double,double *,double *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_fma", "(double,double *,double *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_fma", "(double,double *,double *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_fma", "(double,double *,double *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_sse2", "(double,double *,double *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__sincos_sse2", "(double,double *,double *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_sse2", "(double,double *,double *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincos_sse2", "(double,double *,double *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_sse2", "(double,double *,double *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincos_sse2", "(double,double *,double *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf128", "(_Float128,_Float128 *,_Float128 *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincosf128", "(_Float128,_Float128 *,_Float128 *)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__sincosf128", "(_Float128,_Float128 *,_Float128 *)", "", "Argument[0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__sincosf128", "(_Float128,_Float128 *,_Float128 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf128", "(_Float128,_Float128 *,_Float128 *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf128", "(_Float128,_Float128 *,_Float128 *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf_fma", "(float,float *,float *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__sincosf_fma", "(float,float *,float *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincosf_fma", "(float,float *,float *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincosf_fma", "(float,float *,float *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf_fma", "(float,float *,float *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf_fma", "(float,float *,float *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf_sse2", "(float,float *,float *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "__sincosf_sse2", "(float,float *,float *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincosf_sse2", "(float,float *,float *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincosf_sse2", "(float,float *,float *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf_sse2", "(float,float *,float *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincosf_sse2", "(float,float *,float *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sincosl", "(long double,long double *,long double *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__sincosl", "(long double,long double *,long double *)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__sincosl", "(long double,long double *,long double *)", "", "Argument[0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__sincosl", "(long double,long double *,long double *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__sincosl", "(long double,long double *,long double *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__sinf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sinf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sinf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinf_fma", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinf_sse2", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinh", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinhf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinhf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sinhf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinhl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sinl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__sinpi", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sinpif128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sinpif", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sinpil", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sleep", "(unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sockaddr_un_set", "(sockaddr_un *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*sun_path]", "value", "dfc-generated"] + - ["", "", True, "__sockaddr_un_set", "(sockaddr_un *,const char *)", "", "Argument[1]", "Argument[*0].Field[*sun_path]", "taint", "dfc-generated"] + - ["", "", True, "__sprofil", "(prof *,int,timeval *,unsigned int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__sprofil", "(prof *,int,timeval *,unsigned int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__sqrt", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sqrtf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__sqrtf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sqrtl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__srand48_r", "(long,drand48_data *)", "", "Argument[0]", "Argument[*1].Field[*__x]", "taint", "dfc-generated"] + - ["", "", True, "__srandom_r", "(unsigned int,random_data *)", "", "Argument[0]", "Argument[*1].Field[**fptr]", "value", "dfc-generated"] + - ["", "", True, "__srandom_r", "(unsigned int,random_data *)", "", "Argument[0]", "Argument[*1].Field[**rptr]", "value", "dfc-generated"] + - ["", "", True, "__statvfs64", "(const char *,statvfs64 *)", "", "Argument[*1].Field[*f_ffree]", "Argument[*1].Field[*f_favail]", "value", "dfc-generated"] + - ["", "", True, "__strcasecmp_l_nonascii", "(const char *,const char *,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasecmp_l_nonascii", "(const char *,const char *,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasecmp_l_nonascii", "(const char *,const char *,locale_t)", "", "Argument[*2].Field[**__ctype_tolower]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasecmp_l_nonascii", "(const char *,const char *,locale_t)", "", "Argument[*2].Field[*__ctype_tolower]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasecmp_l_nonascii", "(const char *,const char *,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasecmp_l_nonascii", "(const char *,const char *,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasestr", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcasestr", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strcasestr", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__strcasestr", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strcoll_l", "(const char *,const char *,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcoll_l", "(const char *,const char *,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcoll_l", "(const char *,const char *,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcoll_l", "(const char *,const char *,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcspn_generic", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strcspn_sse42", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strdup", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strdup", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strerror_r", "(int,char *,size_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__strerror_r", "(int,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__strerror_r", "(int,char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strerror_r", "(int,char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__strerror_r", "(int,char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strerrordesc_np", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strfmon", "(char *,size_t,const char *,...)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strfmon", "(char *,size_t,const char *,...)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strfmon", "(char *,size_t,const char *,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strftime_l", "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__strftime_l", "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strftime_l", "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strftime_l", "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strftime_l", "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strftime_l", "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__strlcat", "(char *__restrict__,const char *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__strlcat", "(char *__restrict__,const char *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strlcat_chk", "(char *__restrict__,const char *__restrict__,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__strlcat_chk", "(char *__restrict__,const char *__restrict__,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strlcpy", "(char *__restrict__,const char *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__strlcpy", "(char *__restrict__,const char *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strlcpy_chk", "(char *__restrict__,const char *__restrict__,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__strlcpy_chk", "(char *__restrict__,const char *__restrict__,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strncasecmp_l_nonascii", "(const char *,const char *,size_t,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strncasecmp_l_nonascii", "(const char *,const char *,size_t,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strncasecmp_l_nonascii", "(const char *,const char *,size_t,locale_t)", "", "Argument[*3].Field[**__ctype_tolower]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strncasecmp_l_nonascii", "(const char *,const char *,size_t,locale_t)", "", "Argument[*3].Field[*__ctype_tolower]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strncasecmp_l_nonascii", "(const char *,const char *,size_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strncasecmp_l_nonascii", "(const char *,const char *,size_t,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strndup", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strndup", "(const char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_generic", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strpbrk_sse42", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strptime_internal", "(const char *,const char *,tm *,void *,locale_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__strptime_internal", "(const char *,const char *,tm *,void *,locale_t)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__strptime_internal", "(const char *,const char *,tm *,void *,locale_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__strptime_internal", "(const char *,const char *,tm *,void *,locale_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__strptime_l", "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__strptime_l", "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__strptime_l", "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[**0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[*1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__strsep", "(char **,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strspn_generic", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strspn_sse42", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strstr_generic", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__strtod_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__strtod_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtod_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__strtod_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__strtod_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtod_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__strtod_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtod_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtod_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__strtod_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__strtod_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtod_nan", "(const char *,char **,char)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtod_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtod_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtof128_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__strtof128_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtof128_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__strtof128_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__strtof128_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtof128_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__strtof128_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtof128_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtof128_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__strtof128_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__strtof128_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtof128_nan", "(const char *,char **,char)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtof128_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtof128_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtof_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtof_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__strtof_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "__strtof_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__strtof_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtof_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__strtof_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "__strtof_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__strtof_nan", "(const char *,char **,char)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtof_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtof_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[**2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[**2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[**2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*1]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[1]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__strtok_r", "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "__strtol", "(const char *,char **,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtol", "(const char *,char **,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol", "(const char *,char **,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtol", "(const char *,char **,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtol", "(const char *,char **,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol", "(const char *,char **,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtol_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtol_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtol_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtol_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtold_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtold_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtold_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtold_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtold_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtold_l", "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtold_nan", "(const char *,char **,char)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtold_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtold_nan", "(const char *,char **,char)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul", "(const char *,char **,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul", "(const char *,char **,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul", "(const char *,char **,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtoul", "(const char *,char **,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul", "(const char *,char **,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul", "(const char *,char **,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_internal", "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strtoul_l", "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strverscmp", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strverscmp", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strverscmp", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strverscmp", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strxfrm_l", "(char *,const char *,size_t,locale_t)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strxfrm_l", "(char *,const char *,size_t,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__strxfrm_l", "(char *,const char *,size_t,locale_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__strxfrm_l", "(char *,const char *,size_t,locale_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__strxfrm_l", "(char *,const char *,size_t,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__sym_ntop", "(const res_sym *,int,int *)", "", "Argument[*0].Field[**humanname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__sym_ntop", "(const res_sym *,int,int *)", "", "Argument[*0].Field[*humanname]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sym_ntop", "(const res_sym *,int,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__sym_ntop", "(const res_sym *,int,int *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__sym_ntos", "(const res_sym *,int,int *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__sym_ntos", "(const res_sym *,int,int *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sym_ntos", "(const res_sym *,int,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__sym_ntos", "(const res_sym *,int,int *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__sym_ston", "(const res_sym *,const char *,int *)", "", "Argument[*0].Field[*number]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__sym_ston", "(const res_sym *,const char *,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__tan_avx", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tan_fma4", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tan_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tan_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanf128", "(_Float128)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tanf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tanf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanf", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tanh_fma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanh_sse2", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanhf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanhf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanhl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tanl", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__tanpi", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tanpif128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tanpif", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tanpil", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__td_ta_lookup_th_unique", "(const td_thragent_t *,lwpid_t,td_thrhandle_t *)", "", "Argument[0]", "Argument[*2].Field[*th_ta_p]", "value", "dfc-generated"] + - ["", "", True, "__td_ta_stack_used", "(td_thragent_t *,psaddr_t *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__td_ta_stack_used", "(td_thragent_t *,psaddr_t *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__td_ta_stack_used", "(td_thragent_t *,psaddr_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__td_ta_stack_user", "(td_thragent_t *,psaddr_t *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__td_ta_stack_user", "(td_thragent_t *,psaddr_t *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__td_ta_stack_user", "(td_thragent_t *,psaddr_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__tdelete", "(const void *,void **,__compar_fn_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tdelete", "(const void *,void **,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__textdomain", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__textdomain", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__tfind", "(const void *,void *const *,__compar_fn_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tfind", "(const void *,void *const *,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tgamma", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tgamma", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tgammaf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__tgammaf", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tgammal", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tgammal", "(long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__timespec_get", "(timespec *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__timespec_getres", "(timespec *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tls_get_addr_slow", "(tls_index *)", "", "Argument[*0].Field[*ti_offset]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tolower_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_tolower]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tolower_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_tolower]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tolower_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__toupper_l", "(int,locale_t)", "", "Argument[*1].Field[**__ctype_toupper]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__toupper_l", "(int,locale_t)", "", "Argument[*1].Field[*__ctype_toupper]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__toupper_l", "(int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__towctrans", "(wint_t,wctrans_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__towctrans", "(wint_t,wctrans_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__towctrans", "(wint_t,wctrans_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__towctrans_l", "(wint_t,wctrans_t,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__towctrans_l", "(wint_t,wctrans_t,locale_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__towctrans_l", "(wint_t,wctrans_t,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__towlower", "(wint_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__towlower_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__towupper", "(wint_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__towupper_l", "(wint_t,locale_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__translated_number_width", "(locale_t,const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__translated_number_width", "(locale_t,const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__translated_number_width", "(locale_t,const char *,const char *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__trunc_c", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__truncf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__truncf_c", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tsearch", "(const void *,void **,__compar_fn_t)", "", "Argument[**0]", "ReturnValue[*].Field[***key]", "value", "dfc-generated"] + - ["", "", True, "__tsearch", "(const void *,void **,__compar_fn_t)", "", "Argument[*0]", "ReturnValue[*].Field[**key]", "value", "dfc-generated"] + - ["", "", True, "__tsearch", "(const void *,void **,__compar_fn_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__tsearch", "(const void *,void **,__compar_fn_t)", "", "Argument[0]", "ReturnValue[*].Field[*key]", "value", "dfc-generated"] + - ["", "", True, "__tsearch", "(const void *,void **,__compar_fn_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__tsearch", "(const void *,void **,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ttyname_r", "(int,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__ttyname_r_chk", "(int,char *,size_t,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__tunable_get_default", "(tunable_id_t,void *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__tunable_get_val", "(tunable_id_t,void *,tunable_callback_t)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "__tunable_is_initialized", "(tunable_id_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__tunables_init", "(char **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__tunables_init", "(char **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "__tunables_init", "(char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__twalk_r", "(const void *,..(*)(..),void *)", "", "Argument[*0].Field[*left_node]", "Argument[*2].Field[*rec]", "taint", "dfc-generated"] + - ["", "", True, "__twalk_r", "(const void *,..(*)(..),void *)", "", "Argument[*0].Field[*right_node]", "Argument[*2].Field[*rec]", "taint", "dfc-generated"] + - ["", "", True, "__twalk_r", "(const void *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2].Field[*rec]", "value", "dfc-generated"] + - ["", "", True, "__twalk_r", "(const void *,..(*)(..),void *)", "", "Argument[0]", "Argument[*2].Field[*rec]", "taint", "dfc-generated"] + - ["", "", True, "__tz_convert", "(time_t,int,tm *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__tz_convert", "(time_t,int,tm *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__tzfile_compute", "(time_t,int,long *,int *,tm *)", "", "Argument[*4].Field[*tm_isdst]", "Argument[*4].Field[*tm_zone]", "taint", "dfc-generated"] + - ["", "", True, "__tzfile_compute", "(time_t,int,long *,int *,tm *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__tzset_parse_tz", "(const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__tzstring", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__tzstring", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__uflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__ufromfp", "(double,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfp", "(double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpf128", "(_Float128,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpf", "(float,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpf", "(float,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpl", "(long double,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpl", "(long double,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpl", "(long double,int,unsigned int)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpl", "(long double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpx", "(double,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpx", "(double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxf128", "(_Float128,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxf128", "(_Float128,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxf", "(float,int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxf", "(float,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxl", "(long double,int,unsigned int)", "", "Argument[0].Field[*lsw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxl", "(long double,int,unsigned int)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxl", "(long double,int,unsigned int)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ufromfpxl", "(long double,int,unsigned int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__underflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__utimensat", "(int,const char *,const timespec[2],int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vasprintf", "(char **,const char *,va_list)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vasprintf", "(char **,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vasprintf_chk", "(char **,int,const char *,__gnuc_va_list,va_list)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vasprintf_chk", "(char **,int,const char *,__gnuc_va_list,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vasprintf_internal", "(char **,const char *,va_list,unsigned int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vasprintf_internal", "(char **,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vdprintf", "(int,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vdprintf_chk", "(int,int,const char *,__gnuc_va_list,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vdprintf_internal", "(int,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__versionsort64", "(const dirent64 **,const dirent64 **)", "", "Argument[**0].Field[*d_name]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__versionsort64", "(const dirent64 **,const dirent64 **)", "", "Argument[**1].Field[*d_name]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__versionsort64", "(const dirent64 **,const dirent64 **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__versionsort64", "(const dirent64 **,const dirent64 **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vfprintf", "(FILE *,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfprintf_internal", "(FILE *,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfscanf_internal", "(FILE *,const char *,va_list,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vfscanf_internal", "(FILE *,const char *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfwprintf", "(FILE *,const wchar_t *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfwprintf_chk", "(FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vfwprintf_internal", "(FILE *,const wchar_t *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfwscanf", "(FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfwscanf_internal", "(FILE *,const wchar_t *,va_list,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vfwscanf_internal", "(FILE *,const wchar_t *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vfxprintf", "(FILE *,const char *,__gnuc_va_list,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vprintf", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vsnprintf_internal", "(char *,size_t,const char *,va_list,unsigned int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vsnprintf_internal", "(char *,size_t,const char *,va_list,unsigned int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vsnprintf_internal", "(char *,size_t,const char *,va_list,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vsprintf", "(char *,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vsprintf_internal", "(char *,size_t,const char *,va_list,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vstrfmon_l_internal", "(char *,size_t,locale_t,const char *,va_list,unsigned int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vstrfmon_l_internal", "(char *,size_t,locale_t,const char *,va_list,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__vstrfmon_l_internal", "(char *,size_t,locale_t,const char *,va_list,unsigned int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__vstrfmon_l_internal", "(char *,size_t,locale_t,const char *,va_list,unsigned int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__vswprintf", "(wchar_t *,size_t,const wchar_t *,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vswprintf_chk", "(wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "__vswprintf_internal", "(wchar_t *,size_t,const wchar_t *,va_list,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vswscanf", "(const wchar_t *,const wchar_t *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vsyslog", "(int,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vsyslog_chk", "(int,int,const char *,__gnuc_va_list,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__vsyslog_internal", "(int,const char *,__gnuc_va_list,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vwarn_internal", "(const char *,__gnuc_va_list,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vwarnx_internal", "(const char *,__gnuc_va_list,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vwprintf", "(const wchar_t *,__gnuc_va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__vwprintf_chk", "(int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__vwscanf", "(const wchar_t *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__w_log1pf128", "(_Float128)", "", "Argument[0].Field[*msw]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__w_log1pf128", "(_Float128)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__w_scalbln", "(double,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__w_scalbln", "(double,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__w_scalblnf128", "(_Float128,long)", "", "Argument[0].Field[*msw]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__w_scalblnf128", "(_Float128,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__w_scalblnf128", "(_Float128,long)", "", "Argument[1]", "ReturnValue.Field[*msw]", "taint", "dfc-generated"] + - ["", "", True, "__w_scalblnf", "(float,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__w_scalblnf", "(float,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__w_scalblnl", "(long double,long)", "", "Argument[0].Field[*sign_exponent]", "ReturnValue.Field[*sign_exponent]", "taint", "dfc-generated"] + - ["", "", True, "__w_scalblnl", "(long double,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__w_scalblnl", "(long double,long)", "", "Argument[1]", "ReturnValue.Field[*sign_exponent]", "taint", "dfc-generated"] + - ["", "", True, "__wcpcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcpcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcpcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcpcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcpcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcpcpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcpcpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcpcpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcpcpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcpcpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcpncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcscasecmp_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscasecmp_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscasecmp_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscasecmp_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcscat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcscat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcscat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcschrnul", "(const wchar_t *,const wchar_t,wchar_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcschrnul", "(const wchar_t *,const wchar_t,wchar_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcschrnul", "(const wchar_t *,const wchar_t,wchar_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll", "(const wchar_t *,const wchar_t *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll", "(const wchar_t *,const wchar_t *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll", "(const wchar_t *,const wchar_t *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll", "(const wchar_t *,const wchar_t *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscoll_l", "(const wchar_t *,const wchar_t *,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcscpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcscpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcscpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcscpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcscpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcscpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcscpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsftime_l", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__wcslcat", "(wchar_t *__restrict__,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcslcat", "(wchar_t *__restrict__,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcslcat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcslcat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcslcpy", "(wchar_t *__restrict__,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcslcpy", "(wchar_t *__restrict__,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcslcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcslcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsmbs_getfct", "(const char *,const char *,size_t *)", "", "Argument[*0]", "ReturnValue[*].Field[**__to_name]", "value", "dfc-generated"] + - ["", "", True, "__wcsmbs_getfct", "(const char *,const char *,size_t *)", "", "Argument[*1]", "ReturnValue[*].Field[**__from_name]", "value", "dfc-generated"] + - ["", "", True, "__wcsmbs_getfct", "(const char *,const char *,size_t *)", "", "Argument[*1]", "ReturnValue[*].Field[**__to_name]", "value", "dfc-generated"] + - ["", "", True, "__wcsmbs_getfct", "(const char *,const char *,size_t *)", "", "Argument[0]", "ReturnValue[*].Field[**__to_name]", "taint", "dfc-generated"] + - ["", "", True, "__wcsmbs_named_conv", "(gconv_fcts *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**tomb].Field[**__to_name]", "value", "dfc-generated"] + - ["", "", True, "__wcsmbs_named_conv", "(gconv_fcts *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**towc].Field[**__from_name]", "value", "dfc-generated"] + - ["", "", True, "__wcsmbs_named_conv", "(gconv_fcts *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**towc].Field[**__to_name]", "value", "dfc-generated"] + - ["", "", True, "__wcsncasecmp_l", "(const wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsncasecmp_l", "(const wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsncasecmp_l", "(const wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsncasecmp_l", "(const wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsncat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcsncat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcsncat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsncat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsncat_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsncat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcsncat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcsncat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsncat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsncat_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wcsncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wcsncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsncpy_generic", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wcsnlen_generic", "(const wchar_t *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsnlen_generic", "(const wchar_t *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsnrtombs", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsnrtombs", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__wcsnrtombs_chk", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsnrtombs_chk", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__wcsrtombs", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsrtombs", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__wcsrtombs_chk", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcsrtombs_chk", "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstod_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__wcstod_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstod_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__wcstod_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__wcstod_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstod_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__wcstod_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstod_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__wcstod_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__wcstod_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstod_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstod_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstod_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstof128_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__wcstof128_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstof128_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__wcstof128_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__wcstof128_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstof128_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "__wcstof128_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstof128_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "__wcstof128_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__wcstof128_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wcstof128_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstof128_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstof128_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstof_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstof_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__wcstof_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "__wcstof_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__wcstof_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstof_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "__wcstof_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "__wcstof_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "__wcstof_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstof_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstof_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol", "(const wchar_t *,wchar_t **,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol", "(const wchar_t *,wchar_t **,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol", "(const wchar_t *,wchar_t **,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstol", "(const wchar_t *,wchar_t **,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol", "(const wchar_t *,wchar_t **,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol", "(const wchar_t *,wchar_t **,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstol_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstold_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstold_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstold_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstold_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstold_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstold_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstold_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstold_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstold_nan", "(const wchar_t *,wchar_t **,wchar_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstombs_chk", "(char *,const wchar_t *,size_t,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wcstoul", "(const wchar_t *,wchar_t **,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstoul", "(const wchar_t *,wchar_t **,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul", "(const wchar_t *,wchar_t **,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul", "(const wchar_t *,wchar_t **,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstoul", "(const wchar_t *,wchar_t **,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul", "(const wchar_t *,wchar_t **,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstoul_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstoul_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_internal", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "__wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "__wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcstoul_l", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsxfrm_l", "(wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsxfrm_l", "(wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wcsxfrm_l", "(wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wcsxfrm_l", "(wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__wcsxfrm_l", "(wchar_t *,const wchar_t *,size_t,locale_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__wmemcpy", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wmemcpy", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wmemcpy", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wmemcpy", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wmemcpy", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wmemcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wmemcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wmemcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wmemcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wmemcpy_chk", "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wmemmove", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wmemmove", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wmemmove", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wmemmove", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wmemmove", "(wchar_t *,const wchar_t *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wmemmove_chk", "(wchar_t *,const wchar_t *,size_t,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "__wmemmove_chk", "(wchar_t *,const wchar_t *,size_t,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__wmemmove_chk", "(wchar_t *,const wchar_t *,size_t,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wmemmove_chk", "(wchar_t *,const wchar_t *,size_t,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "__wmemmove_chk", "(wchar_t *,const wchar_t *,size_t,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer", "(__wprintf_buffer *,const wchar_t *,va_list,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer", "(__wprintf_buffer *,const wchar_t *,va_list,unsigned int)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer", "(__wprintf_buffer *,const wchar_t *,va_list,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer", "(__wprintf_buffer *,const wchar_t *,va_list,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_init", "(__wprintf_buffer_as_file *,__wprintf_buffer *)", "", "Argument[1]", "Argument[*0].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[**next].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_overflow", "(FILE *,int)", "", "Argument[1]", "Argument[*0].Field[*wide_stream].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_overflow", "(FILE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_terminate", "(__wprintf_buffer_as_file *)", "", "Argument[*0].Field[*wide_stream].Field[**_IO_write_ptr]", "Argument[*0].Field[**next].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_terminate", "(__wprintf_buffer_as_file *)", "", "Argument[*0].Field[*wide_stream].Field[*_IO_write_ptr]", "Argument[*0].Field[**next].Field[*write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**next].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*wide_stream].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**next].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*wide_stream].Field[**_IO_write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_as_file_xsputn", "(FILE *,const void *,size_t)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__wprintf_buffer_pad_1", "(__wprintf_buffer *,wchar_t,size_t)", "", "Argument[2]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_pad_1", "(__wprintf_buffer *,wchar_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_putc_1", "(__wprintf_buffer *,wchar_t)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_puts_1", "(__wprintf_buffer *,const wchar_t *)", "", "Argument[*1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_puts_1", "(__wprintf_buffer *,const wchar_t *)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_to_file_init", "(__wprintf_buffer_to_file *,FILE *)", "", "Argument[*1]", "Argument[*0].Field[**fp]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_to_file_init", "(__wprintf_buffer_to_file *,FILE *)", "", "Argument[1]", "Argument[*0].Field[*fp]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_write", "(__wprintf_buffer *,const wchar_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**write_ptr]", "value", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_write", "(__wprintf_buffer *,const wchar_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_write", "(__wprintf_buffer *,const wchar_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[**write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wprintf_buffer_write", "(__wprintf_buffer *,const wchar_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*write_ptr]", "taint", "dfc-generated"] + - ["", "", True, "__wuflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__wunderflow", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__x2y2m1", "(double,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1", "(double,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1f128", "(_Float128,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1f128", "(_Float128,_Float128)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1f", "(float,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1f", "(float,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1l", "(long double,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x2y2m1l", "(long double,long double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x86_get_cpuid_feature_leaf", "(unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__x86_get_cpuid_feature_leaf", "(unsigned int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__xmknod", "(int,const char *,__mode_t,mode_t,__dev_t *,dev_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "__xmknodat", "(int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "__xpg_basename", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "__xpg_basename", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__xpg_basename", "(char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "__y0", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__y0", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__y0f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__y0f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__y0f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__y0l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__y0l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__y1", "(double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__y1", "(double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__y1f128", "(_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__y1f", "(float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__y1f", "(float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__y1l", "(long double)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "__y1l", "(long double)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "__yn", "(int,double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__yn", "(int,double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__yn", "(int,double)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ynf128", "(int,_Float128)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ynf", "(int,float)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ynf", "(int,float)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "__ynf", "(int,float)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ynl", "(int,long double)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__ynl", "(int,long double)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_add_to_namespace_list", "(link_map *,Lmid_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_dl_allocate_tls", "(void *)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "_dl_allocate_tls", "(void *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_dl_allocate_tls", "(void *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_allocate_tls_init", "(void *,bool)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "_dl_allocate_tls_init", "(void *,bool)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_dl_allocate_tls_init", "(void *,bool)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_objopen", "(link_map *,Lmid_t)", "", "Argument[*0].Field[*bindflags]", "Argument[*0].Field[*l_audit_any_plt]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_objsearch", "(const char *,link_map *,unsigned int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_objsearch", "(const char *,link_map *,unsigned int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_pltenter", "(link_map *,reloc_result *,Elf64_Addr *,void *,long *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_pltenter", "(link_map *,reloc_result *,Elf64_Addr *,void *,long *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[*3].Field[*st_value]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[*5].Field[*l_addr]", "Argument[*1].Field[*boundndx]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[*5]", "Argument[*1].Field[**bound]", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[3]", "Argument[*1].Field[*boundndx]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind", "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)", "", "Argument[5]", "Argument[*1].Field[*bound]", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind_alt", "(link_map *,const Elf64_Sym *,void **,lookup_t)", "", "Argument[*1].Field[*st_value]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind_alt", "(link_map *,const Elf64_Sym *,void **,lookup_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_audit_symbind_alt", "(link_map *,const Elf64_Sym *,void **,lookup_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_dl_aux_init", "(Elf64_auxv_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_cache_libcmp", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_cache_libcmp", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_cache_libcmp", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_cache_libcmp", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_catch_error", "(const char **,const char **,bool *,..(*)(..),void *)", "", "Argument[4]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "_dl_catch_exception", "(dl_exception *,..(*)(..),void *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "_dl_close", "(void *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "_dl_close_worker", "(link_map *,link_map_public *,bool)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "_dl_deallocate_tls", "(void *,bool)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_debug_initialize", "(Elf64_Addr,Lmid_t)", "", "Argument[0]", "ReturnValue[*].Field[*r_ldbase]", "value", "dfc-generated"] + - ["", "", True, "_dl_debug_update", "(Lmid_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_dl_dst_substitute", "(link_map *,const char *,char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_dl_dst_substitute", "(link_map *,const char *,char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_early_allocate", "(size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_dl_exception_create", "(dl_exception *,const char *,const char *)", "", "Argument[*0].Field[**errstring]", "Argument[*0].Field[**message_buffer]", "value", "dfc-generated"] + - ["", "", True, "_dl_exception_create", "(dl_exception *,const char *,const char *)", "", "Argument[*0].Field[*errstring]", "Argument[*0].Field[*message_buffer]", "value", "dfc-generated"] + - ["", "", True, "_dl_exception_create", "(dl_exception *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**objname]", "value", "dfc-generated"] + - ["", "", True, "_dl_exception_create", "(dl_exception *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**objname]", "taint", "dfc-generated"] + - ["", "", True, "_dl_find_object_update", "(link_map *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_fixup", "(link_map *,Elf64_Word)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_important_hwcaps", "(const char *,const char *,size_t *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_dl_init", "(link_map *,int,char **,char **)", "", "Argument[*0].Field[**l_initfini]", "Argument[*0].Field[***l_initfini]", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_direct", "(link_map *,const char *,uint32_t,const char *,uint32_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_direct", "(link_map *,const char *,uint32_t,const char *,uint32_t)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_direct", "(link_map *,const char *,uint32_t,const char *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_direct", "(link_map *,const char *,uint32_t,const char *,uint32_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_direct", "(link_map *,const char *,uint32_t,const char *,uint32_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_direct", "(link_map *,const char *,uint32_t,const char *,uint32_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_map", "(Lmid_t,const char *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_dl_lookup_map", "(Lmid_t,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[1]", "Argument[*1].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[1]", "ReturnValue[*].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_dl_lookup_symbol_x", "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "_dl_make_tlsdesc_dynamic", "(link_map *,size_t)", "", "Argument[*0].Field[*l_tls_modid]", "ReturnValue[*].Field[*tlsinfo].Field[*ti_module]", "value", "dfc-generated"] + - ["", "", True, "_dl_make_tlsdesc_dynamic", "(link_map *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_make_tlsdesc_dynamic", "(link_map *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*tlsinfo].Field[*ti_offset]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[0]", "Argument[*0].Field[*l_loader]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[0]", "ReturnValue[*].Field[*l_loader]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[1]", "Argument[*0].Field[**l_name]", "taint", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[1]", "ReturnValue[*].Field[**l_name]", "taint", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[2]", "Argument[*0].Field[*l_type]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[2]", "ReturnValue[*].Field[*l_type]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[5]", "Argument[*0].Field[*l_ns]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_new_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[5]", "ReturnValue[*].Field[*l_ns]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[0]", "Argument[*0].Field[*l_loader]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[0]", "ReturnValue[*].Field[*l_loader]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[1]", "Argument[*0].Field[**l_name]", "taint", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[1]", "ReturnValue[*].Field[**l_name]", "taint", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[2]", "Argument[*0].Field[*l_type]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[2]", "ReturnValue[*].Field[*l_type]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[5]", "Argument[*0].Field[*l_ns]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object", "(link_map *,const char *,int,int,int,Lmid_t)", "", "Argument[5]", "ReturnValue[*].Field[*l_ns]", "value", "dfc-generated"] + - ["", "", True, "_dl_map_object_deps", "(link_map *,link_map **,unsigned int,int,int)", "", "Argument[1]", "Argument[*0].Field[***l_initfini]", "taint", "dfc-generated"] + - ["", "", True, "_dl_map_object_deps", "(link_map *,link_map **,unsigned int,int,int)", "", "Argument[1]", "Argument[*0].Field[**l_initfini]", "taint", "dfc-generated"] + - ["", "", True, "_dl_map_object_deps", "(link_map *,link_map **,unsigned int,int,int)", "", "Argument[1]", "Argument[*0].Field[*l_searchlist].Field[**r_list]", "taint", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[*0]", "Argument[*3].Field[**l_name]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[*0]", "ReturnValue[*].Field[**l_name]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[1]", "Argument[*3].Field[**l_name]", "taint", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[1]", "ReturnValue[*].Field[**l_name]", "taint", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[2]", "Argument[*3].Field[*l_type]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[2]", "ReturnValue[*].Field[*l_type]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[3]", "Argument[*3].Field[*l_loader]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[3]", "ReturnValue[*].Field[*l_loader]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[5]", "Argument[*3].Field[*l_ns]", "value", "dfc-generated"] + - ["", "", True, "_dl_new_object", "(char *,const char *,int,link_map *,int,Lmid_t)", "", "Argument[5]", "ReturnValue[*].Field[*l_ns]", "value", "dfc-generated"] + - ["", "", True, "_dl_next_ld_env_entry", "(char ***)", "", "Argument[***0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_dl_open", "(const char *,int,const void *,Lmid_t,int,char *[],char *[])", "", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_dl_open", "(const char *,int,const void *,Lmid_t,int,char *[],char *[])", "", "Argument[3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_dl_process_pt_gnu_property", "(link_map *,int,const Elf64_Phdr *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_dl_profile_fixup", "(link_map *,Elf64_Word,Elf64_Addr,void *,long *)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_relocate_object", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_relocate_object", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_relocate_object", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[0]", "Argument[*0].Field[*l_lookup_cache].Field[*value]", "value", "dfc-generated"] + - ["", "", True, "_dl_relocate_object", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_relocate_object_no_relro", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_relocate_object_no_relro", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_relocate_object_no_relro", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[0]", "Argument[*0].Field[*l_lookup_cache].Field[*value]", "value", "dfc-generated"] + - ["", "", True, "_dl_relocate_object_no_relro", "(link_map *,r_scope_elem *[],int,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_rtld_di_serinfo", "(link_map *,Dl_serinfo *,bool)", "", "Argument[*1].Field[*dls_cnt]", "Argument[*1].Field[*dls_size]", "taint", "dfc-generated"] + - ["", "", True, "_dl_rtld_di_serinfo", "(link_map *,Dl_serinfo *,bool)", "", "Argument[1]", "Argument[*1].Field[*dls_size]", "taint", "dfc-generated"] + - ["", "", True, "_dl_signal_cexception", "(int,dl_exception *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_signal_exception", "(int,dl_exception *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sort_maps", "(link_map **,unsigned int,bool,bool)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_strtoul", "(const char *,char **)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "_dl_strtoul", "(const char *,char **)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_strtoul", "(const char *,char **)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_strtoul", "(const char *,char **)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "_dl_strtoul", "(const char *,char **)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_dl_sym", "(void *,const char *,void *)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dl_sysdep_read_whole_file", "(const char *,size_t *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_dl_sysdep_start", "(void **,..(*)(..))", "", "Argument[*0].Field[*a_un].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_dl_sysdep_start", "(void **,..(*)(..))", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_dl_vsym", "(void *,const char *,const char *,void *)", "", "Argument[0]", "Argument[*0].Field[**l_reldeps].Field[*list]", "value", "dfc-generated"] + - ["", "", True, "_dlerror_run", "(..(*)(..),void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "_dlfo_sort_mappings", "(dl_find_object_internal *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_fitoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_getlong", "(const unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_getlong", "(const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[**1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[*3].Field[*val]", "Argument[*3].Field[**flag]", "value", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[*3].Field[*val]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal", "(int,char **,const char *,const option *,int *,int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[**1]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*1]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*3]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*6]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*6]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[*6]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[0]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[1]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[3]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "_getopt_internal_r", "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)", "", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[**1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*5]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*5]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_only_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[**1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*5]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[*5]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "_getopt_long_r", "(int,char **,const char *,const option *,int *,_getopt_data *)", "", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_getshort", "(const unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_getshort", "(const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_itoa", "(unsigned long long,char *,unsigned int,int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_itoa_word", "(unsigned long,char *,unsigned int,int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[**1]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[**1]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[**1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[*0]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[*0]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[*0]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nl_explode_name", "(char *,const char **,const char **,const char **,const char **,const char **)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_domain", "(const char *,char *,const char *,binding *)", "", "Argument[*0]", "ReturnValue[*].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "_nl_find_domain", "(const char *,char *,const char *,binding *)", "", "Argument[*0]", "ReturnValue[*].Field[**successor].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "_nl_find_domain", "(const char *,char *,const char *,binding *)", "", "Argument[0]", "ReturnValue[*].Field[**filename]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_domain", "(const char *,char *,const char *,binding *)", "", "Argument[0]", "ReturnValue[*].Field[**successor].Field[**filename]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[**3]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[*3]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_locale", "(const char *,size_t,int,const char **)", "", "Argument[3]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_msg", "(loaded_l10nfile *,binding *,const char *,int,size_t *)", "", "Argument[*2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_msg", "(loaded_l10nfile *,binding *,const char *,int,size_t *)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_msg", "(loaded_l10nfile *,binding *,const char *,int,size_t *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_msg", "(loaded_l10nfile *,binding *,const char *,int,size_t *)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_msg", "(loaded_l10nfile *,binding *,const char *,int,size_t *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_find_msg", "(loaded_l10nfile *,binding *,const char *,int,size_t *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_nl_get_alt_digit", "(unsigned int,__locale_data *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_get_era_entry", "(const tm *,__locale_data *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_nl_get_era_entry", "(const tm *,__locale_data *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_nl_get_walt_digit", "(unsigned int,__locale_data *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_intern_locale_data", "(int,const void *,size_t)", "", "Argument[2]", "ReturnValue[*].Field[**private].Field[*filesize]", "value", "dfc-generated"] + - ["", "", True, "_nl_intern_locale_data", "(int,const void *,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*filesize]", "value", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[**1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nl_load_locale_from_archive", "(int,const char **)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[**0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[*0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "_nl_make_l10nflist", "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "_nl_parse_alt_digit", "(const char **,__locale_data *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "_nl_parse_alt_digit", "(const char **,__locale_data *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "_nl_parse_alt_digit", "(const char **,__locale_data *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "_nl_select_era_entry", "(int,__locale_data *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_nl_select_era_entry", "(int,__locale_data *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[*1].Field[*linebuffer]", "Argument[*0].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[*0].Field[*pw_name]", "Argument[*0].Field[**pw_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[*0].Field[*sp_namp]", "Argument[*0].Field[**sp_namp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0].Field[**sp_pwdp]", "value", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[**sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[*sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0].Field[**sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0].Field[*sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1].Field[**sp_pwdp]", "value", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[**sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1].Field[**sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1].Field[*sp_pwdp]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[5]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "_nss_compat_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[*e_name]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[*1].Field[*linebuffer]", "Argument[*0].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[0]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[0]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*e_name]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getnetgrent_r", "(__netgrent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*e_name]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getprotobynumber_r", "(int,protoent *,char *,size_t,int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**r_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**r_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[*1].Field[*linebuffer]", "Argument[*0].Field[**r_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[*1].Field[*linebuffer]", "Argument[*0].Field[**sg_adm]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[*1].Field[*linebuffer]", "Argument[*0].Field[**sg_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**sg_adm]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**sg_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_db_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[*0]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[0]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[5]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_setnetgrent", "(const char *,__netgrent *)", "", "Argument[*0]", "Argument[*1].Field[*(unknown field)].Union[**(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_setnetgrent", "(const char *,__netgrent *)", "", "Argument[*0]", "Argument[*1].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_setnetgrent", "(const char *,__netgrent *)", "", "Argument[*1].Field[**data]", "Argument[*1].Field[*(unknown field)].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_setnetgrent", "(const char *,__netgrent *)", "", "Argument[*1].Field[*data]", "Argument[*1].Field[*(unknown field)].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "_nss_db_setnetgrent", "(const char *,__netgrent *)", "", "Argument[0]", "Argument[*1].Field[*(unknown field)].Union[**(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "_nss_db_setnetgrent", "(const char *,__netgrent *)", "", "Argument[0]", "Argument[*1].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "_nss_dns_getcanonname_r", "(const char *,char *,size_t,char **,int *,int *)", "", "Argument[*1]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_getcanonname_r", "(const char *,char *,size_t,char **,int *,int *)", "", "Argument[1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyaddr2_r", "(const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *)", "", "Argument[1]", "Argument[*3].Field[*h_length]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyaddr2_r", "(const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *)", "", "Argument[2]", "Argument[*3].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyaddr2_r", "(const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyaddr_r", "(const void *,socklen_t,int,hostent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*3].Field[*h_length]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyaddr_r", "(const void *,socklen_t,int,hostent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*3].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyname2_r", "(const char *,int,hostent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*2].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyname3_r", "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)", "", "Argument[1]", "Argument[*2].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyname3_r", "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)", "", "Argument[3]", "Argument[*8]", "value", "df-generated"] + - ["", "", True, "_nss_dns_gethostbyname3_r", "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "_nss_dns_gethostbyname_r", "(const char *,hostent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_dns_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[0]", "Argument[*2].Field[*n_net]", "value", "dfc-generated"] + - ["", "", True, "_nss_dns_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_dns_getnetbyname_r", "(const char *,netent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getaliasbyname_r", "(const char *,aliasent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasbyname_r", "(const char *,aliasent *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasbyname_r", "(const char *,aliasent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasbyname_r", "(const char *,aliasent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasbyname_r", "(const char *,aliasent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasbyname_r", "(const char *,aliasent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasent_r", "(aliasent *,char *,size_t,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasent_r", "(aliasent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasent_r", "(aliasent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasent_r", "(aliasent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasent_r", "(aliasent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getaliasent_r", "(aliasent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getetherent_r", "(etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrent_r", "(group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_gethostbyaddr_r", "(const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*3].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname2_r", "(const char *,int,hostent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*2].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname2_r", "(const char *,int,hostent *,char *,size_t,int *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname2_r", "(const char *,int,hostent *,char *,size_t,int *,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname3_r", "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)", "", "Argument[1]", "Argument[*2].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname3_r", "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname3_r", "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[2]", "Argument[**1].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[2]", "Argument[*2].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[3]", "Argument[**1].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[3]", "Argument[*2].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname4_r", "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname_r", "(const char *,hostent *,char *,size_t,int *,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostbyname_r", "(const char *,hostent *,char *,size_t,int *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostent_r", "(hostent *,char *,size_t,int *,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_gethostent_r", "(hostent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_gethostent_r", "(hostent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_gethostent_r", "(hostent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_gethostent_r", "(hostent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_gethostton_r", "(const char *,etherent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyaddr_r", "(uint32_t,int,netent *,char *,size_t,int *,int *)", "", "Argument[4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyname_r", "(const char *,netent *,char *,size_t,int *,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyname_r", "(const char *,netent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyname_r", "(const char *,netent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyname_r", "(const char *,netent *,char *,size_t,int *,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetbyname_r", "(const char *,netent *,char *,size_t,int *,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetent_r", "(netent *,char *,size_t,int *,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetent_r", "(netent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetent_r", "(netent *,char *,size_t,int *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetent_r", "(netent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetent_r", "(netent *,char *,size_t,int *,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getnetgrent_r", "(__netgrent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1].Field[**e_name]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getntohost_r", "(const ether_addr *,etherent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2].Field[*linebuffer]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobynumber_r", "(int,protoent *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobynumber_r", "(int,protoent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobynumber_r", "(int,protoent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobynumber_r", "(int,protoent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotobynumber_r", "(int,protoent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotoent_r", "(protoent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotoent_r", "(protoent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotoent_r", "(protoent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotoent_r", "(protoent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getprotoent_r", "(protoent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwent_r", "(passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbyname_r", "(const char *,rpcent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcbynumber_r", "(int,rpcent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getrpcent_r", "(rpcent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservbyport_r", "(int,const char *,servent *,char *,size_t,int *)", "", "Argument[4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservent_r", "(servent *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservent_r", "(servent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservent_r", "(servent *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservent_r", "(servent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getservent_r", "(servent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgent_r", "(sgrp *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getsgnam_r", "(const char *,sgrp *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspent_r", "(spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_getspnam_r", "(const char *,spwd *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[5]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_etherent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*0]", "Argument[*1].Field[**e_name]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_etherent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*0]", "Argument[*1].Field[*e_addr].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_grent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**gr_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_grent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_grent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_netent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*0]", "Argument[*1].Field[**n_aliases]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_netent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*0]", "Argument[*1].Field[**n_name]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_netent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**n_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_netent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_netent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_protoent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**p_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_protoent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_protoent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_pwent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_parse_pwent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_parse_pwent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_parse_rpcent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**r_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_rpcent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_rpcent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_servent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**s_aliases]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_servent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_servent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_sgent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**sg_adm]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_sgent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*2].Field[*linebuffer]", "Argument[*1].Field[**sg_mem]", "value", "dfc-generated"] + - ["", "", True, "_nss_files_parse_sgent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_sgent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_files_parse_spent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_files_parse_spent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "_nss_files_parse_spent", "(char *,void *,parser_data *,size_t,int *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getgrgid_r", "(__gid_t,gid_t,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_getgrnam_r", "(const char *,group *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_getprotobyname_r", "(const char *,protoent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_getprotobynumber_r", "(const int,int,protoent *,char *,size_t,int *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getpwnam_r", "(const char *,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getpwuid_r", "(__uid_t,uid_t,passwd *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "_nss_hesiod_getservbyname_r", "(const char *,const char *,servent *,char *,size_t,int *)", "", "Argument[4]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_getservbyport_r", "(const int,int,const char *,servent *,char *,size_t,int *)", "", "Argument[4]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_nss_hesiod_initgroups_dyn", "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)", "", "Argument[5]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "_nss_netgroup_parseline", "(char **,__netgrent *,char *,size_t,int *)", "", "Argument[**0]", "Argument[*1].Field[*val].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "_nss_netgroup_parseline", "(char **,__netgrent *,char *,size_t,int *)", "", "Argument[**0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "_nss_netgroup_parseline", "(char **,__netgrent *,char *,size_t,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_allocated_p", "(obstack *,void *)", "", "Argument[*0].Field[**chunk].Field[*prev]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_obstack_allocated_p", "(obstack *,void *)", "", "Argument[*0].Field[*chunk]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin", "(obstack *,int,int,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*chunk_size]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin", "(obstack *,int,int,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[**object_base]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin", "(obstack *,int,int,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*alignment_mask]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin", "(obstack *,int,int,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*object_base]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin", "(obstack *,int,int,..(*)(..),..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*chunkfun]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin", "(obstack *,int,int,..(*)(..),..(*)(..))", "", "Argument[4]", "Argument[*0].Field[*freefun]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[**5]", "Argument[*0].Field[***extra_arg]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[*5]", "Argument[*0].Field[**extra_arg]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*chunk_size]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[**object_base]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*alignment_mask]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*object_base]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[3]", "Argument[*0].Field[*chunkfun]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[4]", "Argument[*0].Field[*freefun]", "value", "dfc-generated"] + - ["", "", True, "_obstack_begin_1", "(obstack *,int,int,..(*)(..),..(*)(..),void *)", "", "Argument[5]", "Argument[*0].Field[*extra_arg]", "value", "dfc-generated"] + - ["", "", True, "_obstack_memory_used", "(obstack *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "_obstack_newchunk", "(obstack *,int)", "", "Argument[1]", "Argument[*0].Field[**chunk_limit]", "taint", "dfc-generated"] + - ["", "", True, "_obstack_newchunk", "(obstack *,int)", "", "Argument[1]", "Argument[*0].Field[*chunk_limit]", "taint", "dfc-generated"] + - ["", "", True, "_pthread_cleanup_push_defer", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***__arg]", "value", "dfc-generated"] + - ["", "", True, "_pthread_cleanup_push_defer", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**__arg]", "value", "dfc-generated"] + - ["", "", True, "_pthread_cleanup_push_defer", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*__routine]", "value", "dfc-generated"] + - ["", "", True, "_pthread_cleanup_push_defer", "(_pthread_cleanup_buffer *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*__arg]", "value", "dfc-generated"] + - ["", "", True, "_td_check_sizeof", "(td_thragent_t *,uint32_t *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[*1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[*1]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[1]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[3]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *)", "", "Argument[**4]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *)", "", "Argument[**4]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *)", "", "Argument[*4]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "_td_fetch_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *)", "", "Argument[*4]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[*1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[*1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[3]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "_td_locate_field", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[*1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[*1]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[1]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[3]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value", "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[*1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[*1]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[1]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[3]", "Argument[4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_td_store_value_local", "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "_tolower", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_toupper", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "_xdr_nis_error", "(XDR *,nis_error *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "_xdr_nis_name", "(XDR *,nis_name *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "a64l", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "a64l", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "add_key", "(const void *,VISIT,void *)", "", "Argument[**0].Field[*validx]", "Argument[*2].Field[**hashtable]", "taint", "dfc-generated"] + - ["", "", True, "add_key", "(const void *,VISIT,void *)", "", "Argument[*2].Field[*keystrtab]", "Argument[*2].Field[**keyidxtab]", "taint", "dfc-generated"] + - ["", "", True, "add_locale_to_archive", "(locarhandle *,const char *,locale_data_t,bool)", "", "Argument[*1]", "Argument[*0].Field[**addr]", "value", "dfc-generated"] + - ["", "", True, "add_locale_to_archive", "(locarhandle *,const char *,locale_data_t,bool)", "", "Argument[1]", "Argument[*0].Field[**addr]", "taint", "dfc-generated"] + - ["", "", True, "add_locale_to_archive", "(locarhandle *,const char *,locale_data_t,bool)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "add_locale_uint32_array", "(locale_file *,const uint32_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*data].Field[**next_free]", "taint", "dfc-generated"] + - ["", "", True, "add_locales_to_archive", "(size_t,char *[],bool)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "add_locales_to_archive", "(size_t,char *[],bool)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "add_locales_to_archive", "(size_t,char *[],bool)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "add_to_readlist", "(int,const char *,const char *,int,localedef_t *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "add_to_readlist", "(int,const char *,const char *,int,localedef_t *)", "", "Argument[*2]", "ReturnValue[*].Field[**repertoire_name]", "value", "dfc-generated"] + - ["", "", True, "add_to_readlist", "(int,const char *,const char *,int,localedef_t *)", "", "Argument[0]", "ReturnValue[*].Field[*categories].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "add_to_readlist", "(int,const char *,const char *,int,localedef_t *)", "", "Argument[0]", "ReturnValue[*].Field[*needed]", "taint", "dfc-generated"] + - ["", "", True, "add_to_readlist", "(int,const char *,const char *,int,localedef_t *)", "", "Argument[1]", "ReturnValue[*].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "add_to_readlist", "(int,const char *,const char *,int,localedef_t *)", "", "Argument[2]", "ReturnValue[*].Field[*repertoire_name]", "value", "dfc-generated"] + - ["", "", True, "addgetnetgrent", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addgetnetgrent", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addgrbygid", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addgrbygid", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addgrbygid", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "addgrbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addgrbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addhstai", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addhstai", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addhstbyaddr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addhstbyaddr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addhstbyaddrv6", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addhstbyaddrv6", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addhstbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addhstbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addhstbynamev6", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addhstbynamev6", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addinitgroups", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addinitgroups", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addinnetgr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addinnetgr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addinnetgr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*3].Field[*head].Field[*timeout]", "Argument[*0].Field[*wakeup_time]", "value", "dfc-generated"] + - ["", "", True, "addinnetgr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addinnetgr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addinnetgr", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "addpwbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addpwbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addpwbyuid", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addpwbyuid", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addpwbyuid", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "address_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "addrsort", "(char **,int)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "addrsort", "(char **,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "addrsort", "(char **,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "addservbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addservbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addservbyname", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "addservbyport", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "addservbyport", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[*2].Field[*key_len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "addservbyport", "(database_dyn *,int,request_header *,void *,uid_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "advance", "(const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "aligned_alloc", "(size_t,size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "aligned_alloc", "(size_t,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "aligned_alloc", "(size_t,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "aligned_alloc", "(size_t,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "argz_delete", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "argz_delete", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "argz_delete", "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "argz_next", "(const char *,size_t,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "argz_next", "(const char *,size_t,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "argz_next", "(const char *,size_t,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "argz_next", "(const char *,size_t,const char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "argz_next", "(const char *,size_t,const char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[*0]", "ReturnValue[*].Field[**ah_private].Field[**ad_servername]", "value", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[*2]", "ReturnValue[*].Field[**ah_private].Field[*ad_syncaddr]", "value", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[*3]", "ReturnValue[*].Field[*ah_key]", "value", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[0]", "ReturnValue[*].Field[**ah_private].Field[**ad_servername]", "taint", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[1]", "ReturnValue[*].Field[**ah_private].Field[*ad_window]", "value", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[2]", "ReturnValue[*].Field[**ah_private].Field[*ad_syncaddr]", "taint", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "authdes_create", "(const char *,u_int,sockaddr *,des_block *)", "", "Argument[3]", "ReturnValue[*].Field[*ah_key]", "taint", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[*0]", "ReturnValue[*].Field[**ah_private].Field[**ad_servername]", "value", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[*1].Field[**n_bytes]", "ReturnValue[*].Field[**ah_private].Field[*ad_pkey]", "value", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[*1].Field[*n_bytes]", "ReturnValue[*].Field[**ah_private].Field[*ad_pkey]", "taint", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[*3]", "ReturnValue[*].Field[**ah_private].Field[*ad_syncaddr]", "value", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[*4]", "ReturnValue[*].Field[*ah_key]", "value", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[0]", "ReturnValue[*].Field[**ah_private].Field[**ad_servername]", "taint", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[2]", "ReturnValue[*].Field[**ah_private].Field[*ad_window]", "value", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[3]", "ReturnValue[*].Field[**ah_private].Field[*ad_syncaddr]", "taint", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "authdes_pk_create", "(const char *,netobj *,u_int,sockaddr *,des_block *)", "", "Argument[4]", "ReturnValue[*].Field[*ah_key]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "btowc", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "c16rtomb", "(char *,char16_t,mbstate_t *)", "", "Argument[1]", "Argument[*2].Field[*__value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "c8rtomb", "(char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__)", "", "Argument[1]", "Argument[*2].Field[*__value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "cache_add", "(int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool)", "", "Argument[*3].Field[*timeout]", "Argument[*5].Field[*wakeup_time]", "value", "dfc-generated"] + - ["", "", True, "cache_search", "(request_type,const void *,size_t,database_dyn *,uid_t)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "cache_search", "(request_type,const void *,size_t,database_dyn *,uid_t)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "cache_search", "(request_type,const void *,size_t,database_dyn *,uid_t)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "cache_search", "(request_type,const void *,size_t,database_dyn *,uid_t)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "cache_search", "(request_type,const void *,size_t,database_dyn *,uid_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "cache_search", "(request_type,const void *,size_t,database_dyn *,uid_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "catgets", "(nl_catd,int,int,const char *)", "", "Argument[*3]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "catgets", "(nl_catd,int,int,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "catgets", "(nl_catd,int,int,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "catgets", "(nl_catd,int,int,const char *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "catgets", "(nl_catd,int,int,const char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "catgets", "(nl_catd,int,int,const char *)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "charmap_aliases", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "charmap_aliases", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_aliases", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "charmap_aliases", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_find_symbol", "(const charmap_t *,const char *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_find_symbol", "(const charmap_t *,const char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "charmap_find_symbol", "(const charmap_t *,const char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_find_symbol", "(const charmap_t *,const char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "charmap_find_symbol", "(const charmap_t *,const char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_find_symbol", "(const charmap_t *,const char *,size_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "charmap_find_value", "(const charmap_t *,const char *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_find_value", "(const charmap_t *,const char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "charmap_find_value", "(const charmap_t *,const char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_find_value", "(const charmap_t *,const char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "charmap_find_value", "(const charmap_t *,const char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_find_value", "(const charmap_t *,const char *,size_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "charmap_hash", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "charmap_hash", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_hash", "(const char *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "charmap_hash", "(const char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_hash", "(const char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "charmap_hash", "(const char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_open", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_open", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "charmap_opendir", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**directory]", "value", "dfc-generated"] + - ["", "", True, "charmap_opendir", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**directory]", "taint", "dfc-generated"] + - ["", "", True, "charmap_readdir", "(CHARMAP_DIR *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "charmap_readdir", "(CHARMAP_DIR *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "check_addrinfo", "(const char *,addrinfo *,int,const char *)", "", "Argument[*1].Field[**ai_next].Field[**ai_next]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "check_addrinfo", "(const char *,addrinfo *,int,const char *)", "", "Argument[*1].Field[**ai_next]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "chroot_canon", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "chroot_canon", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "clnttcp_create", "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)", "", "Argument[*0]", "ReturnValue[*].Field[**cl_private].Field[*ct_addr]", "value", "dfc-generated"] + - ["", "", True, "clnttcp_create", "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)", "", "Argument[*3]", "ReturnValue[*].Field[**cl_private].Field[*ct_sock]", "value", "dfc-generated"] + - ["", "", True, "clnttcp_create", "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "clnttcp_create", "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)", "", "Argument[0]", "ReturnValue[*].Field[**cl_private].Field[*ct_addr]", "taint", "dfc-generated"] + - ["", "", True, "clnttcp_create", "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "clnttcp_create", "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)", "", "Argument[3]", "ReturnValue[*].Field[**cl_private].Field[*ct_sock]", "taint", "dfc-generated"] + - ["", "", True, "clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int)", "", "Argument[6]", "ReturnValue[*].Field[**cl_private].Field[**cu_outbuf]", "taint", "dfc-generated"] + - ["", "", True, "clntudp_bufcreate", "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int)", "", "Argument[6]", "ReturnValue[*].Field[**cl_private].Field[*cu_outbuf]", "taint", "dfc-generated"] + - ["", "", True, "clntudp_create", "(sockaddr_in *,u_long,u_long,timeval,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "clntudp_create", "(sockaddr_in *,u_long,u_long,timeval,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "clntunix_create", "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)", "", "Argument[*0]", "ReturnValue[*].Field[**cl_private].Field[*ct_addr]", "value", "dfc-generated"] + - ["", "", True, "clntunix_create", "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)", "", "Argument[*3]", "ReturnValue[*].Field[**cl_private].Field[*ct_sock]", "value", "dfc-generated"] + - ["", "", True, "clntunix_create", "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "clntunix_create", "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)", "", "Argument[0]", "ReturnValue[*].Field[**cl_private].Field[*ct_addr]", "taint", "dfc-generated"] + - ["", "", True, "clntunix_create", "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "clntunix_create", "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)", "", "Argument[3]", "ReturnValue[*].Field[**cl_private].Field[*ct_sock]", "taint", "dfc-generated"] + - ["", "", True, "compute_hashval", "(const void *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "compute_hashval", "(const void *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "compute_hashval", "(const void *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ctermid", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ctime_r", "(const time_t *,const time_t *__restrict__,char *,char *__restrict__)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ctime_r", "(const time_t *,const time_t *__restrict__,char *,char *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ctime_r", "(const time_t *,const time_t *__restrict__,char *,char *__restrict__)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ctime_r", "(const time_t *,const time_t *__restrict__,char *,char *__restrict__)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "cuserid", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "cuserid", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "data_string", "(unsigned char *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "data_string", "(unsigned char *,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "data_string", "(unsigned char *,const char *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "data_string", "(unsigned char *,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "delete_locales_from_archive", "(size_t,char *[])", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "delete_locales_from_archive", "(size_t,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "delete_locales_from_archive", "(size_t,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "des_setparity", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "dirname", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "dirname", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "div", "(int,int)", "", "Argument[0]", "ReturnValue.Field[*quot]", "taint", "dfc-generated"] + - ["", "", True, "div", "(int,int)", "", "Argument[0]", "ReturnValue.Field[*rem]", "taint", "dfc-generated"] + - ["", "", True, "div", "(int,int)", "", "Argument[1]", "ReturnValue.Field[*quot]", "taint", "dfc-generated"] + - ["", "", True, "div", "(int,int)", "", "Argument[1]", "ReturnValue.Field[*rem]", "taint", "dfc-generated"] + - ["", "", True, "drand48_r", "(drand48_data *,drand48_data *__restrict__,double *,double *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "dtotimespec", "(double)", "", "Argument[0]", "ReturnValue.Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "dtotimespec", "(double)", "", "Argument[0]", "ReturnValue.Field[*tv_sec]", "taint", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[*2]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[*3]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_add", "(char **,size_t *,const char *,const char *)", "", "Argument[3]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_entry", "(const char *,size_t,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "envz_entry", "(const char *,size_t,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "envz_entry", "(const char *,size_t,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "envz_get", "(const char *,size_t,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "envz_get", "(const char *,size_t,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "envz_get", "(const char *,size_t,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "envz_merge", "(char **,size_t *,const char *,size_t,int)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_merge", "(char **,size_t *,const char *,size_t,int)", "", "Argument[*2]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "envz_merge", "(char **,size_t *,const char *,size_t,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_merge", "(char **,size_t *,const char *,size_t,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "envz_merge", "(char **,size_t *,const char *,size_t,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "envz_merge", "(char **,size_t *,const char *,size_t,int)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_remove", "(char **,size_t *,const char *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_remove", "(char **,size_t *,const char *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_remove", "(char **,size_t *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "envz_remove", "(char **,size_t *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "envz_strip", "(char **,size_t *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_strip", "(char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "envz_strip", "(char **,size_t *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "envz_strip", "(char **,size_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "envz_strip", "(char **,size_t *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "envz_strip", "(char **,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "erand48", "(unsigned short[3])", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton_r", "(const char *,ether_addr *)", "", "Argument[*0]", "Argument[*1].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton_r", "(const char *,ether_addr *)", "", "Argument[*0]", "ReturnValue[*].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton_r", "(const char *,ether_addr *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ether_aton_r", "(const char *,ether_addr *)", "", "Argument[0]", "Argument[*1].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton_r", "(const char *,ether_addr *)", "", "Argument[0]", "ReturnValue[*].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_aton_r", "(const char *,ether_addr *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ether_line", "(const char *,ether_addr *,char *)", "", "Argument[*0]", "Argument[*1].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_line", "(const char *,ether_addr *,char *)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ether_line", "(const char *,ether_addr *,char *)", "", "Argument[0]", "Argument[*1].Field[*ether_addr_octet]", "taint", "dfc-generated"] + - ["", "", True, "ether_line", "(const char *,ether_addr *,char *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ether_line", "(const char *,ether_addr *,char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ether_ntoa", "(const ether_addr *)", "", "Argument[*0].Field[*ether_addr_octet]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ether_ntoa_r", "(const ether_addr *,char *)", "", "Argument[*0].Field[*ether_addr_octet]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ether_ntoa_r", "(const ether_addr *,char *)", "", "Argument[*0].Field[*ether_addr_octet]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ether_ntoa_r", "(const ether_addr *,char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "fegetexceptflag", "(fexcept_t *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "feof_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ferror_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fgetc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "fgetgrent", "(FILE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "fgetpwent", "(FILE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "fgetsgent", "(FILE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "fgetspent", "(FILE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "fgetws_unlocked", "(wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "fgetws_unlocked", "(wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "find_entry", "(const hash_table *,const void *,size_t,void **)", "", "Argument[*0].Field[**table].Field[**data]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "find_entry", "(const hash_table *,const void *,size_t,void **)", "", "Argument[*0].Field[**table].Field[*data]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "find_locale", "(int,const char *,const char *,const charmap_t *)", "", "Argument[0]", "ReturnValue[*].Field[*categories].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "find_locale", "(int,const char *,const char *,const charmap_t *)", "", "Argument[0]", "ReturnValue[*].Field[*needed]", "taint", "dfc-generated"] + - ["", "", True, "fputc", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "fputc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "fputwc", "(wchar_t,FILE *,__FILE *)", "", "Argument[0]", "Argument[*1].Field[**_wide_data].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "fputwc_unlocked", "(wchar_t,FILE *,__FILE *)", "", "Argument[0]", "Argument[*1].Field[**_wide_data].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "freeaddrinfo", "(addrinfo *)", "", "Argument[*0].Field[**ai_next].Field[**ai_next]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "freeaddrinfo", "(addrinfo *)", "", "Argument[*0].Field[**ai_next]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "freopen64", "(const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ftok", "(const char *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fts_children", "(FTS *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "fts_children", "(FTS *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "fts_close", "(FTS *)", "", "Argument[*0].Field[**fts_child].Field[**fts_link]", "Argument[*0].Field[**fts_child]", "value", "dfc-generated"] + - ["", "", True, "fts_open", "(char *const *,int,..(*)(..))", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "fts_open", "(char *const *,int,..(*)(..))", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "fts_open", "(char *const *,int,..(*)(..))", "", "Argument[1]", "ReturnValue[*].Field[*fts_options]", "value", "dfc-generated"] + - ["", "", True, "fts_open", "(char *const *,int,..(*)(..))", "", "Argument[2]", "ReturnValue[*].Field[*fts_compar]", "value", "dfc-generated"] + - ["", "", True, "fts_read", "(FTS *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "fts_read", "(FTS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "fts_set", "(FTS *,FTSENT *,int)", "", "Argument[2]", "Argument[*1].Field[*fts_instr]", "value", "dfc-generated"] + - ["", "", True, "fwide", "(FILE *,__FILE *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "fwrite_unlocked", "(const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fwrite_unlocked", "(const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "gc", "(database_dyn *)", "", "Argument[*0].Field[*data]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[**4]", "Argument[*1].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[*3]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "gconv", "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "getc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "getdate", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "getdate", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "getentropy", "(void *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "getgrouplist", "(const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "getgrouplist", "(const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "gethostbyname2", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "gethostbyname2", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**h_name]", "value", "dfc-generated"] + - ["", "", True, "gethostbyname2", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "gethostbyname2", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**h_name]", "taint", "dfc-generated"] + - ["", "", True, "gethostbyname2", "(const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "gethostbyname2", "(const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "getipv4sourcefilter", "(int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "getloadavg", "(double[],int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "getmntent", "(FILE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "getnameinfo", "(const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "getnameinfo", "(const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "getnameinfo", "(const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "getnameinfo", "(const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[**1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "getopt", "(int,char *const *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[**1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*3].Field[*val]", "Argument[*3].Field[**flag]", "value", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*3].Field[*val]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "getopt_long", "(int,char *const *,const char *,const option *,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[**1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*3].Field[*val]", "Argument[*3].Field[**flag]", "value", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[*3].Field[*val]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "getopt_long_only", "(int,char *const *,const char *,const option *,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getsourcefilter", "(int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "getsubopt", "(char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__)", "", "Argument[**0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "getsubopt", "(char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__)", "", "Argument[**0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "getsubopt", "(char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "getutmp", "(const utmpx *,utmp *)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "getutmp", "(const utmpx *,utmp *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "getwd", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "glibc_hwcaps_subdirectory_name", "(const glibc_hwcaps_subdirectory *)", "", "Argument[*0].Field[**name].Field[*string]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "gmtime", "(const time_t *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "gmtime", "(const time_t *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "gnu_dev_major", "(__dev_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gnu_dev_makedev", "(unsigned int,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gnu_dev_makedev", "(unsigned int,unsigned int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gnu_dev_minor", "(__dev_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "handle_copy", "(linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "host2netname", "(char[256],const char *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "host2netname", "(char[256],const char *,const char *)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "host2netname", "(char[256],const char *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "host2netname", "(char[256],const char *,const char *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "hsearch", "(ENTRY,ACTION)", "", "Argument[0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "iconv", "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[**3]", "Argument[*0].Field[*__data].Field[**__outbuf]", "value", "dfc-generated"] + - ["", "", True, "iconv", "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[**3]", "Argument[*0].Field[*__data].Field[**__outbufend]", "value", "dfc-generated"] + - ["", "", True, "iconv", "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "iconv", "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "iconv", "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "iconv", "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "iconv_open", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**__steps].Field[**__to_name]", "taint", "dfc-generated"] + - ["", "", True, "iconv_open", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**__steps].Field[**__from_name]", "taint", "dfc-generated"] + - ["", "", True, "iconv_open", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**__steps].Field[**__to_name]", "taint", "dfc-generated"] + - ["", "", True, "iconv_open", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**__steps].Field[**__to_name]", "taint", "dfc-generated"] + - ["", "", True, "iconv_open", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**__steps].Field[**__from_name]", "taint", "dfc-generated"] + - ["", "", True, "iconv_open", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**__steps].Field[**__to_name]", "taint", "dfc-generated"] + - ["", "", True, "identification_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[*0]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[0]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[0]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[3]", "Argument[**6].Field[*ip6o_type]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[3]", "Argument[*0].Field[*ip6o_type]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[4]", "Argument[**6].Field[*ip6o_len]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[4]", "Argument[*0].Field[*ip6o_len]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_append", "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_find", "(void *,socklen_t,int,uint8_t,socklen_t *,void **)", "", "Argument[*0]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "inet6_opt_find", "(void *,socklen_t,int,uint8_t,socklen_t *,void **)", "", "Argument[0]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_find", "(void *,socklen_t,int,uint8_t,socklen_t *,void **)", "", "Argument[0]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_find", "(void *,socklen_t,int,uint8_t,socklen_t *,void **)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_find", "(void *,socklen_t,int,uint8_t,socklen_t *,void **)", "", "Argument[2]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_find", "(void *,socklen_t,int,uint8_t,socklen_t *,void **)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_finish", "(void *,socklen_t,int)", "", "Argument[2]", "Argument[*0].Field[*ip6o_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_finish", "(void *,socklen_t,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_get_val", "(void *,int,void *,socklen_t)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_get_val", "(void *,int,void *,socklen_t)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_get_val", "(void *,int,void *,socklen_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_get_val", "(void *,int,void *,socklen_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_get_val", "(void *,int,void *,socklen_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_init", "(void *,socklen_t)", "", "Argument[1]", "Argument[*0].Field[*ip6h_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_next", "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)", "", "Argument[*0]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "inet6_opt_next", "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)", "", "Argument[0]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_next", "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)", "", "Argument[0]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_next", "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_next", "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)", "", "Argument[2]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_next", "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_set_val", "(void *,int,void *,socklen_t)", "", "Argument[**2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_set_val", "(void *,int,void *,socklen_t)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "inet6_opt_set_val", "(void *,int,void *,socklen_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_set_val", "(void *,int,void *,socklen_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "inet6_opt_set_val", "(void *,int,void *,socklen_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[2]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[3]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_alloc", "(cmsghdr *,int,int,int)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_append", "(cmsghdr *,const uint8_t *,int,int)", "", "Argument[*1]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_append", "(cmsghdr *,const uint8_t *,int,int)", "", "Argument[1]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_append", "(cmsghdr *,const uint8_t *,int,int)", "", "Argument[2]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_append", "(cmsghdr *,const uint8_t *,int,int)", "", "Argument[3]", "Argument[*0].Field[*cmsg_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_find", "(const cmsghdr *,uint8_t **,int)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_find", "(const cmsghdr *,uint8_t **,int)", "", "Argument[*0].Field[*__cmsg_data]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "inet6_option_find", "(const cmsghdr *,uint8_t **,int)", "", "Argument[*0].Field[*__cmsg_data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_find", "(const cmsghdr *,uint8_t **,int)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_find", "(const cmsghdr *,uint8_t **,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_find", "(const cmsghdr *,uint8_t **,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_init", "(void *,cmsghdr **,int)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "inet6_option_init", "(void *,cmsghdr **,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "inet6_option_init", "(void *,cmsghdr **,int)", "", "Argument[2]", "Argument[**1].Field[*cmsg_type]", "value", "dfc-generated"] + - ["", "", True, "inet6_option_init", "(void *,cmsghdr **,int)", "", "Argument[2]", "Argument[*0].Field[*cmsg_type]", "value", "dfc-generated"] + - ["", "", True, "inet6_option_next", "(const cmsghdr *,uint8_t **)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_next", "(const cmsghdr *,uint8_t **)", "", "Argument[*0].Field[*__cmsg_data]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "inet6_option_next", "(const cmsghdr *,uint8_t **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_next", "(const cmsghdr *,uint8_t **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_next", "(const cmsghdr *,uint8_t **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_option_space", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_add", "(void *,const in6_addr *)", "", "Argument[*1]", "Argument[*0].Field[*ip6r0_addr]", "value", "dfc-generated"] + - ["", "", True, "inet6_rth_add", "(void *,const in6_addr *)", "", "Argument[1]", "Argument[*0].Field[*ip6r0_addr]", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_getaddr", "(const void *,int)", "", "Argument[*0].Field[*ip6r0_addr]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "inet6_rth_getaddr", "(const void *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_getaddr", "(const void *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_init", "(void *,socklen_t,int,int)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "inet6_rth_init", "(void *,socklen_t,int,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "inet6_rth_init", "(void *,socklen_t,int,int)", "", "Argument[3]", "Argument[*0].Field[*ip6r_len]", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_reverse", "(const void *,void *)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "inet6_rth_reverse", "(const void *,void *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_segments", "(const void *)", "", "Argument[*0].Field[*ip6r_len]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet6_rth_space", "(int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet_net_ntop", "(int,const void *,int,char *,size_t)", "", "Argument[*1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "inet_net_ntop", "(int,const void *,int,char *,size_t)", "", "Argument[*3]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "inet_net_ntop", "(int,const void *,int,char *,size_t)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "inet_net_ntop", "(int,const void *,int,char *,size_t)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "inet_net_ntop", "(int,const void *,int,char *,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "inet_net_ntop", "(int,const void *,int,char *,size_t)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "inet_net_pton", "(int,const char *,void *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "inet_net_pton", "(int,const char *,void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inet_neta", "(in_addr_t,uint32_t,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "inet_neta", "(in_addr_t,uint32_t,char *,size_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet_neta", "(in_addr_t,uint32_t,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet_neta", "(in_addr_t,uint32_t,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "inet_nsap_addr", "(const char *,u_char *,unsigned char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet_nsap_addr", "(const char *,u_char *,unsigned char *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet_nsap_addr", "(const char *,u_char *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "inet_nsap_ntoa", "(int,const u_char *,const unsigned char *,char *)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "inet_nsap_ntoa", "(int,const u_char *,const unsigned char *,char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "inet_nsap_ntoa", "(int,const u_char *,const unsigned char *,char *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "inet_nsap_ntoa", "(int,const u_char *,const unsigned char *,char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "inet_nsap_ntoa", "(int,const u_char *,const unsigned char *,char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "inetstr2int", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "inetstr2int", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "init_hash", "(hash_table *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*size]", "taint", "dfc-generated"] + - ["", "", True, "init_locale_data", "(locale_file *,size_t)", "", "Argument[1]", "Argument[*0].Field[*n_elements]", "value", "dfc-generated"] + - ["", "", True, "insert_entry", "(hash_table *,const void *,size_t,void *)", "", "Argument[**3]", "Argument[*0].Field[**first].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "insert_entry", "(hash_table *,const void *,size_t,void *)", "", "Argument[*3]", "Argument[*0].Field[**first].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "insert_entry", "(hash_table *,const void *,size_t,void *)", "", "Argument[3]", "Argument[*0].Field[**first].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "insque", "(void *,void *)", "", "Argument[0]", "Argument[*0].Field[**q_back].Field[*q_forw]", "value", "dfc-generated"] + - ["", "", True, "insque", "(void *,void *)", "", "Argument[0]", "Argument[*0].Field[**q_forw].Field[*q_back]", "value", "dfc-generated"] + - ["", "", True, "insque", "(void *,void *)", "", "Argument[0]", "Argument[*1].Field[*q_forw]", "value", "dfc-generated"] + - ["", "", True, "insque", "(void *,void *)", "", "Argument[1]", "Argument[*0].Field[*q_back]", "value", "dfc-generated"] + - ["", "", True, "isalnum", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isalpha", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isblank", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "iscntrl", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isdigit", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isgraph", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "islower", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isprint", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ispunct", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isspace", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isupper", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "isxdigit", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "iterate_table", "(const hash_table *,void **,const void **,size_t *,void **)", "", "Argument[*0].Field[**first].Field[**next]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "iterate_table", "(const hash_table *,void **,const void **,size_t *,void **)", "", "Argument[*0].Field[**first].Field[*next]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "iterate_table", "(const hash_table *,void **,const void **,size_t *,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "jrand48", "(unsigned short[3])", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "jrand48", "(unsigned short[3])", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "jrand48", "(unsigned short[3])", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "key_decryptsession", "(char *,des_block *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "key_decryptsession_pk", "(char *,netobj *,des_block *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "key_decryptsession_pk", "(char *,netobj *,des_block *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "key_encryptsession", "(char *,des_block *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "key_encryptsession_pk", "(char *,netobj *,des_block *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "key_encryptsession_pk", "(char *,netobj *,des_block *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "l64a", "(long)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "la_objopen", "(link_map *,Lmid_t,uintptr_t *)", "", "Argument[*0].Field[**l_libname].Field[*name]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "la_symbind64", "(Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *)", "", "Argument[*0].Field[*st_value]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "la_symbind64", "(Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "la_version", "(unsigned int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "la_x86_64_gnu_pltenter", "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *)", "", "Argument[*0].Field[*st_value]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "la_x86_64_gnu_pltenter", "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "la_x86_64_gnu_pltenter", "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "la_x86_64_gnu_pltenter", "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "la_x86_64_gnu_pltexit", "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "la_x86_64_gnu_pltexit", "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ldiv", "(long,long)", "", "Argument[0]", "ReturnValue.Field[*quot]", "taint", "dfc-generated"] + - ["", "", True, "ldiv", "(long,long)", "", "Argument[0]", "ReturnValue.Field[*rem]", "taint", "dfc-generated"] + - ["", "", True, "ldiv", "(long,long)", "", "Argument[1]", "ReturnValue.Field[*quot]", "taint", "dfc-generated"] + - ["", "", True, "ldiv", "(long,long)", "", "Argument[1]", "ReturnValue.Field[*rem]", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lfind", "(const void *,const void *,size_t *,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "llabs", "(long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "lldiv", "(long long,long long)", "", "Argument[0]", "ReturnValue.Field[*quot]", "taint", "dfc-generated"] + - ["", "", True, "lldiv", "(long long,long long)", "", "Argument[0]", "ReturnValue.Field[*rem]", "taint", "dfc-generated"] + - ["", "", True, "lldiv", "(long long,long long)", "", "Argument[1]", "ReturnValue.Field[*quot]", "taint", "dfc-generated"] + - ["", "", True, "lldiv", "(long long,long long)", "", "Argument[1]", "ReturnValue.Field[*rem]", "taint", "dfc-generated"] + - ["", "", True, "load_locale", "(int,const char *,const char *,const charmap_t *,localedef_t *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "load_locale", "(int,const char *,const char *,const charmap_t *,localedef_t *)", "", "Argument[*2]", "ReturnValue[*].Field[**repertoire_name]", "value", "dfc-generated"] + - ["", "", True, "load_locale", "(int,const char *,const char *,const charmap_t *,localedef_t *)", "", "Argument[0]", "ReturnValue[*].Field[*categories].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "load_locale", "(int,const char *,const char *,const charmap_t *,localedef_t *)", "", "Argument[0]", "ReturnValue[*].Field[*needed]", "taint", "dfc-generated"] + - ["", "", True, "load_locale", "(int,const char *,const char *,const charmap_t *,localedef_t *)", "", "Argument[1]", "ReturnValue[*].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "load_locale", "(int,const char *,const char *,const charmap_t *,localedef_t *)", "", "Argument[2]", "ReturnValue[*].Field[*repertoire_name]", "value", "dfc-generated"] + - ["", "", True, "localtime", "(const time_t *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "localtime", "(const time_t *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "locfile_hash", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "locfile_hash", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "locfile_hash", "(const char *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "locfile_hash", "(const char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "locfile_hash", "(const char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "locfile_hash", "(const char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[*0]", "ReturnValue[*].Field[**fp]", "value", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[*0]", "ReturnValue[*].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[*1]", "ReturnValue[*].Field[**fname]", "value", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[0]", "ReturnValue[*].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[0]", "ReturnValue[*].Field[*fp]", "value", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[1]", "ReturnValue[*].Field[**fname]", "taint", "dfc-generated"] + - ["", "", True, "lr_create", "(FILE *,const char *,kw_hash_fct_t)", "", "Argument[2]", "ReturnValue[*].Field[*hash_fct]", "value", "dfc-generated"] + - ["", "", True, "lr_eof", "(linereader *)", "", "Argument[*0].Field[*bufact]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[*0]", "ReturnValue[*].Field[**fname]", "value", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[*0]", "ReturnValue[*].Field[**fp]", "taint", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[*0]", "ReturnValue[*].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[0]", "ReturnValue[*].Field[**fname]", "taint", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[0]", "ReturnValue[*].Field[**fp]", "taint", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[0]", "ReturnValue[*].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "lr_open", "(const char *,kw_hash_fct_t)", "", "Argument[1]", "ReturnValue[*].Field[*hash_fct]", "value", "dfc-generated"] + - ["", "", True, "lr_token", "(linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "lrand48_r", "(drand48_data *,drand48_data *__restrict__,long *,long *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[**0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "lsearch", "(const void *,void *,size_t *,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "malloc", "(size_t)", "", "Argument[0]", "ReturnValue[*].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "malloc_usable_size", "(void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "malloc_usable_size", "(void *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "mblen", "(const char *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "mbrlen", "(const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "mbrlen", "(const char *__restrict__,size_t,mbstate_t *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "mbrtoc16", "(char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)", "", "Argument[*3].Field[*__value].Union[*(unnamed class/struct/union)]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "mbrtoc16", "(char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "mbrtoc8", "(char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "mbstowcs", "(wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "mbtowc", "(wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "measurement_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "mempool_alloc", "(database_dyn *,size_t,int)", "", "Argument[1]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "mempool_alloc", "(database_dyn *,size_t,int)", "", "Argument[1]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "messages_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "mkdtemp", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "mkdtemp", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "mktime", "(tm *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "monetary_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "mrand48_r", "(drand48_data *,drand48_data *__restrict__,long *,long *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "name_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "netname2host", "(const char *,char *,const int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "netname2host", "(const char *,char *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "new_glibc_hwcaps_subdirectory", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**name].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "new_glibc_hwcaps_subdirectory", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**name].Field[*string]", "value", "dfc-generated"] + - ["", "", True, "new_glibc_hwcaps_subdirectory", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[*name]", "taint", "dfc-generated"] + - ["", "", True, "new_glibc_hwcaps_subdirectory", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "new_glibc_hwcaps_subdirectory", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name].Field[*string]", "taint", "dfc-generated"] + - ["", "", True, "new_glibc_hwcaps_subdirectory", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[*name]", "taint", "dfc-generated"] + - ["", "", True, "next_prime", "(unsigned long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "nis_clone_directory", "(const directory_obj *,directory_obj *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "nis_clone_directory", "(const directory_obj *,directory_obj *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nis_clone_object", "(const nis_object *,nis_object *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "nis_clone_object", "(const nis_object *,nis_object *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nis_clone_result", "(const nis_result *,nis_result *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "nis_clone_result", "(const nis_result *,nis_result *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nis_domain_of", "(const_nis_name)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_domain_of", "(const_nis_name)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_domain_of_r", "(const_nis_name,char *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "nis_domain_of_r", "(const_nis_name,char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_domain_of_r", "(const_nis_name,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "nis_domain_of_r", "(const_nis_name,char *,size_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "nis_domain_of_r", "(const_nis_name,char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_domain_of_r", "(const_nis_name,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nis_freeservlist", "(nis_server **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "nis_getnames", "(const_nis_name)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "nis_getnames", "(const_nis_name)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "nis_leaf_of_r", "(const_nis_name,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "nis_leaf_of_r", "(const_nis_name,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nis_lookup", "(const_nis_name,const unsigned int,unsigned int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "nis_name_of_r", "(const_nis_name,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "nis_name_of_r", "(const_nis_name,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nis_print_result", "(const nis_result *)", "", "Argument[*0].Field[*objects].Field[*objects_val]", "Argument[*0].Field[*objects].Field[**objects_val]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperrno", "(const nis_error)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror", "(const nis_error,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror", "(const nis_error,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror", "(const nis_error,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nis_sperror_r", "(const nis_error,const char *,char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "nl_langinfo", "(nl_item)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "nrand48", "(unsigned short[3])", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "nrand48", "(unsigned short[3])", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "nrand48", "(unsigned short[3])", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_datetosecs", "(const char *,int *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_datetosecs", "(const char *,int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_datetosecs", "(const char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_format_ttl", "(u_long,unsigned long,char *,size_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_format_ttl", "(u_long,unsigned long,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_format_ttl", "(u_long,unsigned long,char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_get16", "(const u_char *,const unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_get16", "(const u_char *,const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_get32", "(const u_char *,const unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_get32", "(const u_char *,const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_initparse", "(const u_char *,const unsigned char *,int,ns_msg *)", "", "Argument[1]", "Argument[*2].Field[**_eom]", "taint", "dfc-generated"] + - ["", "", True, "ns_initparse", "(const u_char *,const unsigned char *,int,ns_msg *)", "", "Argument[1]", "Argument[*2].Field[*_eom]", "taint", "dfc-generated"] + - ["", "", True, "ns_makecanon", "(const char *,char *,size_t)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ns_makecanon", "(const char *,char *,size_t)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_msg_getflag", "(ns_msg,int)", "", "Argument[0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_name_ntol", "(const u_char *,const unsigned char *,u_char *,unsigned char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_name_rollback", "(const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ns_name_rollback", "(const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ns_name_rollback", "(const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_parse_ttl", "(const char *,u_long *,unsigned long *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_parse_ttl", "(const char *,u_long *,unsigned long *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_parserr", "(ns_msg *,ns_sect,int,ns_rr *)", "", "Argument[*3].Field[*rdlength]", "Argument[*0].Field[**_msg_ptr]", "taint", "dfc-generated"] + - ["", "", True, "ns_parserr", "(ns_msg *,ns_sect,int,ns_rr *)", "", "Argument[*3].Field[*rdlength]", "Argument[*0].Field[*_msg_ptr]", "taint", "dfc-generated"] + - ["", "", True, "ns_parserr", "(ns_msg *,ns_sect,int,ns_rr *)", "", "Argument[2]", "Argument[*0].Field[*_rrnum]", "value", "dfc-generated"] + - ["", "", True, "ns_put16", "(u_int,unsigned int,u_char *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_put32", "(u_long,unsigned long,u_char *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ns_skiprr", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_skiprr", "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrr", "(const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrr", "(const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[*2]", "Argument[*10]", "value", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[*6]", "Argument[*10]", "value", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[3]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[4]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[5]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[6]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ns_sprintrrf", "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)", "", "Argument[7]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "nscd_parse_file", "(const char *,database_dyn[5])", "", "Argument[*1].Field[*suggested_module]", "Argument[*1].Field[*max_db_size]", "taint", "dfc-generated"] + - ["", "", True, "numeric_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "obstack_free", "(obstack *,void *)", "", "Argument[*1]", "Argument[*0].Field[**next_free]", "value", "dfc-generated"] + - ["", "", True, "obstack_free", "(obstack *,void *)", "", "Argument[1]", "Argument[*0].Field[*next_free]", "value", "dfc-generated"] + - ["", "", True, "paper_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "passwd2des_internal", "(char *,char *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "passwd2des_internal", "(char *,char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "passwd2des_internal", "(char *,char *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "passwd2des_internal", "(char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "pmap_getmaps", "(sockaddr_in *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "pmap_getport", "(sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "pmap_rmtcall", "(sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getcgroup_np", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__)", "", "Argument[*0].Field[*__cgroup]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getflags", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,short *,short *__restrict__)", "", "Argument[*0].Field[*__flags]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getpgroup", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,pid_t *,pid_t *__restrict__)", "", "Argument[*0].Field[*__pgrp]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getschedparam", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sched_param *,sched_param *__restrict__)", "", "Argument[*0].Field[*__sp]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getschedpolicy", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__)", "", "Argument[*0].Field[*__policy]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getsigdefault", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__)", "", "Argument[*0].Field[*__sd]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_getsigmask", "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__)", "", "Argument[*0].Field[*__ss]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_setcgroup_np", "(posix_spawnattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*__cgroup]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_setpgroup", "(posix_spawnattr_t *,pid_t)", "", "Argument[1]", "Argument[*0].Field[*__pgrp]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_setschedparam", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__)", "", "Argument[*1]", "Argument[*0].Field[*__sp]", "value", "dfc-generated"] + - ["", "", True, "posix_spawnattr_setschedparam", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__)", "", "Argument[1]", "Argument[*0].Field[*__sp]", "taint", "dfc-generated"] + - ["", "", True, "posix_spawnattr_setschedparam", "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "posix_spawnattr_setschedpolicy", "(posix_spawnattr_t *,int)", "", "Argument[1]", "Argument[*0].Field[*__policy]", "value", "dfc-generated"] + - ["", "", True, "ppoll", "(pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "process_elf32_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[*5]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "process_elf32_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[5]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "process_elf32_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "process_elf64_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[*5]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "process_elf64_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[5]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "process_elf64_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "process_elf_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[*5]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "process_elf_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[5]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "process_elf_file", "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "process_file", "(const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *)", "", "Argument[*2]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "process_file", "(const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "prune_cache", "(database_dyn *,time_t,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "pthread_attr_setsigmask_np", "(pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *)", "", "Argument[*1]", "Argument[*0].Field[**extension].Field[*sigmask]", "value", "dfc-generated"] + - ["", "", True, "pthread_attr_setsigmask_np", "(pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *)", "", "Argument[1]", "Argument[*0].Field[**extension].Field[*sigmask]", "taint", "dfc-generated"] + - ["", "", True, "pthread_attr_setsigmask_np", "(pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "putc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "putgrent", "(const group *,const group *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "putpwent", "(const passwd *,const passwd *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "putsgent", "(const sgrp *,FILE *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "putspent", "(const spwd *,FILE *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "pututxline", "(const utmpx *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "pututxline", "(const utmpx *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "putwc", "(wchar_t,FILE *,__FILE *)", "", "Argument[0]", "Argument[*1].Field[**_wide_data].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "putwc_unlocked", "(wchar_t,FILE *,__FILE *)", "", "Argument[0]", "Argument[*1].Field[**_wide_data].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "qsort", "(void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rand_r", "(unsigned int *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "rand_r", "(unsigned int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rand_r", "(unsigned int *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "rcmd", "(char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rcmd", "(char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "rcmd_af", "(char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rcmd_af", "(char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "readdgetnetgrent", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "readdgetnetgrent", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "readdgrbygid", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "readdgrbygid", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "readdgrbygid", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "readdgrbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "readdgrbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "readdgrbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "readdhstai", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "readdhstai", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "readdhstai", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "readdhstbyaddr", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "readdhstbyaddr", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "readdhstbyaddr", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "readdhstbyaddrv6", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "readdhstbyaddrv6", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "readdhstbyaddrv6", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "readdhstbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "readdhstbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "readdhstbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "readdhstbynamev6", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "readdhstbynamev6", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "readdhstbynamev6", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "readdinitgroups", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "readdinnetgr", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "readdinnetgr", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "readdinnetgr", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "readdpwbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "readdpwbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "readdpwbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "readdpwbyuid", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*data_size]", "taint", "dfc-generated"] + - ["", "", True, "readdpwbyuid", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*1].Field[*len]", "Argument[*0].Field[**head].Field[*first_free]", "taint", "dfc-generated"] + - ["", "", True, "readdpwbyuid", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "readdservbyname", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "readdservbyport", "(database_dyn *,hashentry *,datahead *)", "", "Argument[*2].Field[*timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "register_traced_file", "(size_t,traced_file *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "repeat_allocate", "(const void *,size_t,size_t,bool)", "", "Argument[*0]", "ReturnValue.Field[**start]", "value", "dfc-generated"] + - ["", "", True, "repeat_allocate", "(const void *,size_t,size_t,bool)", "", "Argument[0]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "repeat_allocate", "(const void *,size_t,size_t,bool)", "", "Argument[1]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "repeat_allocate", "(const void *,size_t,size_t,bool)", "", "Argument[2]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "repertoire_find_seq", "(const repertoire_t *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "repertoire_find_seq", "(const repertoire_t *,uint32_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "repertoire_find_symbol", "(const repertoire_t *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "repertoire_find_symbol", "(const repertoire_t *,uint32_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "repertoire_find_value", "(const repertoire_t *,const char *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "repertoire_find_value", "(const repertoire_t *,const char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "repertoire_find_value", "(const repertoire_t *,const char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "repertoire_read", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "repertoire_read", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyaddr", "(const void *,socklen_t,int)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "res_gethostbyaddr", "(const void *,socklen_t,int)", "", "Argument[*0]", "ReturnValue[*].Field[**h_name]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyaddr", "(const void *,socklen_t,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyaddr", "(const void *,socklen_t,int)", "", "Argument[0]", "ReturnValue[*].Field[**h_name]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyaddr", "(const void *,socklen_t,int)", "", "Argument[1]", "ReturnValue[*].Field[*h_length]", "value", "dfc-generated"] + - ["", "", True, "res_gethostbyaddr", "(const void *,socklen_t,int)", "", "Argument[2]", "ReturnValue[*].Field[*h_addrtype]", "value", "dfc-generated"] + - ["", "", True, "res_gethostbyname2", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyname2", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**h_name]", "value", "dfc-generated"] + - ["", "", True, "res_gethostbyname2", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyname2", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**h_name]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyname", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyname", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**h_name]", "value", "dfc-generated"] + - ["", "", True, "res_gethostbyname", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[***h_addr_list]", "taint", "dfc-generated"] + - ["", "", True, "res_gethostbyname", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**h_name]", "taint", "dfc-generated"] + - ["", "", True, "resolv_response_context_duplicate", "(const resolv_response_context *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "resolv_response_context_duplicate", "(const resolv_response_context *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "rexec", "(char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rexec", "(char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "rexec_af", "(char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rexec_af", "(char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "rresvport", "(int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "rresvport_af", "(int *,sa_family_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ruserpass", "(const char *,const char **,const char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ruserpass", "(const char *,const char **,const char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "seekdir", "(DIR *,long)", "", "Argument[1]", "Argument[*0].Field[*filepos]", "value", "dfc-generated"] + - ["", "", True, "setlocale", "(int,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "setlocale", "(int,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "setlocale", "(int,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "setlocale", "(int,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "setlocale", "(int,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "setup_thread", "(database_dyn *)", "", "Argument[*0].Field[**head].Field[*nscd_certainly_running]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sgetsgent", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sgetsgent", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sgetspent", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sgetspent", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sigabbrev_np", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sigaddset", "(sigset_t *,int)", "", "Argument[1]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "sigandset", "(sigset_t *,const sigset_t *,const sigset_t *)", "", "Argument[*1].Field[*__val]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "sigandset", "(sigset_t *,const sigset_t *,const sigset_t *)", "", "Argument[*2].Field[*__val]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "sigdelset", "(sigset_t *,int)", "", "Argument[1]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "sigorset", "(sigset_t *,const sigset_t *,const sigset_t *)", "", "Argument[*1].Field[*__val]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "sigorset", "(sigset_t *,const sigset_t *,const sigset_t *)", "", "Argument[*2].Field[*__val]", "Argument[*0].Field[*__val]", "taint", "dfc-generated"] + - ["", "", True, "step", "(const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "strerrorname_np", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "strerrorname_np", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "strfromd", "(char *,size_t,const char *,double)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfromd", "(char *,size_t,const char *,double)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfromd", "(char *,size_t,const char *,double)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "strfromf128", "(char *,size_t,const char *,_Float128)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfromf128", "(char *,size_t,const char *,_Float128)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfromf128", "(char *,size_t,const char *,_Float128)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "strfromf", "(char *,size_t,const char *,float)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfromf", "(char *,size_t,const char *,float)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfromf", "(char *,size_t,const char *,float)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "strfroml", "(char *,size_t,const char *,long double)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfroml", "(char *,size_t,const char *,long double)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfroml", "(char *,size_t,const char *,long double)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "strfry", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "strfry", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "strfry", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "strfry", "(char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "stringtable_add", "(stringtable *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "stringtable_finalize", "(stringtable *,stringtable_finalized *)", "", "Argument[*0].Field[***entries].Field[**string]", "Argument[*1].Field[**strings]", "value", "dfc-generated"] + - ["", "", True, "stringtable_finalize", "(stringtable *,stringtable_finalized *)", "", "Argument[*0].Field[***entries].Field[*string]", "Argument[*1].Field[**strings]", "value", "dfc-generated"] + - ["", "", True, "strptime", "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "strptime", "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "strptime", "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "strtabadd", "(Strtab *,const char *,size_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "strtabfinalize", "(Strtab *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "strtaboffset", "(Strent *)", "", "Argument[*0].Field[*offset]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "strtof128", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "strtof128", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "strtof128", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "strtof128", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "strtof128", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "strtold", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "strtold", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "strtold", "(const char *,const char *__restrict__,char **,char **__restrict__)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate", "(const void *,size_t,size_t)", "", "Argument[*0]", "ReturnValue.Field[**start]", "value", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate", "(const void *,size_t,size_t)", "", "Argument[0]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate", "(const void *,size_t,size_t)", "", "Argument[1]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate", "(const void *,size_t,size_t)", "", "Argument[2]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate_shared", "(const void *,size_t,size_t)", "", "Argument[*0]", "ReturnValue.Field[**start]", "value", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate_shared", "(const void *,size_t,size_t)", "", "Argument[0]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate_shared", "(const void *,size_t,size_t)", "", "Argument[1]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "support_blob_repeat_allocate_shared", "(const void *,size_t,size_t)", "", "Argument[2]", "ReturnValue.Field[**start]", "taint", "dfc-generated"] + - ["", "", True, "support_copy_file_range", "(int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "support_copy_file_range", "(int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "support_descriptors_dump", "(support_descriptors *,const char *,FILE *)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "support_descriptors_dump", "(support_descriptors *,const char *,FILE *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "support_format_addrinfo", "(addrinfo *,int)", "", "Argument[*0].Field[**ai_next].Field[**ai_next]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "support_format_addrinfo", "(addrinfo *,int)", "", "Argument[*0].Field[**ai_next]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_cast_internal", "(fuse_in_header *,uint32_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_cast_internal", "(fuse_in_header *,uint32_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "support_fuse_cast_internal", "(fuse_in_header *,uint32_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "support_fuse_cast_name_internal", "(fuse_in_header *,uint32_t,size_t,char **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_cast_name_internal", "(fuse_in_header *,uint32_t,size_t,char **)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_cast_name_internal", "(fuse_in_header *,uint32_t,size_t,char **)", "", "Argument[2]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "support_fuse_cast_name_internal", "(fuse_in_header *,uint32_t,size_t,char **)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "support_fuse_dirstream_add", "(support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *)", "", "Argument[*4]", "Argument[*0].Field[**readdir_buffer]", "taint", "dfc-generated"] + - ["", "", True, "support_fuse_dirstream_add", "(support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *)", "", "Argument[1]", "Argument[*0].Field[**readdir_buffer].Field[*ino]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_dirstream_add", "(support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *)", "", "Argument[2]", "Argument[*0].Field[**readdir_buffer].Field[*off]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_dirstream_add", "(support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *)", "", "Argument[3]", "Argument[*0].Field[**readdir_buffer].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_dirstream_add", "(support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *)", "", "Argument[4]", "Argument[*0].Field[**readdir_buffer]", "taint", "dfc-generated"] + - ["", "", True, "support_fuse_filter_forget", "(support_fuse *,bool)", "", "Argument[1]", "Argument[*0].Field[*filter_forget]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_handle_directory", "(support_fuse *)", "", "Argument[*0].Field[*prepared]", "Argument[*0].Field[**prepared_pointer]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_handle_mountpoint", "(support_fuse *)", "", "Argument[*0].Field[*prepared]", "Argument[*0].Field[**prepared_pointer]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_mountpoint", "(support_fuse *)", "", "Argument[*0].Field[**mountpoint]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_mountpoint", "(support_fuse *)", "", "Argument[*0].Field[*mountpoint]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "support_fuse_next", "(support_fuse *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "support_fuse_next", "(support_fuse *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "support_fuse_prepare_attr", "(support_fuse *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "support_fuse_prepare_create", "(support_fuse *,uint64_t,fuse_entry_out **,fuse_open_out **)", "", "Argument[*0].Field[*prepared]", "Argument[*0].Field[**prepared_pointer]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_prepare_entry", "(support_fuse *,uint64_t)", "", "Argument[1]", "ReturnValue[*].Field[*attr].Field[*ino]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_prepare_entry", "(support_fuse *,uint64_t)", "", "Argument[1]", "ReturnValue[*].Field[*nodeid]", "value", "dfc-generated"] + - ["", "", True, "support_fuse_prepare_readdir", "(support_fuse *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "support_fuse_prepare_readdir", "(support_fuse *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "support_next_to_fault_allocate", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "support_next_to_fault_allocate_before", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "support_readdir_check", "(const char *,void *,int)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "support_readdir_check", "(const char *,void *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "support_readdir_check", "(const char *,void *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "support_readdir_r_check", "(const char *,int,void *,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "support_report_failure", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "support_shared_free", "(void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "support_stack_alloc", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "support_timespec_normalize", "(timespec)", "", "Argument[0].Field[*tv_nsec]", "ReturnValue.Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "svcfd_create", "(int,u_int,u_int)", "", "Argument[0]", "ReturnValue[*].Field[*xp_sock]", "value", "dfc-generated"] + - ["", "", True, "svctcp_create", "(int,u_int,u_int)", "", "Argument[0]", "ReturnValue[*].Field[*xp_sock]", "value", "dfc-generated"] + - ["", "", True, "svctcp_create", "(int,u_int,u_int)", "", "Argument[1]", "ReturnValue[*].Field[**xp_p1].Field[*sendsize]", "value", "dfc-generated"] + - ["", "", True, "svctcp_create", "(int,u_int,u_int)", "", "Argument[2]", "ReturnValue[*].Field[**xp_p1].Field[*recvsize]", "value", "dfc-generated"] + - ["", "", True, "svcudp_bufcreate", "(int,u_int,u_int)", "", "Argument[0]", "ReturnValue[*].Field[*xp_sock]", "value", "dfc-generated"] + - ["", "", True, "svcudp_bufcreate", "(int,u_int,u_int)", "", "Argument[1]", "ReturnValue[*].Field[**xp_p2].Field[*su_iosz]", "taint", "dfc-generated"] + - ["", "", True, "svcudp_bufcreate", "(int,u_int,u_int)", "", "Argument[2]", "ReturnValue[*].Field[**xp_p2].Field[*su_iosz]", "taint", "dfc-generated"] + - ["", "", True, "svcudp_create", "(int)", "", "Argument[0]", "ReturnValue[*].Field[*xp_sock]", "value", "dfc-generated"] + - ["", "", True, "svcunix_create", "(int,u_int,u_int,char *)", "", "Argument[0]", "ReturnValue[*].Field[*xp_sock]", "value", "dfc-generated"] + - ["", "", True, "svcunix_create", "(int,u_int,u_int,char *)", "", "Argument[1]", "ReturnValue[*].Field[**xp_p1].Field[*sendsize]", "value", "dfc-generated"] + - ["", "", True, "svcunix_create", "(int,u_int,u_int,char *)", "", "Argument[2]", "ReturnValue[*].Field[**xp_p1].Field[*recvsize]", "value", "dfc-generated"] + - ["", "", True, "svcunixfd_create", "(int,u_int,u_int)", "", "Argument[0]", "ReturnValue[*].Field[*xp_sock]", "value", "dfc-generated"] + - ["", "", True, "td_ta_event_addr", "(const td_thragent_t *,td_event_e,td_notify_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "td_ta_event_getmsg", "(const td_thragent_t *,td_event_msg_t *)", "", "Argument[0]", "Argument[*1].Field[**th_p].Field[*th_ta_p]", "value", "dfc-generated"] + - ["", "", True, "td_ta_get_ph", "(const td_thragent_t *,ps_prochandle **)", "", "Argument[*0].Field[**ph]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "td_ta_get_ph", "(const td_thragent_t *,ps_prochandle **)", "", "Argument[*0].Field[*ph]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "td_ta_map_id2thr", "(const td_thragent_t *,pthread_t,td_thrhandle_t *)", "", "Argument[*0]", "Argument[*2].Field[**th_ta_p]", "value", "dfc-generated"] + - ["", "", True, "td_ta_map_id2thr", "(const td_thragent_t *,pthread_t,td_thrhandle_t *)", "", "Argument[0]", "Argument[*2].Field[*th_ta_p]", "value", "dfc-generated"] + - ["", "", True, "td_ta_map_id2thr", "(const td_thragent_t *,pthread_t,td_thrhandle_t *)", "", "Argument[1]", "Argument[*2].Field[*th_unique]", "value", "dfc-generated"] + - ["", "", True, "td_ta_map_lwp2thr", "(const td_thragent_t *,lwpid_t,td_thrhandle_t *)", "", "Argument[0]", "Argument[*2].Field[*th_ta_p]", "value", "dfc-generated"] + - ["", "", True, "td_ta_new", "(ps_prochandle *,td_thragent_t **)", "", "Argument[*0]", "Argument[**1].Field[**ph]", "value", "dfc-generated"] + - ["", "", True, "td_ta_new", "(ps_prochandle *,td_thragent_t **)", "", "Argument[0]", "Argument[**1].Field[*ph]", "value", "dfc-generated"] + - ["", "", True, "td_ta_new", "(ps_prochandle *,td_thragent_t **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_event_getmsg", "(const td_thrhandle_t *,td_event_msg_t *)", "", "Argument[0]", "Argument[*1].Field[*th_p]", "value", "dfc-generated"] + - ["", "", True, "td_thr_get_info", "(const td_thrhandle_t *,td_thrinfo_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "td_thr_tls_get_addr", "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tls_get_addr", "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tls_get_addr", "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)", "", "Argument[2]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tls_get_addr", "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tls_get_addr", "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tls_get_addr", "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tlsbase", "(const td_thrhandle_t *,unsigned long,psaddr_t *)", "", "Argument[1]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tlsbase", "(const td_thrhandle_t *,unsigned long,psaddr_t *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "td_thr_tsd", "(const td_thrhandle_t *,const thread_key_t,void **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "td_thr_tsd", "(const td_thrhandle_t *,const thread_key_t,void **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "td_thr_tsd", "(const td_thrhandle_t *,const thread_key_t,void **)", "", "Argument[1]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "td_thr_tsd", "(const td_thrhandle_t *,const thread_key_t,void **)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "td_thr_tsd", "(const td_thrhandle_t *,const thread_key_t,void **)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "telephone_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "telldir", "(DIR *)", "", "Argument[*0].Field[*filepos]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tempnam", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "tempnam", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "tempnam", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "tempnam", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "time_read", "(linereader *,localedef_t *,const charmap_t *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "timegm", "(tm *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "timespec_add", "(timespec,timespec)", "", "Argument[0].Field[*tv_nsec]", "ReturnValue.Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "timespec_add", "(timespec,timespec)", "", "Argument[0].Field[*tv_sec]", "ReturnValue.Field[*tv_sec]", "value", "dfc-generated"] + - ["", "", True, "timespec_add", "(timespec,timespec)", "", "Argument[1].Field[*tv_nsec]", "ReturnValue.Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "timespec_sub", "(timespec,timespec)", "", "Argument[0].Field[*tv_nsec]", "ReturnValue.Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "timespec_sub", "(timespec,timespec)", "", "Argument[0].Field[*tv_sec]", "ReturnValue.Field[*tv_sec]", "value", "dfc-generated"] + - ["", "", True, "timespec_sub", "(timespec,timespec)", "", "Argument[1].Field[*tv_nsec]", "ReturnValue.Field[*tv_nsec]", "taint", "dfc-generated"] + - ["", "", True, "tmpnam", "(char[20])", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "tmpnam", "(char[20])", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tmpnam", "(char[20])", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "tmpnam_r", "(char[20])", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "tmpnam_r", "(char[20])", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "toascii", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tolower", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "toupper", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "uabs", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ulabs", "(long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ullabs", "(long long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ungetc", "(int,FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ungetwc", "(wint_t,FILE *,__FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "user2netname", "(char[256],const uid_t,const char *)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "user2netname", "(char[256],const uid_t,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "user2netname", "(char[256],const uid_t,const char *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "verr", "(int,const char *,__gnuc_va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "verrx", "(int,const char *,__gnuc_va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "vwarn", "(const char *,__gnuc_va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "vwarnx", "(const char *,__gnuc_va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "wcsftime", "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "wcspbrk", "(const wchar_t *,const wchar_t *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "wcspbrk", "(const wchar_t *,const wchar_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "wcspbrk", "(const wchar_t *,const wchar_t *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "wcsstr", "(const wchar_t *,const wchar_t *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "wcsstr", "(const wchar_t *,const wchar_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "wcsstr", "(const wchar_t *,const wchar_t *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "wcstod", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "wcstod", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "wcstod", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "wcstod", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "wcstod", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "wcstof128", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "wcstof128", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "wcstof128", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "wcstof128", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "wcstof128", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "wcstof", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "wcstof", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "ReturnValue.Field[*exponent]", "taint", "dfc-generated"] + - ["", "", True, "wcstof", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "ReturnValue.Field[*mantissa]", "taint", "dfc-generated"] + - ["", "", True, "wcstof", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "wcstold", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "wcstold", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "wcstold", "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "wcstombs", "(char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "wcswidth", "(const wchar_t *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "wcswidth", "(const wchar_t *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "wctob", "(wint_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "wcwidth", "(wchar_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "wordexp", "(const char *,wordexp_t *,int)", "", "Argument[*0]", "Argument[*1].Field[***we_wordv]", "value", "dfc-generated"] + - ["", "", True, "wordexp", "(const char *,wordexp_t *,int)", "", "Argument[0]", "Argument[*1].Field[***we_wordv]", "taint", "dfc-generated"] + - ["", "", True, "wordexp", "(const char *,wordexp_t *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "writeall", "(int,const void *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "xaccept4", "(int,sockaddr *,socklen_t *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "xaccept", "(int,sockaddr *,socklen_t *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "xalloc_sigstack", "(size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "xcopy_file_range", "(int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xcopy_file_range", "(int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "xdecrypt", "(char *,char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xdecrypt", "(char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_array", "(XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_array", "(XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_array", "(XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_array", "(XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "xdr_array", "(XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t)", "", "Argument[4]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_bool", "(XDR *,bool_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_bytes", "(XDR *,char **,u_int *,u_int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_bytes", "(XDR *,char **,u_int *,u_int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "xdr_char", "(XDR *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_domainname", "(XDR *,domainname *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_enum", "(XDR *,enum_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_float", "(XDR *,float *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_hyper", "(XDR *,quad_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_int16_t", "(XDR *,int16_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_int64_t", "(XDR *,int64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_int8_t", "(XDR *,int8_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_int", "(XDR *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_keystatus", "(XDR *,keystatus *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_long", "(XDR *,long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_longlong_t", "(XDR *,quad_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_mapname", "(XDR *,mapname *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_netnamestr", "(XDR *,netnamestr *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_obj_p", "(XDR *,obj_p *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_peername", "(XDR *,peername *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_pmaplist", "(XDR *,pmaplist **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_pointer", "(XDR *,char **,u_int,xdrproc_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_quad_t", "(XDR *,quad_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_reference", "(XDR *,caddr_t *,u_int,xdrproc_t)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_reference", "(XDR *,caddr_t *,u_int,xdrproc_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_reference", "(XDR *,caddr_t *,u_int,xdrproc_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_short", "(XDR *,short *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_string", "(XDR *,char **,u_int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_char", "(XDR *,u_char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_hyper", "(XDR *,u_quad_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_int", "(XDR *,u_int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_long", "(XDR *,u_long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_longlong_t", "(XDR *,u_quad_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_quad_t", "(XDR *,u_quad_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_u_short", "(XDR *,u_short *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_uint16_t", "(XDR *,uint16_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_uint64_t", "(XDR *,uint64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_uint8_t", "(XDR *,uint8_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_union", "(XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_union", "(XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "xdr_wrapstring", "(XDR *,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_ypbind_resptype", "(XDR *,ypbind_resptype *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_yppush_status", "(XDR *,yppush_status *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_ypstat", "(XDR *,ypstat *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdr_ypxfrstat", "(XDR *,ypxfrstat *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xdrmem_create", "(XDR *,const caddr_t,u_int,xdr_op)", "", "Argument[*0].Field[**x_base]", "Argument[*0].Field[**x_private]", "value", "dfc-generated"] + - ["", "", True, "xdrmem_create", "(XDR *,const caddr_t,u_int,xdr_op)", "", "Argument[*0].Field[*x_base]", "Argument[*0].Field[*x_private]", "value", "dfc-generated"] + - ["", "", True, "xdrmem_create", "(XDR *,const caddr_t,u_int,xdr_op)", "", "Argument[*1]", "Argument[*0].Field[**x_base]", "value", "dfc-generated"] + - ["", "", True, "xdrmem_create", "(XDR *,const caddr_t,u_int,xdr_op)", "", "Argument[1]", "Argument[*0].Field[*x_base]", "value", "dfc-generated"] + - ["", "", True, "xdrmem_create", "(XDR *,const caddr_t,u_int,xdr_op)", "", "Argument[2]", "Argument[*0].Field[*x_handy]", "value", "dfc-generated"] + - ["", "", True, "xdrmem_create", "(XDR *,const caddr_t,u_int,xdr_op)", "", "Argument[3]", "Argument[*0].Field[*x_op]", "value", "dfc-generated"] + - ["", "", True, "xdrrec_create", "(XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**x_private].Field[**in_base]", "taint", "dfc-generated"] + - ["", "", True, "xdrrec_create", "(XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**x_private].Field[*in_base]", "taint", "dfc-generated"] + - ["", "", True, "xdrrec_create", "(XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**x_private].Field[*sendsize]", "taint", "dfc-generated"] + - ["", "", True, "xdrrec_create", "(XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[**x_private].Field[*recvsize]", "taint", "dfc-generated"] + - ["", "", True, "xdrstdio_create", "(XDR *,FILE *,xdr_op)", "", "Argument[*1]", "Argument[*0].Field[**x_private]", "value", "dfc-generated"] + - ["", "", True, "xdrstdio_create", "(XDR *,FILE *,xdr_op)", "", "Argument[1]", "Argument[*0].Field[*x_private]", "value", "dfc-generated"] + - ["", "", True, "xdrstdio_create", "(XDR *,FILE *,xdr_op)", "", "Argument[2]", "Argument[*0].Field[*x_op]", "value", "dfc-generated"] + - ["", "", True, "xencrypt", "(char *,char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xencrypt", "(char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xfgets", "(char *,int,FILE *)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xfgets", "(char *,int,FILE *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "xfgets", "(char *,int,FILE *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xfgets", "(char *,int,FILE *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "xfopen", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xfopen", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xfreopen", "(const char *,const char *,FILE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xfreopen", "(const char *,const char *,FILE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xget_sigstack_location", "(const void *,unsigned char **,size_t *)", "", "Argument[*0].Field[*alt_stack].Field[**ss_sp]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "xget_sigstack_location", "(const void *,unsigned char **,size_t *)", "", "Argument[*0].Field[*alt_stack].Field[*ss_size]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "xget_sigstack_location", "(const void *,unsigned char **,size_t *)", "", "Argument[*0].Field[*alt_stack].Field[*ss_sp]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "xgetline", "(char **,size_t *,FILE *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "xgetline", "(char **,size_t *,FILE *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "xgetline", "(char **,size_t *,FILE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xgetline", "(char **,size_t *,FILE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "xgetline", "(char **,size_t *,FILE *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xrealloc", "(void *,size_t)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "xrealloc", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "xrealloc", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "xrealloc", "(void *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "xrealloc", "(void *,size_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "xrealloc", "(void *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xsetlocale", "(int,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "xsetlocale", "(int,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "xsetlocale", "(int,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "xsetlocale", "(int,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xstrdup", "(char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "xstrdup", "(char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xstrdup", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "xstrdup", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xstrndup", "(const char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "xstrndup", "(const char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "xstrndup", "(const char *,size_t)", "", "Argument[1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[**4]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[*4]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[*5]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[5]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "yp_first", "(const char *,const char *,char **,int *,char **,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "yp_master", "(const char *,const char *,char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "yp_match", "(const char *,const char *,const char *,const int,char **,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "yp_match", "(const char *,const char *,const char *,const int,char **,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[**6]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[*6]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[*7]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[6]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[7]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "yp_next", "(const char *,const char *,const char *,const int,char **,int *,char **,int *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "ypprot_err", "(const int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "__pthread_cleanup_class", True, "__pthread_cleanup_class", "(..(*)(..),void *)", "", "Argument[**1]", "Argument[-1]", "taint", "df-generated"] + - ["", "__pthread_cleanup_class", True, "__pthread_cleanup_class", "(..(*)(..),void *)", "", "Argument[*1]", "Argument[-1]", "taint", "df-generated"] + - ["", "__pthread_cleanup_class", True, "__pthread_cleanup_class", "(..(*)(..),void *)", "", "Argument[0]", "Argument[-1]", "taint", "df-generated"] + - ["", "__pthread_cleanup_class", True, "__pthread_cleanup_class", "(..(*)(..),void *)", "", "Argument[1]", "Argument[-1]", "taint", "df-generated"] + - ["", "__pthread_cleanup_class", True, "__setdoit", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "df-generated"] diff --git a/cpp/ql/lib/ext/pthread.model.yml b/cpp/ql/lib/ext/pthread.model.yml new file mode 100644 index 000000000000..fcdb0c45d008 --- /dev/null +++ b/cpp/ql/lib/ext/pthread.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance + - ["", "", False, "pthread_create", "", "", "Argument[@3]", "Argument[2].Parameter[@0]", "value", "manual"] diff --git a/cpp/ql/lib/ext/std.thread.model.yml b/cpp/ql/lib/ext/std.thread.model.yml new file mode 100644 index 000000000000..77062fae3d00 --- /dev/null +++ b/cpp/ql/lib/ext/std.thread.model.yml @@ -0,0 +1,11 @@ +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance + - ["std", "thread", True, "thread", "", "", "Argument[*@1]", "Argument[0].Parameter[@0]", "value", "manual"] + - ["std", "thread", True, "thread", "", "", "Argument[*@2]", "Argument[0].Parameter[@1]", "value", "manual"] + - ["std", "thread", True, "thread", "", "", "Argument[*@3]", "Argument[0].Parameter[@2]", "value", "manual"] + - ["std", "thread", True, "thread", "", "", "Argument[*@4]", "Argument[0].Parameter[@3]", "value", "manual"] + - ["std", "thread", True, "thread", "", "", "Argument[*@5]", "Argument[0].Parameter[@4]", "value", "manual"] + \ No newline at end of file diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 7dc5feb8d2f9..a9191c3d0e7e 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 5.2.0 +version: 5.4.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/Concept.qll b/cpp/ql/lib/semmle/code/cpp/Concept.qll index 5d7cd96ee38a..1770c1965ed2 100644 --- a/cpp/ql/lib/semmle/code/cpp/Concept.qll +++ b/cpp/ql/lib/semmle/code/cpp/Concept.qll @@ -57,7 +57,9 @@ class RequiresExpr extends Expr, @requires_expr { /** * A C++ requirement in a requires expression. */ -class RequirementExpr extends Expr { } +class RequirementExpr extends Expr { + RequirementExpr() { this.getParent() instanceof RequiresExpr } +} /** * A C++ simple requirement in a requires expression. @@ -70,7 +72,6 @@ class RequirementExpr extends Expr { } */ class SimpleRequirementExpr extends RequirementExpr { SimpleRequirementExpr() { - this.getParent() instanceof RequiresExpr and not this instanceof TypeRequirementExpr and not this instanceof CompoundRequirementExpr and not this instanceof NestedRequirementExpr @@ -89,8 +90,6 @@ class SimpleRequirementExpr extends RequirementExpr { * with `T` a template parameter, then `typename T::a_field;` is a type requirement. */ class TypeRequirementExpr extends RequirementExpr, TypeName { - TypeRequirementExpr() { this.getParent() instanceof RequiresExpr } - override string getAPrimaryQlClass() { result = "TypeRequirementExpr" } } @@ -140,7 +139,7 @@ class CompoundRequirementExpr extends RequirementExpr, @compound_requirement { * with `T` a template parameter, then `requires std::is_same::value;` is * a nested requirement. */ -class NestedRequirementExpr extends Expr, @nested_requirement { +class NestedRequirementExpr extends RequirementExpr, @nested_requirement { override string toString() { result = "requires ..." } override string getAPrimaryQlClass() { result = "NestedRequirementExpr" } @@ -163,7 +162,7 @@ class NestedRequirementExpr extends Expr, @nested_requirement { * then `C` is a concept id expression that refers to * the concept `C`. */ -class ConceptIdExpr extends RequirementExpr, @concept_id { +class ConceptIdExpr extends Expr, @concept_id { override string toString() { result = this.getConcept().getName() + "<...>" or diff --git a/cpp/ql/lib/semmle/code/cpp/Function.qll b/cpp/ql/lib/semmle/code/cpp/Function.qll index cb3b00b64ade..8ddb07a868eb 100644 --- a/cpp/ql/lib/semmle/code/cpp/Function.qll +++ b/cpp/ql/lib/semmle/code/cpp/Function.qll @@ -282,9 +282,12 @@ class Function extends Declaration, ControlFlowNode, AccessHolder, @function { * definition, if possible.) */ override Location getLocation() { - if exists(this.getDefinition()) - then result = this.getDefinitionLocation() - else result = this.getADeclarationLocation() + if this instanceof BuiltInFunction + then result instanceof UnknownLocation // a dummy location for the built-in function + else + if exists(this.getDefinition()) + then result = this.getDefinitionLocation() + else result = this.getADeclarationLocation() } /** Gets a child declaration of this function. */ @@ -896,17 +899,9 @@ class FunctionTemplateSpecialization extends Function { * A GCC built-in function. For example: `__builtin___memcpy_chk`. */ class BuiltInFunction extends Function { - BuiltInFunction() { functions(underlyingElement(this), _, 6) } - - /** Gets a dummy location for the built-in function. */ - override Location getLocation() { - suppressUnusedThis(this) and - result instanceof UnknownDefaultLocation - } + BuiltInFunction() { builtin_functions(underlyingElement(this)) } } -private predicate suppressUnusedThis(Function f) { any() } - /** * A C++ user-defined literal [N4140 13.5.8]. */ diff --git a/cpp/ql/lib/semmle/code/cpp/Location.qll b/cpp/ql/lib/semmle/code/cpp/Location.qll index c7579f5710a7..8b0a78f91aa8 100644 --- a/cpp/ql/lib/semmle/code/cpp/Location.qll +++ b/cpp/ql/lib/semmle/code/cpp/Location.qll @@ -8,7 +8,7 @@ import semmle.code.cpp.File /** * A location of a C/C++ artifact. */ -class Location extends @location { +class Location extends @location_default { /** Gets the container corresponding to this location. */ pragma[nomagic] Container getContainer() { this.fullLocationInfo(result, _, _, _, _) } @@ -53,9 +53,7 @@ class Location extends @location { predicate fullLocationInfo( Container container, int startline, int startcolumn, int endline, int endcolumn ) { - locations_default(this, unresolveElement(container), startline, startcolumn, endline, endcolumn) or - locations_expr(this, unresolveElement(container), startline, startcolumn, endline, endcolumn) or - locations_stmt(this, unresolveElement(container), startline, startcolumn, endline, endcolumn) + locations_default(this, unresolveElement(container), startline, startcolumn, endline, endcolumn) } /** @@ -146,30 +144,32 @@ class Locatable extends Element { } * expressions, one for statements and one for other program elements. */ class UnknownLocation extends Location { - UnknownLocation() { this.getFile().getAbsolutePath() = "" } + UnknownLocation() { + this.getFile().getAbsolutePath() = "" and locations_default(this, _, 0, 0, 0, 0) + } } /** * A dummy location which is used when something doesn't have a location in * the source code but needs to have a `Location` associated with it. + * + * DEPRECATED: use `UnknownLocation` */ -class UnknownDefaultLocation extends UnknownLocation { - UnknownDefaultLocation() { locations_default(this, _, 0, 0, 0, 0) } -} +deprecated class UnknownDefaultLocation extends UnknownLocation { } /** * A dummy location which is used when an expression doesn't have a * location in the source code but needs to have a `Location` associated * with it. + * + * DEPRECATED: use `UnknownLocation` */ -class UnknownExprLocation extends UnknownLocation { - UnknownExprLocation() { locations_expr(this, _, 0, 0, 0, 0) } -} +deprecated class UnknownExprLocation extends UnknownLocation { } /** * A dummy location which is used when a statement doesn't have a location * in the source code but needs to have a `Location` associated with it. + * + * DEPRECATED: use `UnknownLocation` */ -class UnknownStmtLocation extends UnknownLocation { - UnknownStmtLocation() { locations_stmt(this, _, 0, 0, 0, 0) } -} +deprecated class UnknownStmtLocation extends UnknownLocation { } diff --git a/cpp/ql/lib/semmle/code/cpp/Macro.qll b/cpp/ql/lib/semmle/code/cpp/Macro.qll index bd916d4bc4e8..cbffc90d17c1 100644 --- a/cpp/ql/lib/semmle/code/cpp/Macro.qll +++ b/cpp/ql/lib/semmle/code/cpp/Macro.qll @@ -154,8 +154,9 @@ class MacroInvocation extends MacroAccess { * well. */ Locatable getAnAffectedElement() { - inmacroexpansion(unresolveElement(result), underlyingElement(this)) or - macrolocationbind(underlyingElement(this), result.getLocation()) + inmacroexpansion(unresolveElement(result), underlyingElement(this)) + or + macrolocationbind(underlyingElement(this), result.getLocation()) and this != result } /** @@ -259,7 +260,8 @@ predicate inMacroExpansion(Locatable element) { inmacroexpansion(unresolveElement(element), _) or macroLocation(element.getLocation()) and - not topLevelMacroAccess(element) + not topLevelMacroAccess(element) and + not element.getLocation() instanceof UnknownLocation } /** diff --git a/cpp/ql/lib/semmle/code/cpp/Namespace.qll b/cpp/ql/lib/semmle/code/cpp/Namespace.qll index b63beef3f4a0..b545f9381974 100644 --- a/cpp/ql/lib/semmle/code/cpp/Namespace.qll +++ b/cpp/ql/lib/semmle/code/cpp/Namespace.qll @@ -40,7 +40,7 @@ class Namespace extends NameQualifyingElement, @namespace { override Location getLocation() { if strictcount(this.getADeclarationEntry()) = 1 then result = this.getADeclarationEntry().getLocation() - else result instanceof UnknownDefaultLocation + else result instanceof UnknownLocation } /** Gets the simple name of this namespace. */ diff --git a/cpp/ql/lib/semmle/code/cpp/Specifier.qll b/cpp/ql/lib/semmle/code/cpp/Specifier.qll index 28ba21956561..f7af9501fb26 100644 --- a/cpp/ql/lib/semmle/code/cpp/Specifier.qll +++ b/cpp/ql/lib/semmle/code/cpp/Specifier.qll @@ -13,7 +13,7 @@ class Specifier extends Element, @specifier { /** Gets a dummy location for the specifier. */ override Location getLocation() { exists(this) and - result instanceof UnknownDefaultLocation + result instanceof UnknownLocation } override string getAPrimaryQlClass() { result = "Specifier" } diff --git a/cpp/ql/lib/semmle/code/cpp/TemplateParameter.qll b/cpp/ql/lib/semmle/code/cpp/TemplateParameter.qll index e4efb4e4636b..6ece9cb82a46 100644 --- a/cpp/ql/lib/semmle/code/cpp/TemplateParameter.qll +++ b/cpp/ql/lib/semmle/code/cpp/TemplateParameter.qll @@ -105,7 +105,7 @@ class AutoType extends TypeTemplateParameter { override string getAPrimaryQlClass() { result = "AutoType" } - override Location getLocation() { result instanceof UnknownDefaultLocation } + override Location getLocation() { result instanceof UnknownLocation } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/Type.qll b/cpp/ql/lib/semmle/code/cpp/Type.qll index f866d9f77e22..35b56882d7be 100644 --- a/cpp/ql/lib/semmle/code/cpp/Type.qll +++ b/cpp/ql/lib/semmle/code/cpp/Type.qll @@ -290,7 +290,7 @@ class Type extends Locatable, @type { */ Type stripType() { result = this } - override Location getLocation() { result instanceof UnknownDefaultLocation } + override Location getLocation() { result instanceof UnknownLocation } } /** @@ -858,6 +858,15 @@ private predicate floatingPointTypeMapping( or // __mfp8 kind = 62 and base = 2 and domain = TRealDomain() and realKind = 62 and extended = false + or + // _Complex __fp16 + kind = 64 and base = 2 and domain = TComplexDomain() and realKind = 54 and extended = false + or + // _Complex __bf16 + kind = 65 and base = 2 and domain = TComplexDomain() and realKind = 55 and extended = false + or + // _Complex std::float16_t + kind = 66 and base = 2 and domain = TComplexDomain() and realKind = 56 and extended = false } /** diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/SSA.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/SSA.qll index 1e0b39be1ac7..9c6069d4a0c5 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/SSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/SSA.qll @@ -15,6 +15,13 @@ class StandardSsa extends SsaHelper { } /** + * NOTE: If possible, prefer the SSA classes exposed by the new dataflow + * library: + * ``` + * import semmle.code.cpp.dataflow.new.DataFlow + * // use `DataFlow::Ssa::Definition` + * ``` + * * A definition of one or more SSA variables, including phi node definitions. * An _SSA variable_, as defined in the literature, is effectively the pair of * an `SsaDefinition d` and a `StackVariable v`, written `(d, v)` in this diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 456768081a11..b279c4965f33 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -229,6 +229,49 @@ private predicate summaryModel0( ) } +/** + * Holds if the given extension tuple `madId` should pretty-print as `model`. + * + * This predicate should only be used in tests. + */ +predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance + | + Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, madId) + | + model = + "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + + ext + "; " + output + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance + | + Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, + madId) + | + model = + "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + + ext + "; " + input + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance + | + Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, + provenance, madId) + | + model = + "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance + ) +} + /** * Holds if `input` is `input0`, but with all occurrences of `@` replaced * by `n` repetitions of `*` (and similarly for `output` and `output0`). diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll index 03c3e8a33714..24ae703697cf 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll @@ -504,6 +504,8 @@ class VacuousDestructorCall extends Expr, @vacuous_destructor_call { */ class ConstructorInit extends Expr, @ctorinit { override string getAPrimaryQlClass() { result = "ConstructorInit" } + + override string toString() { result = "constructor init" } } /** @@ -512,6 +514,8 @@ class ConstructorInit extends Expr, @ctorinit { */ class ConstructorBaseInit extends ConstructorInit, ConstructorCall { override string getAPrimaryQlClass() { result = "ConstructorBaseInit" } + + override string toString() { result = "call to " + this.getTarget().getName() } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll index 2b9fb2649d51..60e2635f338a 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll @@ -91,13 +91,13 @@ class Expr extends StmtParent, @expr { */ private Location getExprLocationOverride() { // Base case: the parent has a better location than `this`. - this.getDbLocation() instanceof UnknownExprLocation and + this.getDbLocation() instanceof UnknownLocation and result = this.getParent().(Expr).getDbLocation() and not result instanceof UnknownLocation or // Recursive case: the parent has a location override that's better than // what `this` has. - this.getDbLocation() instanceof UnknownExprLocation and + this.getDbLocation() instanceof UnknownLocation and result = this.getParent().(Expr).getExprLocationOverride() and not result instanceof UnknownLocation } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll index 1a4c777af35b..b5e899bf0aac 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowDispatch.qll @@ -1,6 +1,5 @@ private import cpp private import semmle.code.cpp.ir.IR -private import semmle.code.cpp.ir.dataflow.DataFlow private import DataFlowPrivate private import DataFlowUtil private import DataFlowImplCommon as DataFlowImplCommon @@ -60,7 +59,7 @@ private module VirtualDispatch { * `resolve` predicate to stitch that information together and resolve the * call. */ - abstract DataFlow::Node getDispatchValue(); + abstract Node getDispatchValue(); /** Gets a candidate target for this call. */ abstract Function resolve(); @@ -72,17 +71,13 @@ private module VirtualDispatch { * parameter is true when the search is allowed to continue backwards into * a parameter; non-recursive callers should pass `_` for `allowFromArg`. */ - predicate flowsFrom(DataFlow::Node src, boolean allowFromArg) { + predicate flowsFrom(Node src, boolean allowFromArg) { src = this.getDispatchValue() and allowFromArg = true or - exists(DataFlow::Node other, boolean allowOtherFromArg | - this.flowsFrom(other, allowOtherFromArg) - | + exists(Node other, boolean allowOtherFromArg | this.flowsFrom(other, allowOtherFromArg) | // Call argument exists(DataFlowCall call, Position i | - other - .(DataFlow::ParameterNode) - .isParameterOf(pragma[only_bind_into](call).getStaticCallTarget(), i) and + other.(ParameterNode).isParameterOf(pragma[only_bind_into](call).getStaticCallTarget(), i) and src.(ArgumentNode).argumentOf(call, pragma[only_bind_into](pragma[only_bind_out](i))) ) and allowOtherFromArg = true and @@ -96,7 +91,7 @@ private module VirtualDispatch { allowFromArg = false or // Local flow - DataFlow::localFlowStep(src, other) and + localFlowStep(src, other) and allowFromArg = allowOtherFromArg or // Flow from global variable to load. @@ -159,11 +154,11 @@ private module VirtualDispatch { private class DataSensitiveExprCall extends DataSensitiveCall { DataSensitiveExprCall() { not exists(this.getStaticCallTarget()) } - override DataFlow::Node getDispatchValue() { result.asOperand() = this.getCallTargetOperand() } + override Node getDispatchValue() { result.asOperand() = this.getCallTargetOperand() } override Function resolve() { exists(FunctionInstruction fi | - this.flowsFrom(DataFlow::instructionNode(fi), _) and + this.flowsFrom(instructionNode(fi), _) and result = fi.getFunctionSymbol() ) and ( @@ -186,7 +181,7 @@ private module VirtualDispatch { ) } - override DataFlow::Node getDispatchValue() { result.asInstruction() = this.getArgument(-1) } + override Node getDispatchValue() { result.asInstruction() = this.getArgument(-1) } override MemberFunction resolve() { exists(Class overridingClass | @@ -213,7 +208,7 @@ private module VirtualDispatch { pragma[noinline] private predicate hasFlowFromCastFrom(Class derivedClass) { exists(ConvertToBaseInstruction toBase | - this.flowsFrom(DataFlow::instructionNode(toBase), _) and + this.flowsFrom(instructionNode(toBase), _) and derivedClass = toBase.getDerivedClass() ) } @@ -270,7 +265,7 @@ private predicate mayBenefitFromCallContext( exists(InitializeParameterInstruction init | not exists(call.getStaticCallTarget()) and init.getEnclosingFunction() = f.getUnderlyingCallable() and - call.flowsFrom(DataFlow::instructionNode(init), _) and + call.flowsFrom(instructionNode(init), _) and init.getParameter().getIndex() = arg ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 39cc58d54b0e..f308ee190e7a 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -4,7 +4,7 @@ private import semmle.code.cpp.ir.IR private import DataFlowDispatch private import semmle.code.cpp.ir.internal.IRCppLanguage private import semmle.code.cpp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl -private import SsaInternals as Ssa +private import SsaImpl as Ssa private import DataFlowImplCommon as DataFlowImplCommon private import codeql.util.Unit private import Node0ToString @@ -182,7 +182,7 @@ abstract class InstructionNode0 extends Node0Impl { override Location getLocationImpl() { if exists(instr.getAst().getLocation()) then result = instr.getAst().getLocation() - else result instanceof UnknownDefaultLocation + else result instanceof UnknownLocation } final override predicate isGLValue() { exists(getInstructionType(instr, true)) } @@ -227,7 +227,7 @@ abstract class OperandNode0 extends Node0Impl { override Location getLocationImpl() { if exists(op.getDef().getAst().getLocation()) then result = op.getDef().getAst().getLocation() - else result instanceof UnknownDefaultLocation + else result instanceof UnknownLocation } final override predicate isGLValue() { exists(getOperandType(op, true)) } @@ -1382,16 +1382,89 @@ predicate neverSkipInPathGraph(Node n) { exists(n.asIndirectDefinition()) } -class LambdaCallKind = Unit; +private newtype TLambdaCallKind = + TFunctionPointer() or + TFunctor() + +class LambdaCallKind extends TLambdaCallKind { + predicate isFunctionPointer() { this = TFunctionPointer() } + + predicate isFunctor() { this = TFunctor() } + + string toString() { + this.isFunctionPointer() and + result = "Function pointer kind" + or + this.isFunctor() and + result = "Functor kind" + } +} + +private class ConstructorCallInstruction extends CallInstruction { + Cpp::Class constructedType; + + ConstructorCallInstruction() { + this.getStaticCallTarget().(Cpp::Constructor).getDeclaringType() = constructedType + } + + Cpp::Class getConstructedType() { result = constructedType } +} + +private class OperatorCall extends Cpp::MemberFunction { + OperatorCall() { this.hasName("operator()") } +} + +private predicate isFunctorCreationWithoutConstructor(Node creation, OperatorCall operator) { + exists(UninitializedInstruction init, Instruction dest | + // A construction of an object with no constructor. In this case we use + // the `UninitializedInstruction` as the creation node. + init = creation.asInstruction() and + dest = init.getDestinationAddress() and + not any(ConstructorCallInstruction constructorCall).getThisArgument() = dest and + operator.getDeclaringType() = init.getResultType() + ) + or + // Workaround for an extractor bug. In this snippet: + // ``` + // struct S { }; + // void f(S); + // f(S()); + // ``` + // The expression `S()` is represented as a 0 literal in the database. + exists(ConstantValueInstruction constant | + constant.getValue() = "0" and + creation.asInstruction() = constant and + constant.getResultType() = operator.getDeclaringType() + ) +} + +private predicate isFunctorCreationWithConstructor(Node creation, OperatorCall operator) { + exists(DataFlowCall constructorCall, IndirectionPosition pos | + // A construction of an object with a constructor. In this case we use + // the post-update node of the qualifier + pos.getArgumentIndex() = -1 and + isArgumentNode(creation.(PostUpdateNode).getPreUpdateNode(), constructorCall, pos) and + operator.getDeclaringType() = + constructorCall.asCallInstruction().(ConstructorCallInstruction).getConstructedType() + ) +} /** Holds if `creation` is an expression that creates a lambda of kind `kind` for `c`. */ predicate lambdaCreation(Node creation, LambdaCallKind kind, DataFlowCallable c) { - creation.asInstruction().(FunctionAddressInstruction).getFunctionSymbol() = c.asSourceCallable() and - exists(kind) + kind.isFunctionPointer() and + creation.asInstruction().(FunctionAddressInstruction).getFunctionSymbol() = c.asSourceCallable() + or + kind.isFunctor() and + exists(OperatorCall operator | operator = c.asSourceCallable() | + isFunctorCreationWithoutConstructor(creation, operator) + or + isFunctorCreationWithConstructor(creation, operator) + ) } /** Holds if `call` is a lambda call of kind `kind` where `receiver` is the lambda expression. */ predicate lambdaCall(DataFlowCall call, LambdaCallKind kind, Node receiver) { + kind.isFunctionPointer() and ( call.(SummaryCall).getReceiver() = receiver.(FlowSummaryNode).getSummaryNode() or @@ -1400,8 +1473,15 @@ predicate lambdaCall(DataFlowCall call, LambdaCallKind kind, Node receiver) { // has a result for `getStaticCallTarget`. not exists(call.getStaticCallTarget()) and call.asCallInstruction().getCallTargetOperand() = receiver.asOperand() - ) and - exists(kind) + ) + or + kind.isFunctor() and + ( + call.(SummaryCall).getReceiver() = receiver.(FlowSummaryNode).getSummaryNode() + or + not exists(call.getStaticCallTarget()) and + call.asCallInstruction().getThisArgumentOperand() = receiver.asOperand() + ) } /** Extra data-flow steps needed for lambda flow analysis. */ @@ -1902,19 +1982,23 @@ module IteratorFlow { predicate allowFlowIntoUncertainDef(IteratorSsa::UncertainWriteDefinition def) { any() } + class GuardValue = Void; + class Guard extends Void { - predicate hasBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + predicate hasValueBranchEdge( + SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue val + ) { none() } - predicate controlsBranchEdge( - SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch + predicate valueControlsBranchEdge( + SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue val ) { none() } } - predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, boolean branch) { + predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, GuardValue val) { none() } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index ab6a9da6d85d..bc3dda5fd345 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -13,7 +13,7 @@ private import semmle.code.cpp.models.interfaces.DataFlow private import semmle.code.cpp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import DataFlowPrivate private import ModelUtil -private import SsaInternals as Ssa +private import SsaImpl as SsaImpl private import DataFlowImplCommon as DataFlowImplCommon private import codeql.util.Unit private import Node0ToString @@ -39,38 +39,39 @@ private newtype TIRDataFlowNode = TNode0(Node0Impl node) { DataFlowImplCommon::forceCachingInSameStage() } or TGlobalLikeVariableNode(GlobalLikeVariable var, int indirectionIndex) { indirectionIndex = - [getMinIndirectionsForType(var.getUnspecifiedType()) .. Ssa::getMaxIndirectionsForType(var.getUnspecifiedType())] + [getMinIndirectionsForType(var.getUnspecifiedType()) .. SsaImpl::getMaxIndirectionsForType(var.getUnspecifiedType())] } or TPostUpdateNodeImpl(Operand operand, int indirectionIndex) { operand = any(FieldAddress fa).getObjectAddressOperand() and - indirectionIndex = [0 .. Ssa::countIndirectionsForCppType(Ssa::getLanguageType(operand))] + indirectionIndex = + [0 .. SsaImpl::countIndirectionsForCppType(SsaImpl::getLanguageType(operand))] or - Ssa::isModifiableByCall(operand, indirectionIndex) + SsaImpl::isModifiableByCall(operand, indirectionIndex) } or - TSsaSynthNode(Ssa::SynthNode n) or + TSsaSynthNode(SsaImpl::SynthNode n) or TSsaIteratorNode(IteratorFlow::IteratorFlowNode n) or TRawIndirectOperand0(Node0Impl node, int indirectionIndex) { - Ssa::hasRawIndirectOperand(node.asOperand(), indirectionIndex) + SsaImpl::hasRawIndirectOperand(node.asOperand(), indirectionIndex) } or TRawIndirectInstruction0(Node0Impl node, int indirectionIndex) { not exists(node.asOperand()) and - Ssa::hasRawIndirectInstruction(node.asInstruction(), indirectionIndex) + SsaImpl::hasRawIndirectInstruction(node.asInstruction(), indirectionIndex) } or TFinalParameterNode(Parameter p, int indirectionIndex) { - exists(Ssa::FinalParameterUse use | + exists(SsaImpl::FinalParameterUse use | use.getParameter() = p and use.getIndirectionIndex() = indirectionIndex ) } or - TFinalGlobalValue(Ssa::GlobalUse globalUse) or - TInitialGlobalValue(Ssa::GlobalDef globalUse) or + TFinalGlobalValue(SsaImpl::GlobalUse globalUse) or + TInitialGlobalValue(SsaImpl::GlobalDef globalUse) or TBodyLessParameterNodeImpl(Parameter p, int indirectionIndex) { // Rule out parameters of catch blocks. not exists(p.getCatchBlock()) and // We subtract one because `getMaxIndirectionsForType` returns the maximum // indirection for a glvalue of a given type, and this doesn't apply to // parameters. - indirectionIndex = [0 .. Ssa::getMaxIndirectionsForType(p.getUnspecifiedType()) - 1] and + indirectionIndex = [0 .. SsaImpl::getMaxIndirectionsForType(p.getUnspecifiedType()) - 1] and not any(InitializeParameterInstruction init).getParameter() = p } or TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn) @@ -81,7 +82,7 @@ private newtype TIRDataFlowNode = class FieldAddress extends Operand { FieldAddressInstruction fai; - FieldAddress() { fai = this.getDef() and not Ssa::ignoreOperand(this) } + FieldAddress() { fai = this.getDef() and not SsaImpl::ignoreOperand(this) } /** Gets the field associated with this instruction. */ Field getField() { result = fai.getField() } @@ -126,7 +127,7 @@ predicate conversionFlow( ) or additional = true and - Ssa::isAdditionalConversionFlow(opFrom, instrTo) + SsaImpl::isAdditionalConversionFlow(opFrom, instrTo) ) or isPointerArith = true and @@ -183,7 +184,7 @@ class Node extends TIRDataFlowNode { or this.asOperand().getUse() = block.getInstruction(i) or - exists(Ssa::SynthNode ssaNode | + exists(SsaImpl::SynthNode ssaNode | this.(SsaSynthNode).getSynthNode() = ssaNode and ssaNode.getBasicBlock() = block and ssaNode.getIndex() = i @@ -364,10 +365,10 @@ class Node extends TIRDataFlowNode { * pointed to by `p`. */ Expr asDefinition(boolean uncertain) { - exists(StoreInstruction store, Ssa::Definition def | + exists(StoreInstruction store, SsaImpl::Definition def | store = this.asInstruction() and result = asDefinitionImpl(store) and - Ssa::defToNode(this, def, _) and + SsaImpl::defToNode(this, def, _) and if def.isCertain() then uncertain = false else uncertain = true ) } @@ -488,6 +489,23 @@ class Node extends TIRDataFlowNode { result = this.(IndirectParameterNode).getParameter() } + /** + * Holds if this node represents the `indirectionIndex`'th indirection of + * the value of an output parameter `p` just before reaching the end of a function. + */ + predicate isFinalValueOfParameter(Parameter p, int indirectionIndex) { + exists(FinalParameterNode n | n = this | + p = n.getParameter() and + indirectionIndex = n.getIndirectionIndex() + ) + } + + /** + * Holds if this node represents the value of an output parameter `p` + * just before reaching the end of a function. + */ + predicate isFinalValueOfParameter(Parameter p) { this.isFinalValueOfParameter(p, _) } + /** * Gets the variable corresponding to this node, if any. This can be used for * modeling flow in and out of global variables. @@ -610,7 +628,7 @@ class OperandNode extends Node, Node0 { * For example, `stripPointers(int*&)` is `int*` and `stripPointers(int*)` is `int`. */ Type stripPointer(Type t) { - result = any(Ssa::Indirection ind | ind.getType() = t).getBaseType() + result = any(SsaImpl::Indirection ind | ind.getType() = t).getBaseType() or result = t.(PointerToMemberType).getBaseType() or @@ -677,12 +695,12 @@ class PostFieldUpdateNode extends PostUpdateNodeImpl { * in a data flow graph. */ class SsaSynthNode extends Node, TSsaSynthNode { - Ssa::SynthNode node; + SsaImpl::SynthNode node; SsaSynthNode() { this = TSsaSynthNode(node) } /** Gets the synthesized SSA node associated with this node. */ - Ssa::SynthNode getSynthNode() { result = node } + SsaImpl::SynthNode getSynthNode() { result = node } override DataFlowCallable getEnclosingCallable() { result.asSourceCallable() = this.getFunction() @@ -765,12 +783,12 @@ class SideEffectOperandNode extends Node instanceof IndirectOperand { * from a function body. */ class FinalGlobalValue extends Node, TFinalGlobalValue { - Ssa::GlobalUse globalUse; + SsaImpl::GlobalUse globalUse; FinalGlobalValue() { this = TFinalGlobalValue(globalUse) } /** Gets the underlying SSA use. */ - Ssa::GlobalUse getGlobalUse() { result = globalUse } + SsaImpl::GlobalUse getGlobalUse() { result = globalUse } override DataFlowCallable getEnclosingCallable() { result.asSourceCallable() = this.getFunction() @@ -797,12 +815,12 @@ class FinalGlobalValue extends Node, TFinalGlobalValue { * a function body. */ class InitialGlobalValue extends Node, TInitialGlobalValue { - Ssa::GlobalDef globalDef; + SsaImpl::GlobalDef globalDef; InitialGlobalValue() { this = TInitialGlobalValue(globalDef) } /** Gets the underlying SSA definition. */ - Ssa::GlobalDef getGlobalDef() { result = globalDef } + SsaImpl::GlobalDef getGlobalDef() { result = globalDef } override DataFlowCallable getEnclosingCallable() { result.asSourceCallable() = this.getFunction() @@ -847,7 +865,7 @@ class BodyLessParameterNodeImpl extends Node, TBodyLessParameterNodeImpl { result = unique( | | p.getLocation()) or count(p.getLocation()) != 1 and - result instanceof UnknownDefaultLocation + result instanceof UnknownLocation } final override string toStringImpl() { @@ -1115,7 +1133,7 @@ private module RawIndirectNodes { final override Location getLocationImpl() { if exists(this.getOperand().getLocation()) then result = this.getOperand().getLocation() - else result instanceof UnknownDefaultLocation + else result instanceof UnknownLocation } override string toStringImpl() { @@ -1161,7 +1179,7 @@ private module RawIndirectNodes { final override Location getLocationImpl() { if exists(this.getInstruction().getLocation()) then result = this.getInstruction().getLocation() - else result instanceof UnknownDefaultLocation + else result instanceof UnknownLocation } override string toStringImpl() { @@ -1225,7 +1243,7 @@ import RawIndirectNodes /** * INTERNAL: do not use. * - * A node representing the value of an update parameter + * A node representing the value of an output parameter * just before reaching the end of a function. */ class FinalParameterNode extends Node, TFinalParameterNode { @@ -1257,7 +1275,7 @@ class FinalParameterNode extends Node, TFinalParameterNode { result = unique( | | p.getLocation()) or not exists(unique( | | p.getLocation())) and - result instanceof UnknownDefaultLocation + result instanceof UnknownLocation } override string toStringImpl() { result = stars(this) + p.toString() } @@ -1271,11 +1289,11 @@ class UninitializedNode extends Node { LocalVariable v; UninitializedNode() { - exists(Ssa::Definition def, Ssa::SourceVariable sv | + exists(SsaImpl::Definition def, SsaImpl::SourceVariable sv | def.getIndirectionIndex() = 0 and def.getValue().asInstruction() instanceof UninitializedInstruction and - Ssa::defToNode(this, def, sv) and - v = sv.getBaseVariable().(Ssa::BaseIRVariable).getIRVariable().getAst() + SsaImpl::defToNode(this, def, sv) and + v = sv.getBaseVariable().(SsaImpl::BaseIRVariable).getIRVariable().getAst() ) } @@ -1629,7 +1647,7 @@ class VariableNode extends Node, TGlobalLikeVariableNode { result = unique( | | v.getLocation()) or not exists(unique( | | v.getLocation())) and - result instanceof UnknownDefaultLocation + result instanceof UnknownLocation } override string toStringImpl() { result = stars(this) + v.toString() } @@ -1705,7 +1723,7 @@ private module Cached { cached predicate flowsToBackEdge(Node n) { exists(Node succ, IRBlock bb1, IRBlock bb2 | - Ssa::ssaFlow(n, succ) and + SsaImpl::ssaFlow(n, succ) and bb1 = n.getBasicBlock() and bb2 = succ.getBasicBlock() and bb1 != bb2 and @@ -1803,7 +1821,7 @@ private module Cached { predicate simpleLocalFlowStep(Node nodeFrom, Node nodeTo, string model) { ( // Def-use/Use-use flow - Ssa::ssaFlow(nodeFrom, nodeTo) + SsaImpl::ssaFlow(nodeFrom, nodeTo) or IteratorFlow::localFlowStep(nodeFrom, nodeTo) or @@ -1816,7 +1834,7 @@ private module Cached { | simpleOperandLocalFlowStep(iFrom, opTo) and // Omit when the instruction node also represents the operand. - not iFrom = Ssa::getIRRepresentationOfOperand(opTo) + not iFrom = SsaImpl::getIRRepresentationOfOperand(opTo) ) or // Indirect operand -> (indirect) instruction flow @@ -1889,7 +1907,7 @@ private module Cached { // We also want a write coming out of an `OutNode` to flow `nodeTo`. // This is different from `reverseFlowInstruction` since `nodeFrom` can never // be an `OutNode` when it's defined by an instruction. - Ssa::outNodeHasAddressAndIndex(nodeFrom, address, indirectionIndex) + SsaImpl::outNodeHasAddressAndIndex(nodeFrom, address, indirectionIndex) ) } @@ -2082,7 +2100,7 @@ private newtype TContent = TFieldContent(Field f, int indirectionIndex) { // the indirection index for field content starts at 1 (because `TFieldContent` is thought of as // the address of the field, `FieldAddress` in the IR). - indirectionIndex = [1 .. Ssa::getMaxIndirectionsForType(f.getUnspecifiedType())] and + indirectionIndex = [1 .. SsaImpl::getMaxIndirectionsForType(f.getUnspecifiedType())] and // Reads and writes of union fields are tracked using `UnionContent`. not f.getDeclaringType() instanceof Union } or @@ -2094,7 +2112,9 @@ private newtype TContent = // field can be read by any read of the union's fields. Again, the indirection index // is 1-based (because 0 is considered the address). indirectionIndex = - [1 .. max(Ssa::getMaxIndirectionsForType(getAFieldWithSize(u, bytes).getUnspecifiedType()))] + [1 .. max(SsaImpl::getMaxIndirectionsForType(getAFieldWithSize(u, bytes) + .getUnspecifiedType()) + )] ) } or TElementContent(int indirectionIndex) { @@ -2337,7 +2357,7 @@ module BarrierGuard { controls(g, result, edge) ) or - result = Ssa::BarrierGuard::getABarrierNode() + result = SsaImpl::BarrierGuard::getABarrierNode() } /** @@ -2436,7 +2456,7 @@ module BarrierGuard { ) or result = - Ssa::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex) + SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex) } } @@ -2473,7 +2493,7 @@ module InstructionBarrierGuard::getABarrierNode() + result = SsaImpl::BarrierGuard::getABarrierNode() } bindingset[value, n] @@ -2503,7 +2523,7 @@ module InstructionBarrierGuard::getABarrierNode(indirectionIndex) + SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex) } } @@ -2559,3 +2579,16 @@ Function getARuntimeTarget(Call call) { result = DataFlowImplCommon::viableCallableLambda(dfCall, _).asSourceCallable() ) } + +/** A module that provides static single assignment (SSA) information. */ +module Ssa { + class Definition = SsaImpl::Definition; + + class ExplicitDefinition = SsaImpl::ExplicitDefinition; + + class DirectExplicitDefinition = SsaImpl::DirectExplicitDefinition; + + class IndirectExplicitDefinition = SsaImpl::IndirectExplicitDefinition; + + class PhiNode = SsaImpl::PhiNode; +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll index 42ab60eced78..6d69dd11e80b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll @@ -151,7 +151,7 @@ private module Cached { ) or // Similarly for `i++` and `++i` we pretend that the generated - // `StoreInstruction` is contains the result of the expression even though + // `StoreInstruction` contains the result of the expression even though // this isn't totally aligned with the C/C++ standard. exists(TranslatedCrementOperation tco | store = tco.getInstruction(CrementStoreTag()) and diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ModelUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ModelUtil.qll index 055f48c80ec8..f880bee1c1c4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ModelUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ModelUtil.qll @@ -4,15 +4,15 @@ */ private import semmle.code.cpp.ir.IR -private import semmle.code.cpp.ir.dataflow.DataFlow +private import semmle.code.cpp.models.interfaces.FunctionInputsAndOutputs private import DataFlowUtil private import DataFlowPrivate -private import SsaInternals as Ssa +private import SsaImpl as Ssa /** * Gets the instruction that goes into `input` for `call`. */ -DataFlow::Node callInput(CallInstruction call, FunctionInput input) { +Node callInput(CallInstruction call, FunctionInput input) { // An argument or qualifier exists(int index | result.asOperand() = call.getArgumentOperand(index) and @@ -62,8 +62,8 @@ Node callOutput(CallInstruction call, FunctionOutput output) { result = callOutputWithIndirectionIndex(call, output, _) } -DataFlow::Node callInput(CallInstruction call, FunctionInput input, int d) { - exists(DataFlow::Node n | n = callInput(call, input) and d > 0 | +Node callInput(CallInstruction call, FunctionInput input, int d) { + exists(Node n | n = callInput(call, input) and d > 0 | // An argument or qualifier hasOperandAndIndex(result, n.asOperand(), d) or @@ -85,7 +85,7 @@ private IndirectReturnOutNode getIndirectReturnOutNode(CallInstruction call, int */ bindingset[d] Node callOutput(CallInstruction call, FunctionOutput output, int d) { - exists(DataFlow::Node n, int indirectionIndex | + exists(Node n, int indirectionIndex | n = callOutputWithIndirectionIndex(call, output, indirectionIndex) and d > 0 | // The return value diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintDataFlowRelevantIR.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintDataFlowRelevantIR.qll index 2a654828ee54..22550e187ace 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintDataFlowRelevantIR.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintDataFlowRelevantIR.qll @@ -1,6 +1,6 @@ private import cpp private import semmle.code.cpp.ir.IR -private import SsaInternals as Ssa +private import SsaImpl as Ssa /** * A property provider that hides all instructions and operands that are not relevant for IR dataflow. diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintIRLocalFlow.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintIRLocalFlow.qll index cf612ce73687..e310db319319 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintIRLocalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/PrintIRLocalFlow.qll @@ -2,7 +2,7 @@ private import cpp private import semmle.code.cpp.ir.IR private import semmle.code.cpp.ir.dataflow.internal.DataFlowUtil private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate -private import SsaInternals as Ssa +private import SsaImpl as Ssa private import PrintIRUtilities /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll index 354b453afdb7..e804957190a0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll @@ -16,6 +16,7 @@ import semmle.code.cpp.dataflow.new.DataFlow private import DataFlowPrivate private import DataFlowUtil private import DataFlowImplCommon +private import DataFlowImplSpecific private import codeql.util.Unit /** @@ -95,10 +96,7 @@ module ProductFlow { * This can be overridden to a smaller value to improve performance (a * value of 0 disables field flow), or a larger value to get more results. */ - default int fieldFlowBranchLimit1() { - // NOTE: This should be synchronized with the default value in the shared dataflow library - result = 2 - } + default int fieldFlowBranchLimit1() { result = CppDataFlow::defaultFieldFlowBranchLimit() } /** * Gets the virtual dispatch branching limit when calculating field flow in the second @@ -107,10 +105,7 @@ module ProductFlow { * This can be overridden to a smaller value to improve performance (a * value of 0 disables field flow), or a larger value to get more results. */ - default int fieldFlowBranchLimit2() { - // NOTE: This should be synchronized with the default value in the shared dataflow library - result = 2 - } + default int fieldFlowBranchLimit2() { result = CppDataFlow::defaultFieldFlowBranchLimit() } } /** @@ -304,10 +299,7 @@ module ProductFlow { * This can be overridden to a smaller value to improve performance (a * value of 0 disables field flow), or a larger value to get more results. */ - default int fieldFlowBranchLimit1() { - // NOTE: This should be synchronized with the default value in the shared dataflow library - result = 2 - } + default int fieldFlowBranchLimit1() { result = CppDataFlow::defaultFieldFlowBranchLimit() } /** * Gets the virtual dispatch branching limit when calculating field flow in the second @@ -316,10 +308,7 @@ module ProductFlow { * This can be overridden to a smaller value to improve performance (a * value of 0 disables field flow), or a larger value to get more results. */ - default int fieldFlowBranchLimit2() { - // NOTE: This should be synchronized with the default value in the shared dataflow library - result = 2 - } + default int fieldFlowBranchLimit2() { result = CppDataFlow::defaultFieldFlowBranchLimit() } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll similarity index 89% rename from cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll rename to cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index 7799081eae34..3af2ea38a641 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -1,4 +1,4 @@ -private import codeql.ssa.Ssa as SsaImplCommon +private import codeql.ssa.Ssa as Ssa private import semmle.code.cpp.ir.IR private import DataFlowUtil private import DataFlowImplCommon as DataFlowImplCommon @@ -12,7 +12,7 @@ private import semmle.code.cpp.ir.internal.IRCppLanguage private import semmle.code.cpp.ir.dataflow.internal.ModelUtil private import semmle.code.cpp.ir.implementation.raw.internal.TranslatedInitialization private import DataFlowPrivate -import SsaInternalsCommon +import SsaImplCommon private module SourceVariables { cached @@ -153,6 +153,10 @@ private predicate isGlobalDefImpl( GlobalLikeVariable v, IRFunction f, int indirection, int indirectionIndex ) { exists(VariableAddressInstruction vai | + // The right-hand side of an initialization of a global variable + // creates its own `IRFunction`. We don't want flow into that `IRFunction` + // since the variable is only initialized once. + not vai.getEnclosingFunction() = v and vai.getEnclosingIRFunction() = f and vai.getAstVariable() = v and isUse(_, _, vai, indirection, indirectionIndex) and @@ -516,7 +520,7 @@ class FinalParameterUse extends UseImpl, TFinalParameterUse { result = unique( | | p.getLocation()) or not exists(unique( | | p.getLocation())) and - result instanceof UnknownDefaultLocation + result instanceof UnknownLocation } override BaseIRVariable getBaseSourceVariable() { result.getIRVariable().getAst() = p } @@ -880,7 +884,7 @@ private predicate baseSourceVariableIsGlobal( ) } -private module SsaInput implements SsaImplCommon::InputSig { +private module SsaInput implements Ssa::InputSig { import InputSigCommon import SourceVariables @@ -954,9 +958,11 @@ class GlobalDef extends Definition { GlobalLikeVariable getVariable() { result = impl.getVariable() } } -private module SsaImpl = SsaImplCommon::Make; +private module SsaImpl = Ssa::Make; private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationInputSig { + private import codeql.util.Boolean + class Expr extends Instruction { Expr() { exists(IRBlock bb, int i | @@ -988,10 +994,14 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI result instanceof FalseEdge } + class GuardValue = Boolean; + class Guard instanceof IRGuards::IRGuardCondition { string toString() { result = super.toString() } - predicate hasBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + predicate hasValueBranchEdge( + SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue branch + ) { exists(EdgeKind kind | super.getBlock() = bb1 and kind = getConditionalEdge(branch) and @@ -999,12 +1009,14 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI ) } - predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { - this.hasBranchEdge(bb1, bb2, branch) + predicate valueControlsBranchEdge( + SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue branch + ) { + this.hasValueBranchEdge(bb1, bb2, branch) } } - predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, boolean branch) { + predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, GuardValue branch) { guard.(IRGuards::IRGuardCondition).controls(bb, branch) } @@ -1033,7 +1045,8 @@ module BarrierGuardWithIntParam { } private predicate guardChecks( - DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, boolean branch, int indirectionIndex + DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, + DataFlowIntegrationInput::GuardValue branch, int indirectionIndex ) { exists(UseImpl use | guardChecksNode(g, use.getNode(), branch, indirectionIndex) and @@ -1112,9 +1125,11 @@ class PhiNode extends Definition instanceof SsaImpl::PhiNode { /** An static single assignment (SSA) definition. */ class Definition extends SsaImpl::Definition { - // TODO: Include prior definitions of uncertain writes or rename predicate - // i.e. the disjunct `SsaImpl::uncertainWriteDefinitionInput(this, result)` - private Definition getAPhiInputOrPriorDefinition() { result = this.(PhiNode).getAnInput() } + private Definition getAPhiInputOrPriorDefinition() { + result = this.(PhiNode).getAnInput() + or + SsaImpl::uncertainWriteDefinitionInput(this, result) + } /** * Gets a definition that ultimately defines this SSA definition and is @@ -1125,6 +1140,36 @@ class Definition extends SsaImpl::Definition { not result instanceof PhiNode } + /** Gets an `Operand` that represents a use of this definition. */ + Operand getAUse() { + exists(SourceVariable sv, IRBlock bb, int i, UseImpl use | + ssaDefReachesRead(sv, this, bb, i) and + use.hasIndexInBlock(bb, i, sv) and + result = use.getNode().asOperand() + ) + } + + /** + * Gets an `Operand` that represents an indirect use of this definition. + * + * The use is indirect because the operand represents a pointer that points + * to the value written by this definition. For example in: + * ```cpp + * 1. int x = 42; + * 2. int* p = &x; + * ``` + * There is an `ExplicitDefinition` corresponding to `x = 42` on line 1 and + * the definition has an indirect use on line 2 because `&x` points to the + * value that was defined by the definition. + */ + Operand getAnIndirectUse(int indirectionIndex) { + exists(SourceVariable sv, IRBlock bb, int i, UseImpl use | + ssaDefReachesRead(sv, this, bb, i) and + use.hasIndexInBlock(bb, i, sv) and + result = use.getNode().asIndirectOperand(indirectionIndex) + ) + } + /** * INTERNAL: Do not use. */ @@ -1157,4 +1202,63 @@ class Definition extends SsaImpl::Definition { Type getUnspecifiedType() { result = this.getUnderlyingType().getUnspecifiedType() } } +/** + * An SSA definition that corresponds to an explicit definition. + */ +class ExplicitDefinition extends Definition, SsaImpl::WriteDefinition { + DefImpl def; + + ExplicitDefinition() { + exists(IRBlock bb, int i, SourceVariable sv | + this.definesAt(sv, bb, i) and + def.hasIndexInBlock(sv, bb, i) + ) + } + + /** + * Gets the `Instruction` computing the value that is written to the + * associated SSA variable by this SSA definition. + * + * If `this.getIndirectionIndex() = 0` (i.e., if `this` is an instance of + * `DirectExplicitDefinition`) then the SSA variable is present in the source + * code. + * However, if `this.getIndirectionIndex() > 0` (i.e., if `this` is an + * instance of `IndirectExplicitDefinition`) then the SSA variable associated + * with this definition represents the memory pointed to by a variable in the + * source code. + */ + Instruction getAssignedInstruction() { result = def.getValue().asInstruction() } +} + +/** + * An explicit SSA definition that writes an indirect value to a pointer. + * + * For example in: + * ```cpp + * int x = 42; // (1) + * int* p = &x; // (2) + * ``` + * There are three `ExplicitDefinition`: + * 1. A `DirectExplicitDefinition` at (1) which writes `42` to the SSA variable + * corresponding to `x`. + * 2. A `DirectExplicitDefinition` at (2) which writes `&x` to the SSA variable + * corresponding to `p`. + * 3. A `IndirectExplicitDefinition` at (2) which writes `*&x` (i.e., `x`) to + * the SSA variable corresponding to `*p`. + */ +class IndirectExplicitDefinition extends ExplicitDefinition { + IndirectExplicitDefinition() { this.getIndirectionIndex() > 0 } +} + +/** + * An SSA definition that corresponds to an explicit definition. + * + * Unlike `ExplicitDefinition` this class does not include indirect + * explicit definition. See `IndirectExplicitDefinition` if you want to include + * those. + */ +class DirectExplicitDefinition extends ExplicitDefinition { + DirectExplicitDefinition() { this.getIndirectionIndex() = 0 } +} + import SsaCached diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternalsCommon.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll similarity index 100% rename from cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternalsCommon.qll rename to cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll index 83fac3ebb49a..f190569330f5 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingUtil.qll @@ -5,7 +5,7 @@ private import semmle.code.cpp.models.interfaces.DataFlow private import semmle.code.cpp.models.interfaces.SideEffect private import DataFlowUtil private import DataFlowPrivate -private import SsaInternals as Ssa +private import SsaImpl as Ssa private import semmle.code.cpp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import semmle.code.cpp.ir.dataflow.FlowSteps diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/Opcode.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/Opcode.qll index bd1ffcd5ce15..d8c1c6115c80 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/Opcode.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/Opcode.qll @@ -42,6 +42,7 @@ private newtype TOpcode = TCompareGT() or TCompareLE() or TCompareGE() or + TSpaceship() or TPointerAdd() or TPointerSub() or TPointerDiff() or @@ -92,7 +93,9 @@ private newtype TOpcode = TUninitializedGroup() or TInlineAsm() or TUnreached() or - TNewObj() + TNewObj() or + TTypeidExpr() or + TTypeidType() /** * An opcode that specifies the operation performed by an `Instruction`. @@ -763,6 +766,15 @@ module Opcode { final override string toString() { result = "CompareGE" } } + /** + * The `Opcode` for a `SpaceshipInstruction`. + * + * See the `SpaceshipInstruction` documentation for more details. + */ + class Spaceship extends BinaryOpcode, TSpaceship { + final override string toString() { result = "Spaceship" } + } + /** * The `Opcode` for a `PointerAddInstruction`. * @@ -1281,4 +1293,29 @@ module Opcode { class NewObj extends Opcode, TNewObj { final override string toString() { result = "NewObj" } } + + /** + * The `Opcode` for a `TypeidInstruction`. + * + * See the `TypeidInstruction` documentation for more details. + */ + abstract class Typeid extends Opcode { } + + /** + * The `Opcode` for a `TypeidExprInstruction`. + * + * See the `TypeidExprInstruction` documentation for more details. + */ + class TypeidExpr extends Typeid, UnaryOpcode, TTypeidExpr { + final override string toString() { result = "TypeidExpr" } + } + + /** + * The `Opcode` for a `TypeidTypeInstruction`. + * + * See the `TypeidTypeInstruction` documentation for more details. + */ + class TypeidType extends Typeid, TTypeidType { + final override string toString() { result = "TypeidType" } + } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll index 67a6965ae9bb..c29d743dadbf 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRConsistency.qll @@ -45,7 +45,7 @@ module InstructionConsistency { private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction { override string toString() { result = "" } - override Language::Location getLocation() { result instanceof Language::UnknownDefaultLocation } + override Language::Location getLocation() { result instanceof Language::UnknownLocation } } private OptionalIRFunction getInstructionIRFunction(Instruction instr) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll index af5dd4199858..a564508e16b4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll @@ -725,6 +725,20 @@ class UninitializedInstruction extends VariableInstruction { * Gets the variable that is uninitialized. */ final Language::Variable getLocalVariable() { result = var.(IRUserVariable).getVariable() } + + /** + * Gets the operand that provides the address of the location to which the + * uninitialized value will be stored. + */ + final AddressOperand getDestinationAddressOperand() { result = this.getAnOperand() } + + /** + * Gets the instruction whose result provides the address of the location to + * which the value will be stored, if an exact definition is available. + */ + final Instruction getDestinationAddress() { + result = this.getDestinationAddressOperand().getDef() + } } /** @@ -1590,6 +1604,13 @@ class CompareGEInstruction extends RelationalInstruction { override predicate isStrict() { none() } } +/** + * An instruction that represents a three-way comparison operator. + */ +class SpaceshipInstruction extends BinaryInstruction { + SpaceshipInstruction() { this.getOpcode() instanceof Opcode::Spaceship } +} + /** * An instruction that branches to one of multiple successor instructions based on the value of an * integer operand. @@ -2279,3 +2300,26 @@ class NextVarArgInstruction extends UnaryInstruction { class NewObjInstruction extends Instruction { NewObjInstruction() { this.getOpcode() instanceof Opcode::NewObj } } + +/** + * An instruction that returns the type info for its operand. + */ +class TypeidInstruction extends Instruction { + TypeidInstruction() { this.getOpcode() instanceof Opcode::Typeid } +} + +/** + * An instruction that returns the type info for its operand, where the + * operand occurs as an expression in the AST. + */ +class TypeidExprInstruction extends TypeidInstruction, UnaryInstruction { + TypeidExprInstruction() { this.getOpcode() instanceof Opcode::TypeidExpr } +} + +/** + * An instruction that returns the type info for its operand, where the + * operand occurs as a type in the AST. + */ +class TypeidTypeInstruction extends TypeidInstruction { + TypeidTypeInstruction() { this.getOpcode() instanceof Opcode::TypeidType } +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/gvn/ValueNumbering.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/gvn/ValueNumbering.qll index 279b43a1ca8b..b436bc8ccf11 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/gvn/ValueNumbering.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/gvn/ValueNumbering.qll @@ -26,7 +26,7 @@ class ValueNumber extends TValueNumber { l.getFile().getAbsolutePath(), l.getStartLine(), l.getStartColumn(), l.getEndLine(), l.getEndColumn() ) - else result instanceof Language::UnknownDefaultLocation + else result instanceof Language::UnknownLocation } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll index 67a6965ae9bb..c29d743dadbf 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRConsistency.qll @@ -45,7 +45,7 @@ module InstructionConsistency { private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction { override string toString() { result = "" } - override Language::Location getLocation() { result instanceof Language::UnknownDefaultLocation } + override Language::Location getLocation() { result instanceof Language::UnknownLocation } } private OptionalIRFunction getInstructionIRFunction(Instruction instr) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll index af5dd4199858..a564508e16b4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/Instruction.qll @@ -725,6 +725,20 @@ class UninitializedInstruction extends VariableInstruction { * Gets the variable that is uninitialized. */ final Language::Variable getLocalVariable() { result = var.(IRUserVariable).getVariable() } + + /** + * Gets the operand that provides the address of the location to which the + * uninitialized value will be stored. + */ + final AddressOperand getDestinationAddressOperand() { result = this.getAnOperand() } + + /** + * Gets the instruction whose result provides the address of the location to + * which the value will be stored, if an exact definition is available. + */ + final Instruction getDestinationAddress() { + result = this.getDestinationAddressOperand().getDef() + } } /** @@ -1590,6 +1604,13 @@ class CompareGEInstruction extends RelationalInstruction { override predicate isStrict() { none() } } +/** + * An instruction that represents a three-way comparison operator. + */ +class SpaceshipInstruction extends BinaryInstruction { + SpaceshipInstruction() { this.getOpcode() instanceof Opcode::Spaceship } +} + /** * An instruction that branches to one of multiple successor instructions based on the value of an * integer operand. @@ -2279,3 +2300,26 @@ class NextVarArgInstruction extends UnaryInstruction { class NewObjInstruction extends Instruction { NewObjInstruction() { this.getOpcode() instanceof Opcode::NewObj } } + +/** + * An instruction that returns the type info for its operand. + */ +class TypeidInstruction extends Instruction { + TypeidInstruction() { this.getOpcode() instanceof Opcode::Typeid } +} + +/** + * An instruction that returns the type info for its operand, where the + * operand occurs as an expression in the AST. + */ +class TypeidExprInstruction extends TypeidInstruction, UnaryInstruction { + TypeidExprInstruction() { this.getOpcode() instanceof Opcode::TypeidExpr } +} + +/** + * An instruction that returns the type info for its operand, where the + * operand occurs as a type in the AST. + */ +class TypeidTypeInstruction extends TypeidInstruction { + TypeidTypeInstruction() { this.getOpcode() instanceof Opcode::TypeidType } +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/gvn/ValueNumbering.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/gvn/ValueNumbering.qll index 279b43a1ca8b..b436bc8ccf11 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/gvn/ValueNumbering.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/gvn/ValueNumbering.qll @@ -26,7 +26,7 @@ class ValueNumber extends TValueNumber { l.getFile().getAbsolutePath(), l.getStartLine(), l.getStartColumn(), l.getEndLine(), l.getEndColumn() ) - else result instanceof Language::UnknownDefaultLocation + else result instanceof Language::UnknownLocation } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll index 705a9dcdd0b7..a7e85fe9b1a5 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll @@ -1808,6 +1808,11 @@ private Opcode comparisonOpcode(ComparisonOperation expr) { expr instanceof GEExpr and result instanceof Opcode::CompareGE } +private Opcode spaceShipOpcode(SpaceshipExpr expr) { + exists(expr) and + result instanceof Opcode::Spaceship +} + /** * IR translation of a simple binary operation. */ @@ -1867,7 +1872,8 @@ class TranslatedBinaryOperation extends TranslatedSingleInstructionExpr { override Opcode getOpcode() { result = binaryArithmeticOpcode(expr) or result = binaryBitwiseOpcode(expr) or - result = comparisonOpcode(expr) + result = comparisonOpcode(expr) or + result = spaceShipOpcode(expr) } override Type getExprType() { @@ -4146,7 +4152,8 @@ predicate exprNeedsCopyIfNotLoaded(Expr expr) { private predicate exprImmediatelyDiscarded(Expr expr) { exists(ExprStmt s | s = expr.getParent() and - not exists(StmtExpr se | s = se.getStmt().(BlockStmt).getLastStmt()) + not exists(StmtExpr se | s = se.getStmt().(BlockStmt).getLastStmt()) and + not exists(expr.getConversion()) ) or exists(CommaExpr c | c.getLeftOperand() = expr) @@ -4184,3 +4191,52 @@ class TranslatedAssumeExpr extends TranslatedSingleInstructionExpr { none() } } + +class TranslatedTypeidExpr extends TranslatedSingleInstructionExpr { + override TypeidOperator expr; + + final override Opcode getOpcode() { + exists(this.getOperand()) and + result instanceof Opcode::TypeidExpr + or + not exists(this.getOperand()) and + result instanceof Opcode::TypeidType + } + + final override Instruction getFirstInstruction(EdgeKind kind) { + result = this.getOperand().getFirstInstruction(kind) + or + not exists(this.getOperand()) and + result = this.getInstruction(OnlyInstructionTag()) and + kind instanceof GotoEdge + } + + override Instruction getALastInstructionInternal() { + result = this.getInstruction(OnlyInstructionTag()) + } + + final override TranslatedElement getChildInternal(int id) { + id = 0 and result = this.getOperand() + } + + final override Instruction getInstructionSuccessorInternal(InstructionTag tag, EdgeKind kind) { + tag = OnlyInstructionTag() and + result = this.getParent().getChildSuccessor(this, kind) + } + + final override Instruction getChildSuccessorInternal(TranslatedElement child, EdgeKind kind) { + child = this.getOperand() and + result = this.getInstruction(OnlyInstructionTag()) and + kind instanceof GotoEdge + } + + final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) { + tag = OnlyInstructionTag() and + result = this.getOperand().getResult() and + operandTag instanceof UnaryOperandTag + } + + private TranslatedExpr getOperand() { + result = getTranslatedExpr(expr.getExpr().getFullyConverted()) + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll index 67a6965ae9bb..c29d743dadbf 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRConsistency.qll @@ -45,7 +45,7 @@ module InstructionConsistency { private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction { override string toString() { result = "" } - override Language::Location getLocation() { result instanceof Language::UnknownDefaultLocation } + override Language::Location getLocation() { result instanceof Language::UnknownLocation } } private OptionalIRFunction getInstructionIRFunction(Instruction instr) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll index af5dd4199858..a564508e16b4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/Instruction.qll @@ -725,6 +725,20 @@ class UninitializedInstruction extends VariableInstruction { * Gets the variable that is uninitialized. */ final Language::Variable getLocalVariable() { result = var.(IRUserVariable).getVariable() } + + /** + * Gets the operand that provides the address of the location to which the + * uninitialized value will be stored. + */ + final AddressOperand getDestinationAddressOperand() { result = this.getAnOperand() } + + /** + * Gets the instruction whose result provides the address of the location to + * which the value will be stored, if an exact definition is available. + */ + final Instruction getDestinationAddress() { + result = this.getDestinationAddressOperand().getDef() + } } /** @@ -1590,6 +1604,13 @@ class CompareGEInstruction extends RelationalInstruction { override predicate isStrict() { none() } } +/** + * An instruction that represents a three-way comparison operator. + */ +class SpaceshipInstruction extends BinaryInstruction { + SpaceshipInstruction() { this.getOpcode() instanceof Opcode::Spaceship } +} + /** * An instruction that branches to one of multiple successor instructions based on the value of an * integer operand. @@ -2279,3 +2300,26 @@ class NextVarArgInstruction extends UnaryInstruction { class NewObjInstruction extends Instruction { NewObjInstruction() { this.getOpcode() instanceof Opcode::NewObj } } + +/** + * An instruction that returns the type info for its operand. + */ +class TypeidInstruction extends Instruction { + TypeidInstruction() { this.getOpcode() instanceof Opcode::Typeid } +} + +/** + * An instruction that returns the type info for its operand, where the + * operand occurs as an expression in the AST. + */ +class TypeidExprInstruction extends TypeidInstruction, UnaryInstruction { + TypeidExprInstruction() { this.getOpcode() instanceof Opcode::TypeidExpr } +} + +/** + * An instruction that returns the type info for its operand, where the + * operand occurs as a type in the AST. + */ +class TypeidTypeInstruction extends TypeidInstruction { + TypeidTypeInstruction() { this.getOpcode() instanceof Opcode::TypeidType } +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/gvn/ValueNumbering.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/gvn/ValueNumbering.qll index 279b43a1ca8b..b436bc8ccf11 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/gvn/ValueNumbering.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/gvn/ValueNumbering.qll @@ -26,7 +26,7 @@ class ValueNumber extends TValueNumber { l.getFile().getAbsolutePath(), l.getStartLine(), l.getStartColumn(), l.getEndLine(), l.getEndColumn() ) - else result instanceof Language::UnknownDefaultLocation + else result instanceof Language::UnknownLocation } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/ASTValueNumbering.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/ASTValueNumbering.qll index 2dd51d391512..4a40c90a1dd9 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/ASTValueNumbering.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/ASTValueNumbering.qll @@ -76,7 +76,7 @@ class GVN extends TValueNumber { l.getFile().getAbsolutePath(), l.getStartLine(), l.getStartColumn(), l.getEndLine(), l.getEndColumn() ) - else result instanceof UnknownDefaultLocation + else result instanceof UnknownLocation } final string getKind() { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll index 28bbd40f8bf5..a0e74f785e5e 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll @@ -22,8 +22,6 @@ class Location = Cpp::Location; class UnknownLocation = Cpp::UnknownLocation; -class UnknownDefaultLocation = Cpp::UnknownDefaultLocation; - class File = Cpp::File; class AST = Cpp::Locatable; diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/RangeAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/RangeAnalysis.qll index 6bd7615d37b7..845a71b2a502 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/RangeAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/RangeAnalysis.qll @@ -89,7 +89,7 @@ class ZeroBound extends Bound instanceof IRBound::ZeroBound { result = super.getInstruction(delta).getUnconvertedResultExpression() } - override Location getLocation() { result instanceof UnknownDefaultLocation } + override Location getLocation() { result instanceof UnknownLocation } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/Bound.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/Bound.qll index 27883aedf3e7..4d873e8e3b3e 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/Bound.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/Bound.qll @@ -61,7 +61,7 @@ class ZeroBound extends Bound, TBoundZero { result.(ConstantValueInstruction).getValue().toInt() = delta } - override Location getLocation() { result instanceof UnknownDefaultLocation } + override Location getLocation() { result instanceof UnknownLocation } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/security/FunctionWithWrappers.qll b/cpp/ql/lib/semmle/code/cpp/security/FunctionWithWrappers.qll index b7a7a95a4271..b66731678475 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/FunctionWithWrappers.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/FunctionWithWrappers.qll @@ -17,7 +17,6 @@ import cpp import PrintfLike -private import semmle.code.cpp.ir.dataflow.ResolveCall bindingset[index] private string toCause(Function func, int index) { @@ -37,9 +36,9 @@ private predicate wrapperFunctionStep( not target.isVirtual() and not source.isVirtual() and source.hasDefinition() and - exists(Call call, Expr arg, Parameter sourceParam | + exists(FunctionCall call, Expr arg, Parameter sourceParam | // there is a 'call' to 'target' with argument 'arg' at index 'targetParamIndex' - target = resolveCall(call) and + target = call.getTarget() and arg = call.getArgument(targetParamIndex) and // 'call' is enclosed in 'source' source = call.getEnclosingFunction() and @@ -154,8 +153,8 @@ abstract class FunctionWithWrappers extends Function { * Whether 'arg' is an argument in a call to an outermost wrapper function of 'this' function. */ predicate outermostWrapperFunctionCall(Expr arg, string callChain) { - exists(Function targetFunc, Call call, int argIndex | - targetFunc = resolveCall(call) and + exists(Function targetFunc, FunctionCall call, int argIndex | + targetFunc = call.getTarget() and this.wrapperFunction(targetFunc, argIndex, callChain) and ( exists(Function sourceFunc | sourceFunc = call.getEnclosingFunction() | diff --git a/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll b/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll index 223d0abf1d4e..2fea5327720a 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/InvalidPointerDereference/AllocationToInvalidPointer.qll @@ -53,44 +53,12 @@ private import cpp private import semmle.code.cpp.ir.dataflow.internal.ProductFlow +private import semmle.code.cpp.security.ProductFlowUtils.ProductFlowUtils private import semmle.code.cpp.ir.ValueNumbering private import semmle.code.cpp.controlflow.IRGuards private import codeql.util.Unit private import semmle.code.cpp.rangeanalysis.new.RangeAnalysisUtil -private VariableAccess getAVariableAccess(Expr e) { e.getAChild*() = result } - -/** - * Gets a (sub)expression that may be the result of evaluating `size`. - * - * For example, `getASizeCandidate(a ? b : c)` gives `a ? b : c`, `b` and `c`. - */ -bindingset[size] -pragma[inline_late] -private Expr getASizeCandidate(Expr size) { - result = size - or - result = [size.(ConditionalExpr).getThen(), size.(ConditionalExpr).getElse()] -} - -/** - * Holds if the `(n, state)` pair represents the source of flow for the size - * expression associated with `alloc`. - */ -predicate hasSize(HeuristicAllocationExpr alloc, DataFlow::Node n, int state) { - exists(VariableAccess va, Expr size, int delta, Expr s | - size = alloc.getSizeExpr() and - s = getASizeCandidate(size) and - // Get the unique variable in a size expression like `x` in `malloc(x + 1)`. - va = unique( | | getAVariableAccess(s)) and - // Compute `delta` as the constant difference between `x` and `x + 1`. - bounded1(any(Instruction instr | instr.getUnconvertedResultExpression() = s), - any(LoadInstruction load | load.getUnconvertedResultExpression() = va), delta) and - n.asExpr() = va and - state = delta - ) -} - /** * Gets the virtual dispatch branching limit when calculating field flow while searching * for flow from an allocation to the construction of an out-of-bounds pointer. @@ -100,125 +68,6 @@ predicate hasSize(HeuristicAllocationExpr alloc, DataFlow::Node n, int state) { */ int allocationToInvalidPointerFieldFlowBranchLimit() { result = 0 } -/** - * A module that encapsulates a barrier guard to remove false positives from flow like: - * ```cpp - * char *p = new char[size]; - * // ... - * unsigned n = size; - * // ... - * if(n < size) { - * use(*p[n]); - * } - * ``` - * In this case, the sink pair identified by the product flow library (without any additional barriers) - * would be `(p, n)` (where `n` is the `n` in `p[n]`), because there exists a pointer-arithmetic - * instruction `pai = a + b` such that: - * 1. the allocation flows to `a`, and - * 2. `b <= n` where `n` is the `n` in `p[n]` - * but because there's a strict comparison that compares `n` against the size of the allocation this - * snippet is fine. - */ -private module SizeBarrier { - private module SizeBarrierConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - // The sources is the same as in the sources for the second - // projection in the `AllocToInvalidPointerConfig` module. - hasSize(_, source, _) and - InterestingPointerAddInstruction::isInterestingSize(source) - } - - int fieldFlowBranchLimit() { result = allocationToInvalidPointerFieldFlowBranchLimit() } - - /** - * Holds if `small <= large + k` holds if `g` evaluates to `testIsTrue`. - */ - additional predicate isSink( - DataFlow::Node small, DataFlow::Node large, IRGuardCondition g, int k, boolean testIsTrue - ) { - // The sink is any "large" side of a relational comparison. i.e., the `large` expression - // in a guard such as `small <= large + k`. - g.comparesLt(small.asOperand(), large.asOperand(), k + 1, true, testIsTrue) - } - - predicate isSink(DataFlow::Node sink) { isSink(_, sink, _, _, _) } - } - - module SizeBarrierFlow = DataFlow::Global; - - private int getASizeAddend(DataFlow::Node node) { - exists(DataFlow::Node source | - SizeBarrierFlow::flow(source, node) and - hasSize(_, source, result) - ) - } - - /** - * Holds if `small <= large + k` holds if `g` evaluates to `edge`. - */ - private predicate operandGuardChecks( - IRGuardCondition g, Operand small, DataFlow::Node large, int k, boolean edge - ) { - SizeBarrierFlow::flowTo(large) and - SizeBarrierConfig::isSink(DataFlow::operandNode(small), large, g, k, edge) - } - - /** - * Gets an instruction `instr` that is guarded by a check such as `instr <= small + delta` where - * `small <= _ + k` and `small` is the "small side" of of a relational comparison that checks - * whether `small <= size` where `size` is the size of an allocation. - */ - Instruction getABarrierInstruction0(int delta, int k) { - exists( - IRGuardCondition g, ValueNumber value, Operand small, boolean edge, DataFlow::Node large - | - // We know: - // 1. result <= value + delta (by `bounded`) - // 2. value <= large + k (by `operandGuardChecks`). - // So: - // result <= value + delta (by 1.) - // <= large + k + delta (by 2.) - small = value.getAUse() and - operandGuardChecks(pragma[only_bind_into](g), pragma[only_bind_into](small), large, - pragma[only_bind_into](k), pragma[only_bind_into](edge)) and - bounded(result, value.getAnInstruction(), delta) and - g.controls(result.getBlock(), edge) and - k < getASizeAddend(large) - ) - } - - /** - * Gets an instruction that is guarded by a guard condition which ensures that - * the value of the instruction is upper-bounded by size of some allocation. - */ - bindingset[state] - pragma[inline_late] - Instruction getABarrierInstruction(int state) { - exists(int delta, int k | - state > k + delta and - // result <= "size of allocation" + delta + k - // < "size of allocation" + state - result = getABarrierInstruction0(delta, k) - ) - } - - /** - * Gets a `DataFlow::Node` that is guarded by a guard condition which ensures that - * the value of the node is upper-bounded by size of some allocation. - */ - DataFlow::Node getABarrierNode(int state) { - exists(DataFlow::Node source, int delta, int k | - SizeBarrierFlow::flow(source, result) and - hasSize(_, source, state) and - result.asInstruction() = SizeBarrier::getABarrierInstruction0(delta, k) and - state > k + delta - // so now we have: - // result <= "size of allocation" + delta + k - // < "size of allocation" + state - ) - } -} - private module InterestingPointerAddInstruction { private module PointerAddInstructionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { @@ -227,7 +76,7 @@ private module InterestingPointerAddInstruction { hasSize(source.asExpr(), _, _) } - int fieldFlowBranchLimit() { result = allocationToInvalidPointerFieldFlowBranchLimit() } + predicate fieldFlowBranchLimit = allocationToInvalidPointerFieldFlowBranchLimit/0; predicate isSink(DataFlow::Node sink) { sink.asInstruction() = any(PointerAddInstruction pai).getLeft() @@ -263,6 +112,17 @@ private module InterestingPointerAddInstruction { } } +private module SizeBarrierInput implements SizeBarrierInputSig { + predicate fieldFlowBranchLimit = allocationToInvalidPointerFieldFlowBranchLimit/0; + + predicate isSource(DataFlow::Node source) { + // The sources is the same as in the sources for the second + // projection in the `AllocToInvalidPointerConfig` module. + hasSize(_, source, _) and + InterestingPointerAddInstruction::isInterestingSize(source) + } +} + /** * A product-flow configuration for flow from an `(allocation, size)` pair to a * pointer-arithmetic operation `pai` such that `pai <= allocation + size`. @@ -301,7 +161,7 @@ private module Config implements ProductFlow::StateConfigSig { private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate predicate isBarrier2(DataFlow::Node node, FlowState2 state) { - node = SizeBarrier::getABarrierNode(state) + node = SizeBarrier::getABarrierNode(state) } predicate isBarrier2(DataFlow::Node node) { @@ -357,8 +217,8 @@ private predicate pointerAddInstructionHasBounds0( sizeInstr = sizeSink.asInstruction() and // pai.getRight() <= sizeSink + delta bounded1(right, sizeInstr, delta) and - not right = SizeBarrier::getABarrierInstruction(delta) and - not sizeInstr = SizeBarrier::getABarrierInstruction(delta) + not right = SizeBarrier::getABarrierInstruction(delta) and + not sizeInstr = SizeBarrier::getABarrierInstruction(delta) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/security/ProductFlowUtils/ProductFlowUtils.qll b/cpp/ql/lib/semmle/code/cpp/security/ProductFlowUtils/ProductFlowUtils.qll new file mode 100644 index 000000000000..151c5d1ae22a --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/security/ProductFlowUtils/ProductFlowUtils.qll @@ -0,0 +1,167 @@ +/** + * This file provides the `SizeBarrier` module which provides barriers for + * both the `cpp/invalid-pointer-deref` query and the `cpp/overrun-write` + * query. + */ + +private import cpp +private import semmle.code.cpp.dataflow.new.DataFlow +private import semmle.code.cpp.ir.ValueNumbering +private import semmle.code.cpp.controlflow.IRGuards +private import semmle.code.cpp.rangeanalysis.new.RangeAnalysisUtil + +private VariableAccess getAVariableAccess(Expr e) { e.getAChild*() = result } + +/** + * Gets a (sub)expression that may be the result of evaluating `size`. + * + * For example, `getASizeCandidate(a ? b : c)` gives `a ? b : c`, `b` and `c`. + */ +bindingset[size] +pragma[inline_late] +private Expr getASizeCandidate(Expr size) { + result = size + or + result = [size.(ConditionalExpr).getThen(), size.(ConditionalExpr).getElse()] +} + +/** + * Holds if the `(n, state)` pair represents the source of flow for the size + * expression associated with `alloc`. + */ +predicate hasSize(HeuristicAllocationExpr alloc, DataFlow::Node n, int state) { + exists(VariableAccess va, Expr size, int delta, Expr s | + size = alloc.getSizeExpr() and + s = getASizeCandidate(size) and + // Get the unique variable in a size expression like `x` in `malloc(x + 1)`. + va = unique( | | getAVariableAccess(s)) and + // Compute `delta` as the constant difference between `x` and `x + 1`. + bounded1(any(Instruction instr | instr.getUnconvertedResultExpression() = s), + any(LoadInstruction load | load.getUnconvertedResultExpression() = va), delta) and + n.asExpr() = va and + state = delta + ) +} + +/** Provides the input specification of the `SizeBarrier` module. */ +signature module SizeBarrierInputSig { + /** Gets the virtual dispatch branching limit when calculating field flow. */ + int fieldFlowBranchLimit(); + + /** Holds if `source` is a relevant data flow source. */ + predicate isSource(DataFlow::Node source); +} + +/** + * A module that encapsulates a barrier guard to remove false positives from flow like: + * ```cpp + * char *p = new char[size]; + * // ... + * unsigned n = size; + * // ... + * if(n < size) { + * use(*p[n]); + * } + * ``` + * In this case, the sink pair identified by the product flow library (without any additional barriers) + * would be `(p, n)` (where `n` is the `n` in `p[n]`), because there exists a pointer-arithmetic + * instruction `pai = a + b` such that: + * 1. the allocation flows to `a`, and + * 2. `b <= n` where `n` is the `n` in `p[n]` + * but because there's a strict comparison that compares `n` against the size of the allocation this + * snippet is fine. + */ +module SizeBarrier { + private module SizeBarrierConfig implements DataFlow::ConfigSig { + predicate isSource = Input::isSource/1; + + predicate fieldFlowBranchLimit = Input::fieldFlowBranchLimit/0; + + /** + * Holds if `small <= large + k` holds if `g` evaluates to `testIsTrue`. + */ + additional predicate isSink( + DataFlow::Node small, DataFlow::Node large, IRGuardCondition g, int k, boolean testIsTrue + ) { + // The sink is any "large" side of a relational comparison. i.e., the `large` expression + // in a guard such as `small <= large + k`. + g.comparesLt(small.asOperand(), large.asOperand(), k + 1, true, testIsTrue) + } + + predicate isSink(DataFlow::Node sink) { isSink(_, sink, _, _, _) } + } + + private module SizeBarrierFlow = DataFlow::Global; + + private int getASizeAddend(DataFlow::Node node) { + exists(DataFlow::Node source | + SizeBarrierFlow::flow(source, node) and + hasSize(_, source, result) + ) + } + + /** + * Holds if `small <= large + k` holds if `g` evaluates to `edge`. + */ + private predicate operandGuardChecks( + IRGuardCondition g, Operand small, DataFlow::Node large, int k, boolean edge + ) { + SizeBarrierFlow::flowTo(large) and + SizeBarrierConfig::isSink(DataFlow::operandNode(small), large, g, k, edge) + } + + /** + * Gets an instruction `instr` that is guarded by a check such as `instr <= small + delta` where + * `small <= _ + k` and `small` is the "small side" of a relational comparison that checks + * whether `small <= size` where `size` is the size of an allocation. + */ + private Instruction getABarrierInstruction0(int delta, int k) { + exists( + IRGuardCondition g, ValueNumber value, Operand small, boolean edge, DataFlow::Node large + | + // We know: + // 1. result <= value + delta (by `bounded`) + // 2. value <= large + k (by `operandGuardChecks`). + // So: + // result <= value + delta (by 1.) + // <= large + k + delta (by 2.) + small = value.getAUse() and + operandGuardChecks(pragma[only_bind_into](g), pragma[only_bind_into](small), large, + pragma[only_bind_into](k), pragma[only_bind_into](edge)) and + bounded(result, value.getAnInstruction(), delta) and + g.controls(result.getBlock(), edge) and + k < getASizeAddend(large) + ) + } + + /** + * Gets an instruction that is guarded by a guard condition which ensures that + * the value of the instruction is upper-bounded by size of some allocation. + */ + bindingset[state] + pragma[inline_late] + Instruction getABarrierInstruction(int state) { + exists(int delta, int k | + state > k + delta and + // result <= "size of allocation" + delta + k + // < "size of allocation" + state + result = getABarrierInstruction0(delta, k) + ) + } + + /** + * Gets a `DataFlow::Node` that is guarded by a guard condition which ensures that + * the value of the node is upper-bounded by size of some allocation. + */ + DataFlow::Node getABarrierNode(int state) { + exists(DataFlow::Node source, int delta, int k | + SizeBarrierFlow::flow(source, result) and + hasSize(_, source, state) and + result.asInstruction() = getABarrierInstruction0(delta, k) and + state > k + delta + // so now we have: + // result <= "size of allocation" + delta + k + // < "size of allocation" + state + ) + } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index e38346051783..5340d6d5f428 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1,3 +1,4 @@ +/*- Compilations -*/ /** * An invocation of the compiler. Note that more than one file may be @@ -138,6 +139,7 @@ compilation_finished( float elapsed_seconds : float ref ); +/*- External data -*/ /** * External data, loaded from CSV files during snapshot creation. See @@ -145,167 +147,83 @@ compilation_finished( * for more information. */ externalData( - int id : @externalDataElement, - string path : string ref, - int column: int ref, - string value : string ref + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref ); +/*- Source location prefix -*/ + /** * The source location of the snapshot. */ sourceLocationPrefix(string prefix : string ref); -/** - * Information about packages that provide code used during compilation. - * The `id` is just a unique identifier. - * The `namespace` is typically the name of the package manager that - * provided the package (e.g. "dpkg" or "yum"). - * The `package_name` is the name of the package, and `version` is its - * version (as a string). - */ -external_packages( - unique int id: @external_package, - string namespace : string ref, - string package_name : string ref, - string version : string ref -); +/*- Files and folders -*/ /** - * Holds if File `fileid` was provided by package `package`. - */ -header_to_external_package( - int fileid : @file ref, - int package : @external_package ref -); - -/* - * Version history - */ - -svnentries( - unique int id : @svnentry, - string revision : string ref, - string author : string ref, - date revisionDate : date ref, - int changeSize : int ref -) - -svnaffectedfiles( - int id : @svnentry ref, - int file : @file ref, - string action : string ref -) - -svnentrymsg( - unique int id : @svnentry ref, - string message : string ref -) - -svnchurn( - int commit : @svnentry ref, - int file : @file ref, - int addedLines : int ref, - int deletedLines : int ref -) - -/* - * C++ dbscheme - */ - -extractor_version( - string codeql_version: string ref, - string frontend_version: string ref -) - -@location = @location_stmt | @location_expr | @location_default ; - -/** - * The location of an element that is not an expression or a statement. + * The location of an element. * The location spans column `startcolumn` of line `startline` to * column `endcolumn` of line `endline` in file `file`. * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ locations_default( - /** The location of an element that is not an expression or a statement. */ - unique int id: @location_default, - int container: @container ref, - int startLine: int ref, - int startColumn: int ref, - int endLine: int ref, - int endColumn: int ref + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref ); -/** - * The location of a statement. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `file`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ -locations_stmt( - /** The location of a statement. */ - unique int id: @location_stmt, - int container: @container ref, - int startLine: int ref, - int startColumn: int ref, - int endLine: int ref, - int endColumn: int ref +files( + unique int id: @file, + string name: string ref ); -/** - * The location of an expression. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `file`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ -locations_expr( - /** The location of an expression. */ - unique int id: @location_expr, - int container: @container ref, - int startLine: int ref, - int startColumn: int ref, - int endLine: int ref, - int endColumn: int ref +folders( + unique int id: @folder, + string name: string ref ); -/** An element for which line-count information is available. */ -@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; +@container = @file | @folder -numlines( - int element_id: @sourceline ref, - int num_lines: int ref, - int num_code: int ref, - int num_comment: int ref +containerparent( + int parent: @container ref, + unique int child: @container ref ); -diagnostics( - unique int id: @diagnostic, - int severity: int ref, - string error_tag: string ref, - string error_message: string ref, - string full_error_message: string ref, - int location: @location_default ref -); +/*- Lines of code -*/ -files( - unique int id: @file, - string name: string ref +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref ); -folders( - unique int id: @folder, - string name: string ref +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref ); -@container = @folder | @file +/*- C++ dbscheme -*/ -containerparent( - int parent: @container ref, - unique int child: @container ref -); +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; fileannotations( int id: @file ref, @@ -347,7 +265,7 @@ macroparent( // to which a macro invocation is bound macrolocationbind( int id: @macroinvocation ref, - int location: @location ref + int location: @location_default ref ); #keyset[invocation, argument_index] @@ -364,18 +282,17 @@ macro_argument_expanded( string text: string ref ); -/* case @function.kind of - 1 = @normal_function + 0 = @unknown_function +| 1 = @normal_function | 2 = @constructor | 3 = @destructor | 4 = @conversion_function | 5 = @operator -| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk | 7 = @user_defined_literal | 8 = @deduction_guide ; -*/ functions( unique int id: @function, @@ -383,6 +300,10 @@ functions( int kind: int ref ); +builtin_functions( + int id: @function ref +) + function_entry_point( int id: @function ref, unique int entry_point: @stmt ref @@ -693,6 +614,9 @@ case @builtintype.kind of | 61 = @complex_std_float128 // _Complex _Float128 | 62 = @mfp8 // __mfp8 | 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t ; builtintypes( @@ -788,9 +712,8 @@ decltypes( boolean parentheses_would_change_meaning: boolean ref ); -/* case @type_operator.kind of -| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual | 1 = @underlying_type | 2 = @bases | 3 = @direct_bases @@ -811,7 +734,6 @@ case @type_operator.kind of | 18 = @remove_volatile | 19 = @remove_reference ; -*/ type_operators( unique int id: @type_operator, @@ -820,9 +742,8 @@ type_operators( int base_type: @type ref ) -/* case @usertype.kind of -| 0 = @unknown_usertype + 0 = @unknown_usertype | 1 = @struct | 2 = @class | 3 = @union @@ -842,7 +763,6 @@ case @usertype.kind of | 17 = @template_union | 18 = @alias ; -*/ usertypes( unique int id: @usertype, @@ -920,7 +840,7 @@ is_proxy_class_for( type_mentions( unique int id: @type_mention, int type_id: @type ref, - int location: @location ref, + int location: @location_default ref, // a_symbol_reference_kind from the frontend. int kind: int ref ); @@ -1669,7 +1589,7 @@ initialisers( unique int init: @initialiser, int var: @accessible ref, unique int expr: @expr ref, - int location: @location_expr ref + int location: @location_default ref ); braced_initialisers( @@ -1688,7 +1608,7 @@ expr_ancestor( exprs( unique int id: @expr, int kind: int ref, - int location: @location_expr ref + int location: @location_default ref ); expr_reuse( @@ -2190,7 +2110,7 @@ fold( stmts( unique int id: @stmt, int kind: int ref, - int location: @location_stmt ref + int location: @location_default ref ); case @stmt.kind of @@ -2431,76 +2351,73 @@ link_parent( int link_target : @link_target ref ); -/* XML Files */ +/*- XML Files -*/ -xmlEncoding(unique int id: @file ref, string encoding: string ref); +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); xmlDTDs( - unique int id: @xmldtd, - string root: string ref, - string publicId: string ref, - string systemId: string ref, - int fileid: @file ref + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref ); xmlElements( - unique int id: @xmlelement, - string name: string ref, - int parentid: @xmlparent ref, - int idx: int ref, - int fileid: @file ref + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref ); xmlAttrs( - unique int id: @xmlattribute, - int elementid: @xmlelement ref, - string name: string ref, - string value: string ref, - int idx: int ref, - int fileid: @file ref + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref ); xmlNs( - int id: @xmlnamespace, - string prefixName: string ref, - string URI: string ref, - int fileid: @file ref + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref ); xmlHasNs( - int elementId: @xmlnamespaceable ref, - int nsId: @xmlnamespace ref, - int fileid: @file ref + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref ); xmlComments( - unique int id: @xmlcomment, - string text: string ref, - int parentid: @xmlparent ref, - int fileid: @file ref + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref ); xmlChars( - unique int id: @xmlcharacters, - string text: string ref, - int parentid: @xmlparent ref, - int idx: int ref, - int isCDATA: int ref, - int fileid: @file ref + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref ); @xmlparent = @file | @xmlelement; @xmlnamespaceable = @xmlelement | @xmlattribute; xmllocations( - int xmlElement: @xmllocatable ref, - int location: @location_default ref + int xmlElement: @xmllocatable ref, + int location: @location_default ref ); -@xmllocatable = @xmlcharacters - | @xmlelement - | @xmlcomment - | @xmlattribute - | @xmldtd - | @file - | @xmlnamespace; +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index dc51cf5b2186..ef86a76e7edd 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,79 +2,91 @@ @compilation - 14471 + 12642 @externalDataElement 65 - @external_package - 4 + @file + 65211 + + + @folder + 12389 - @svnentry - 575525 + @diagnostic + 1484 @location_default - 36187310 + 46965929 - @location_stmt - 5217100 + @macro_expansion + 40257319 - @location_expr - 18007923 + @other_macro_reference + 300694 - @diagnostic - 1484 + @normal_function + 2740505 - @file - 74641 + @unknown_function + 1 - @folder - 14181 + @constructor + 698724 - @macro_expansion - 39310599 + @destructor + 86280 - @other_macro_reference - 300694 + @conversion_function + 10363 - @function - 4010790 + @operator + 653036 + + + @user_defined_literal + 998 + + + @deduction_guide + 5868 @fun_decl - 4149709 + 4206778 @var_decl - 9262608 + 9391612 @type_decl - 1687349 + 1634963 @namespace_decl - 430963 + 407321 @using_declaration - 306677 + 267931 @using_directive - 6474 + 6473 @using_enum_declaration @@ -82,27 +94,27 @@ @static_assert - 183514 + 173266 @parameter - 6957575 + 7026197 @membervariable - 1493401 + 1496815 @globalvariable - 488090 + 488591 @localvariable - 726100 + 726232 @enumconstant - 344765 + 345733 @errortype @@ -336,29 +348,41 @@ @scalable_vector_count 124 + + @complex_fp16 + 124 + + + @complex_std_bfloat16 + 124 + + + @complex_std_float16 + 124 + @pointer - 455609 + 452880 @type_with_specifiers - 695720 + 693866 @array - 98317 + 90401 @routineptr - 684232 + 684109 @reference - 969435 + 968192 @gnu_vector - 773 + 675 @routinereference @@ -366,7 +390,7 @@ @rvalue_reference - 291455 + 291306 @block @@ -376,25 +400,149 @@ @scalable_vector 1 - - @type_operator - 7960 - @decltype 102349 - @usertype - 4458594 + @typeof + 816 + + + @underlying_type + 624 + + + @bases + 1 + + + @direct_bases + 1 + + + @add_lvalue_reference + 1 + + + @add_pointer + 1 + + + @add_rvalue_reference + 1 + + + @decay + 1 + + + @make_signed + 1 + + + @make_unsigned + 1 + + + @remove_all_extents + 1 + + + @remove_const + 1 + + + @remove_cv + 2065 + + + @remove_cvref + 21 + + + @remove_extent + 1 + + + @remove_pointer + 1 + + + @remove_reference_t + 1 + + + @remove_restrict + 1 + + + @remove_volatile + 1 + + + @remove_reference + 5723 + + + @struct + 979865 + + + @union + 20977 + + + @enum + 41337 + + + @template_parameter + 867072 + + + @alias + 1762239 + + + @unknown_usertype + 1 + + + @class + 325269 + + + @template_template_parameter + 6115 + + + @proxy_class + 48438 + + + @scoped_enum + 11612 + + + @template_struct + 212078 + + + @template_class + 29342 + + + @template_union + 1373 @mangledname - 6330564 + 6370039 @type_mention - 5828707 + 5902897 @concept_template @@ -402,15 +550,15 @@ @routinetype - 604428 + 604319 @ptrtomember - 11025 + 9727 @specifier - 7745 + 7741 @gnuattribute @@ -418,11 +566,11 @@ @stdattribute - 350171 + 353114 @declspec - 329730 + 330047 @msattribute @@ -434,15 +582,15 @@ @attribute_arg_token - 16696 + 16693 @attribute_arg_constant_expr - 82124 + 71875 @attribute_arg_expr - 1607 + 1404 @attribute_arg_empty @@ -458,19 +606,19 @@ @derivation - 476986 + 476900 @frienddecl - 700589 + 700462 @comment - 11220843 + 11241965 @namespace - 9901 + 8650 @specialnamequalifyingelement @@ -478,15 +626,15 @@ @namequalifier - 3041775 + 3041863 @value - 13474605 + 13474606 @initialiser - 2340631 + 2251035 @address_of @@ -522,7 +670,7 @@ @postincrexpr - 84597 + 84581 @postdecrexpr @@ -554,11 +702,11 @@ @divexpr - 54088 + 52393 @remexpr - 16015 + 16012 @paddexpr @@ -566,11 +714,11 @@ @psubexpr - 68037 + 68024 @pdiffexpr - 43849 + 43951 @lshiftexpr @@ -590,7 +738,7 @@ @xorexpr - 73975 + 73961 @eqexpr @@ -610,7 +758,7 @@ @geexpr - 81384 + 81368 @leexpr @@ -630,11 +778,11 @@ @assignmulexpr - 12609 + 11185 @assigndivexpr - 6809 + 6807 @assignremexpr @@ -642,7 +790,7 @@ @assignlshiftexpr - 3704 + 3703 @assignrshiftexpr @@ -678,19 +826,19 @@ @commaexpr - 168901 + 168440 @subscriptexpr - 435142 + 435143 @callexpr - 261438 + 239778 @vastartexpr - 5085 + 4979 @vaargexpr @@ -706,7 +854,7 @@ @varaccess - 8254631 + 8254632 @runtime_sizeof @@ -714,7 +862,7 @@ @runtime_alignof - 49886 + 49877 @expr_stmt @@ -722,7 +870,7 @@ @routineexpr - 5732059 + 5732226 @type_operand @@ -738,7 +886,7 @@ @literal - 7967633 + 7967630 @aggregateliteral @@ -746,43 +894,43 @@ @c_style_cast - 6026987 + 6026986 @temp_init - 992341 + 992324 @errorexpr - 45695 + 45686 @reference_to - 1902670 + 1902638 @ref_indirect - 2107696 + 2107314 @vacuous_destructor_call - 7837 + 7835 @assume - 4394 + 4151 @conjugation - 12 + 10 @realpartexpr - 84 + 73 @imagpartexpr - 84 + 73 @jmulexpr @@ -822,15 +970,15 @@ @thisaccess - 1518626 + 1558310 @new_expr - 46206 + 46197 @delete_expr - 11483 + 11481 @throw_expr @@ -838,15 +986,15 @@ @condition_decl - 408893 + 408905 @braced_init_list - 2152 + 2151 @type_id - 47909 + 47901 @sizeof_pack @@ -898,11 +1046,11 @@ @isbaseofexpr - 259 + 258 @isclassexpr - 2538 + 2388 @isconvtoexpr @@ -910,15 +1058,15 @@ @isemptyexpr - 8869 + 8865 @isenumexpr - 2998 + 2996 @ispodexpr - 955 + 834 @ispolyexpr @@ -934,19 +1082,19 @@ @hastrivialdestructor - 2794 + 2793 @uuidof - 28060 + 26588 @delete_array_expr - 1426 + 1246 @new_array_expr - 6933 + 6653 @foldexpr @@ -954,7 +1102,7 @@ @ctordirectinit - 112823 + 112837 @ctorvirtualinit @@ -962,15 +1110,15 @@ @ctorfieldinit - 206504 + 206399 @ctordelegatinginit - 3622 + 3621 @dtordirectdestruct - 39425 + 39452 @dtorvirtualdestruct @@ -978,39 +1126,39 @@ @dtorfielddestruct - 39834 + 39826 @static_cast - 389023 + 348369 @reinterpret_cast - 41840 + 40089 @const_cast - 24466 + 24461 @dynamic_cast - 906 + 792 @lambdaexpr - 16482 + 19057 @param_ref - 164017 + 164014 @noopexpr - 51 + 48 @istriviallyconstructibleexpr - 3747 + 3745 @isdestructibleexpr @@ -1022,15 +1170,15 @@ @istriviallydestructibleexpr - 999 + 998 @istriviallyassignableexpr - 3747 + 3745 @isnothrowassignableexpr - 5122 + 5119 @istrivialexpr @@ -1042,7 +1190,7 @@ @istriviallycopyableexpr - 1226 + 1373 @isliteraltypeexpr @@ -1062,11 +1210,11 @@ @isconstructibleexpr - 3622 + 3621 @isnothrowconstructibleexpr - 20737 + 20727 @hasfinalizerexpr @@ -1102,7 +1250,7 @@ @isfinalexpr - 9404 + 9403 @noexceptexpr @@ -1118,7 +1266,7 @@ @builtinaddressof - 15490 + 15483 @vec_fill @@ -1162,7 +1310,7 @@ @builtinshuffle - 701 + 612 @blockassignexpr @@ -1278,7 +1426,7 @@ @reuseexpr - 846982 + 847007 @istriviallycopyassignable @@ -1390,11 +1538,11 @@ @concept_id - 90427 + 90430 @lambdacapture - 28526 + 31966 @stmt_expr @@ -1410,19 +1558,19 @@ @stmt_goto - 151588 + 157904 @stmt_label - 72706 + 78022 @stmt_return - 1255290 + 1241797 @stmt_block - 1844676 + 1729360 @stmt_end_test_while @@ -1434,11 +1582,11 @@ @stmt_switch_case - 836096 + 836120 @stmt_switch - 411840 + 411852 @stmt_asm @@ -1446,11 +1594,11 @@ @stmt_decl - 769069 + 772441 @stmt_empty - 429375 + 429388 @stmt_continue @@ -1458,7 +1606,7 @@ @stmt_break - 140293 + 137937 @stmt_try_block @@ -1466,7 +1614,7 @@ @stmt_microsoft_try - 224 + 211 @stmt_set_vla_size @@ -1486,11 +1634,11 @@ @stmt_handler - 43747 + 43746 @stmt_constexpr_if - 103814 + 106134 @stmt_co_return @@ -1510,7 +1658,7 @@ @ppd_if - 588907 + 591478 @ppd_ifdef @@ -1518,35 +1666,35 @@ @ppd_ifndef - 158246 + 158651 @ppd_elif - 25085 + 21916 @ppd_else - 236237 + 235118 @ppd_endif - 885609 + 889777 @ppd_plain_include - 364623 + 318555 @ppd_define - 2746401 + 2752617 @ppd_undef - 100941 + 100515 @ppd_pragma - 406763 + 406555 @ppd_include_next @@ -1554,7 +1702,7 @@ @ppd_line - 18829 + 18827 @ppd_error @@ -1582,7 +1730,7 @@ @link_target - 846 + 816 @xmldtd @@ -1612,15 +1760,15 @@ compilations - 14471 + 12642 id - 14471 + 12642 cwd - 12 + 10 @@ -1634,7 +1782,7 @@ 1 2 - 14471 + 12642 @@ -1650,7 +1798,7 @@ 1197 1198 - 12 + 10 @@ -1660,19 +1808,19 @@ compilation_args - 1158561 + 1012186 id - 14471 + 12642 num - 1680 + 1468 arg - 33500 + 29267 @@ -1686,77 +1834,77 @@ 36 42 - 1148 + 1003 42 43 - 1257 + 1098 43 44 - 822 + 718 44 45 - 580 + 506 45 51 - 1088 + 950 51 70 - 556 + 485 71 72 - 810 + 707 72 90 - 1027 + 897 94 96 - 447 + 390 98 99 - 1535 + 1341 100 102 - 108 + 95 103 104 - 2284 + 1996 104 119 - 1221 + 1066 120 138 - 1063 + 929 139 140 - 519 + 454 @@ -1772,72 +1920,72 @@ 34 38 - 677 + 591 38 39 - 1716 + 1499 39 40 - 1124 + 982 40 42 - 1245 + 1087 42 53 - 689 + 602 53 54 - 810 + 707 54 63 - 1027 + 897 64 67 - 459 + 401 67 68 - 1607 + 1404 68 70 - 1112 + 971 70 71 - 1607 + 1404 73 79 - 1088 + 950 79 89 - 1293 + 1130 89 90 - 12 + 10 @@ -1853,57 +2001,57 @@ 43 90 - 72 + 63 90 108 - 132 + 116 108 183 - 120 + 105 198 422 - 132 + 116 422 595 - 145 + 126 595 605 - 145 + 126 605 749 - 132 + 116 750 778 - 132 + 116 781 883 - 132 + 116 930 1190 - 96 + 84 1197 1198 - 435 + 380 @@ -1919,72 +2067,72 @@ 1 5 - 145 + 126 5 7 - 132 + 116 9 12 - 84 + 73 12 15 - 132 + 116 15 18 - 108 + 95 18 22 - 132 + 116 22 27 - 145 + 126 27 29 - 96 + 84 29 34 - 132 + 116 34 44 - 145 + 126 45 63 - 132 + 116 67 94 - 132 + 116 94 164 - 132 + 116 171 199 - 24 + 21 @@ -2000,22 +2148,22 @@ 1 2 - 15341 + 13403 2 3 - 14519 + 12685 3 103 - 2514 + 2196 104 1198 - 1124 + 982 @@ -2031,17 +2179,17 @@ 1 2 - 22184 + 19381 2 3 - 9986 + 8724 3 62 - 1329 + 1161 @@ -2051,15 +2199,15 @@ compilation_build_mode - 14471 + 12642 id - 14471 + 12642 mode - 12 + 10 @@ -2073,7 +2221,7 @@ 1 2 - 14471 + 12642 @@ -2089,7 +2237,7 @@ 1197 1198 - 12 + 10 @@ -2099,7 +2247,7 @@ compilation_compiling_files - 15742 + 15739 id @@ -2107,11 +2255,11 @@ num - 4521 + 4520 file - 13672 + 13670 @@ -2299,7 +2447,7 @@ 1 2 - 12311 + 12308 2 @@ -2325,7 +2473,7 @@ 1 2 - 12528 + 12526 2 @@ -2345,7 +2493,7 @@ compilation_time - 62971 + 62959 id @@ -2353,7 +2501,7 @@ num - 4521 + 4520 kind @@ -2361,7 +2509,7 @@ seconds - 13999 + 13343 @@ -2439,15 +2587,20 @@ 12 + + 2 + 3 + 54 + 3 4 - 762 + 653 4 5 - 599 + 653 6 @@ -2456,38 +2609,33 @@ 8 - 10 + 9 163 10 11 - 163 + 217 11 - 13 + 14 217 - 14 - 17 + 16 + 18 163 18 - 20 - 163 - - - 20 - 45 + 22 217 - 54 - 94 - 108 + 25 + 103 + 217 @@ -2539,7 +2687,7 @@ 4 5 - 4521 + 4520 @@ -2555,27 +2703,27 @@ 3 4 - 1307 + 1361 4 5 - 1143 + 1034 5 6 - 217 + 326 6 7 - 490 + 381 7 8 - 217 + 326 8 @@ -2584,19 +2732,14 @@ 9 - 17 + 22 381 - 23 - 51 + 25 + 91 381 - - 89 - 90 - 54 - @@ -2651,13 +2794,13 @@ 54 - 139 - 140 + 148 + 149 54 - 157 - 158 + 154 + 155 54 @@ -2674,17 +2817,17 @@ 1 2 - 7353 + 6644 2 3 - 3322 + 3267 3 4 - 1852 + 1797 4 @@ -2693,8 +2836,8 @@ 6 - 46 - 272 + 48 + 435 @@ -2710,32 +2853,32 @@ 1 2 - 6700 + 5882 2 3 - 2887 + 2941 3 4 - 1906 + 1960 4 5 - 1252 + 925 5 - 11 - 1089 + 7 + 1198 - 38 - 75 - 163 + 7 + 73 + 435 @@ -2751,12 +2894,12 @@ 1 2 - 11493 + 9857 2 3 - 2505 + 3485 @@ -3012,19 +3155,19 @@ compilation_finished - 14471 + 12642 id - 14471 + 12642 cpu_seconds - 10844 + 9579 elapsed_seconds - 217 + 232 @@ -3038,7 +3181,7 @@ 1 2 - 14471 + 12642 @@ -3054,7 +3197,7 @@ 1 2 - 14471 + 12642 @@ -3070,17 +3213,17 @@ 1 2 - 9151 + 8080 2 3 - 1172 + 1077 3 - 26 - 519 + 25 + 422 @@ -3096,12 +3239,12 @@ 1 2 - 10227 + 9051 2 3 - 616 + 528 @@ -3117,72 +3260,47 @@ 1 2 - 12 + 73 2 - 3 - 48 - - - 3 - 4 - 12 + 5 + 21 6 - 7 - 12 - - - 9 - 10 - 12 + 8 + 21 11 12 - 24 - - - 12 - 13 - 12 - - - 18 - 19 - 12 - - - 37 - 38 - 12 + 10 - 64 - 65 - 12 + 13 + 14 + 21 - 152 - 153 - 12 + 14 + 17 + 21 - 247 - 248 - 12 + 27 + 54 + 21 - 300 - 301 - 12 + 164 + 251 + 21 - 318 - 319 - 12 + 289 + 322 + 21 @@ -3198,77 +3316,47 @@ 1 2 - 12 + 73 2 - 3 - 48 - - - 3 - 4 - 12 + 5 + 21 6 - 7 - 12 - - - 9 - 10 - 12 - - - 10 - 11 - 12 + 8 + 21 11 12 - 12 - - - 12 - 13 - 12 - - - 18 - 19 - 12 - - - 37 - 38 - 12 + 10 - 60 - 61 - 12 + 13 + 14 + 21 - 139 - 140 - 12 + 14 + 17 + 21 - 162 - 163 - 12 + 26 + 53 + 21 - 228 - 229 - 12 + 154 + 161 + 21 - 244 - 245 - 12 + 227 + 246 + 21 @@ -3504,5082 +3592,38 @@ - external_packages - 4 - - - id - 4 - - - namespace - 1 - - - package_name - 4 - - - version - 4 - - - - - id - namespace - - - 12 - - - 1 - 2 - 4 - - - - - - - id - package_name - - - 12 - - - 1 - 2 - 4 - - - - - - - id - version - - - 12 - - - 1 - 2 - 4 - - - - - - - namespace - id - - - 12 - - - 4 - 5 - 1 - - - - - - - namespace - package_name - - - 12 - - - 4 - 5 - 1 - - - - - - - namespace - version - - - 12 - - - 4 - 5 - 1 - - - - - - - package_name - id - - - 12 - - - 1 - 2 - 4 - - - - - - - package_name - namespace - - - 12 - - - 1 - 2 - 4 - - - - - - - package_name - version - - - 12 - - - 1 - 2 - 4 - - - - - - - version - id - - - 12 - - - 1 - 2 - 4 - - - - - - - version - namespace - - - 12 - - - 1 - 2 - 4 - - - - - - - version - package_name - - - 12 - - - 1 - 2 - 4 - - - - - - - - - header_to_external_package - 92 - - - fileid - 92 - - - package - 4 - - - - - fileid - package - - - 12 - - - 1 - 2 - 92 - - - - - - - package - fileid - - - 12 - - - 1 - 2 - 1 - - - 5 - 6 - 1 - - - 6 - 7 - 1 - - - 80 - 81 - 1 - - - - - - - - - svnentries - 575525 - - - id - 575525 - - - revision - 575525 - - - author - 19539 - - - revisionDate - 547759 - - - changeSize - 1 - - - - - id - revision - - - 12 - - - 1 - 2 - 575525 - - - - - - - id - author - - - 12 - - - 1 - 2 - 575525 - - - - - - - id - revisionDate - - - 12 - - - 1 - 2 - 575525 - - - - - - - id - changeSize - - - 12 - - - 1 - 2 - 575525 - - - - - - - revision - id - - - 12 - - - 1 - 2 - 575525 - - - - - - - revision - author - - - 12 - - - 1 - 2 - 575525 - - - - - - - revision - revisionDate - - - 12 - - - 1 - 2 - 575525 - - - - - - - revision - changeSize - - - 12 - - - 1 - 2 - 575525 - - - - - - - author - id - - - 12 - - - 1 - 2 - 7913 - - - 2 - 3 - 2531 - - - 3 - 4 - 1388 - - - 4 - 6 - 1523 - - - 6 - 10 - 1529 - - - 10 - 20 - 1509 - - - 20 - 52 - 1488 - - - 52 - 568 - 1466 - - - 569 - 16582 - 192 - - - - - - - author - revision - - - 12 - - - 1 - 2 - 7913 - - - 2 - 3 - 2531 - - - 3 - 4 - 1388 - - - 4 - 6 - 1523 - - - 6 - 10 - 1529 - - - 10 - 20 - 1509 - - - 20 - 52 - 1488 - - - 52 - 568 - 1466 - - - 569 - 16582 - 192 - - - - - - - author - revisionDate - - - 12 - - - 1 - 2 - 7996 - - - 2 - 3 - 2509 - - - 3 - 4 - 1379 - - - 4 - 6 - 1520 - - - 6 - 10 - 1529 - - - 10 - 20 - 1507 - - - 20 - 52 - 1474 - - - 52 - 662 - 1466 - - - 663 - 16573 - 159 - - - - - - - author - changeSize - - - 12 - - - 1 - 2 - 19539 - - - - - - - revisionDate - id - - - 12 - - - 1 - 2 - 531878 - - - 2 - 100 - 15881 - - - - - - - revisionDate - revision - - - 12 - - - 1 - 2 - 531878 - - - 2 - 100 - 15881 - - - - - - - revisionDate - author - - - 12 - - - 1 - 2 - 542505 - - - 2 - 17 - 5254 - - - - - - - revisionDate - changeSize - - - 12 - - - 1 - 2 - 547759 - - - - - - - changeSize - id - - - 12 - - - 575525 - 575526 - 1 - - - - - - - changeSize - revision - - - 12 - - - 575525 - 575526 - 1 - - - - - - - changeSize - author - - - 12 - - - 19539 - 19540 - 1 - - - - - - - changeSize - revisionDate - - - 12 - - - 547759 - 547760 - 1 - - - - - - - - - svnaffectedfiles - 1314068 - - - id - 531628 - - - file - 90924 - - - action - 1 - - - - - id - file - - - 12 - - - 1 - 2 - 337698 - - - 2 - 3 - 77525 - - - 3 - 4 - 43024 - - - 4 - 7 - 46689 - - - 7 - 16635 - 26692 - - - - - - - id - action - - - 12 - - - 1 - 2 - 531628 - - - - - - - file - id - - - 12 - - - 1 - 2 - 11819 - - - 2 - 3 - 18230 - - - 3 - 4 - 9501 - - - 4 - 5 - 6656 - - - 5 - 6 - 5012 - - - 6 - 8 - 7103 - - - 8 - 11 - 6788 - - - 11 - 16 - 6996 - - - 16 - 26 - 7180 - - - 26 - 54 - 6824 - - - 54 - 3572 - 4815 - - - - - - - file - action - - - 12 - - - 1 - 2 - 90924 - - - - - - - action - id - - - 12 - - - 531628 - 531629 - 1 - - - - - - - action - file - - - 12 - - - 90924 - 90925 - 1 - - - - - - - - - svnentrymsg - 575525 - - - id - 575525 - - - message - 568305 - - - - - id - message - - - 12 - - - 1 - 2 - 575525 - - - - - - - message - id - - - 12 - - - 1 - 2 - 565381 - - - 2 - 142 - 2924 - - - - - - - - - svnchurn - 46790 - - - commit - 22361 - - - file - 16124 - - - addedLines - 910 - - - deletedLines - 787 - - - - - commit - file - - - 12 - - - 1 - 2 - 15208 - - - 2 - 3 - 3101 - - - 3 - 4 - 1746 - - - 4 - 8 - 1774 - - - 8 - 246 - 532 - - - - - - - commit - addedLines - - - 12 - - - 1 - 2 - 16074 - - - 2 - 3 - 3323 - - - 3 - 4 - 1561 - - - 4 - 118 - 1403 - - - - - - - commit - deletedLines - - - 12 - - - 1 - 2 - 16799 - - - 2 - 3 - 3286 - - - 3 - 5 - 1763 - - - 5 - 113 - 513 - - - - - - - file - commit - - - 12 - - - 1 - 2 - 8618 - - - 2 - 3 - 2956 - - - 3 - 4 - 1426 - - - 4 - 6 - 1364 - - - 6 - 12 - 1210 - - - 12 - 448 - 550 - - - - - - - file - addedLines - - - 12 - - - 1 - 2 - 9240 - - - 2 - 3 - 3129 - - - 3 - 4 - 1393 - - - 4 - 6 - 1239 - - - 6 - 59 - 1123 - - - - - - - file - deletedLines - - - 12 - - - 1 - 2 - 9525 - - - 2 - 3 - 3192 - - - 3 - 4 - 1401 - - - 4 - 7 - 1387 - - - 7 - 70 - 619 - - - - - - - addedLines - commit - - - 12 - - - 1 - 2 - 446 - - - 2 - 3 - 133 - - - 3 - 4 - 70 - - - 4 - 6 - 68 - - - 6 - 12 - 70 - - - 12 - 57 - 69 - - - 57 - 6874 - 54 - - - - - - - addedLines - file - - - 12 - - - 1 - 2 - 445 - - - 2 - 3 - 132 - - - 3 - 4 - 69 - - - 4 - 6 - 68 - - - 6 - 12 - 73 - - - 12 - 58 - 69 - - - 58 - 6663 - 54 - - - - - - - addedLines - deletedLines - - - 12 - - - 1 - 2 - 621 - - - 2 - 3 - 96 - - - 3 - 7 - 81 - - - 7 - 34 - 70 - - - 34 - 727 - 42 - - - - - - - deletedLines - commit - - - 12 - - - 1 - 2 - 439 - - - 2 - 3 - 116 - - - 3 - 4 - 48 - - - 4 - 8 - 67 - - - 8 - 28 - 60 - - - 28 - 6794 - 57 - - - - - - - deletedLines - file - - - 12 - - - 1 - 2 - 437 - - - 2 - 3 - 113 - - - 3 - 4 - 49 - - - 4 - 7 - 61 - - - 7 - 19 - 60 - - - 19 - 770 - 60 - - - 985 - 7318 - 7 - - - - - - - deletedLines - addedLines - - - 12 - - - 1 - 2 - 545 - - - 2 - 3 - 72 - - - 3 - 7 - 69 - - - 7 - 30 - 60 - - - 30 - 871 - 41 - - - - - - - - - extractor_version - 124 - - - codeql_version - 124 - - - frontend_version - 124 - - - - - codeql_version - frontend_version - - - 12 - - - 1 - 2 - 124 - - - - - - - frontend_version - codeql_version - - - 12 - - - 1 - 2 - 124 - - - - - - - - - locations_default - 36187310 - - - id - 36187310 - - - container - 40976 - - - startLine - 7487141 - - - startColumn - 21237 - - - endLine - 7489140 - - - endColumn - 53468 - - - - - id - container - - - 12 - - - 1 - 2 - 36187310 - - - - - - - id - startLine - - - 12 - - - 1 - 2 - 36187310 - - - - - - - id - startColumn - - - 12 - - - 1 - 2 - 36187310 - - - - - - - id - endLine - - - 12 - - - 1 - 2 - 36187310 - - - - - - - id - endColumn - - - 12 - - - 1 - 2 - 36187310 - - - - - - - container - id - - - 12 - - - 1 - 15 - 3123 - - - 15 - 41 - 3123 - - - 42 - 66 - 3373 - - - 67 - 95 - 3123 - - - 98 - 124 - 3248 - - - 124 - 174 - 3373 - - - 175 - 228 - 3123 - - - 230 - 303 - 3123 - - - 305 - 406 - 3123 - - - 408 - 596 - 3248 - - - 598 - 943 - 3123 - - - 986 - 2568 - 3123 - - - 2587 - 57658 - 2748 - - - - - - - container - startLine - - - 12 - - - 1 - 13 - 3497 - - - 13 - 29 - 3248 - - - 29 - 42 - 3123 - - - 42 - 58 - 3373 - - - 58 - 76 - 3123 - - - 77 - 102 - 3248 - - - 102 - 134 - 3123 - - - 134 - 173 - 3123 - - - 173 - 242 - 3123 - - - 243 - 348 - 3123 - - - 348 - 489 - 3123 - - - 493 - 1269 - 3123 - - - 1337 - 57597 - 2623 - - - - - - - container - startColumn - - - 12 - - - 1 - 4 - 2248 - - - 4 - 7 - 3123 - - - 7 - 12 - 3497 - - - 12 - 16 - 3123 - - - 16 - 22 - 3373 - - - 22 - 28 - 3123 - - - 28 - 33 - 3248 - - - 33 - 39 - 3373 - - - 39 - 48 - 3373 - - - 48 - 60 - 3373 - - - 60 - 82 - 3373 - - - 83 - 98 - 3248 - - - 98 - 141 - 2498 - - - - - - - container - endLine - - - 12 - - - 1 - 13 - 3497 - - - 13 - 29 - 3248 - - - 29 - 42 - 3123 - - - 42 - 58 - 3373 - - - 58 - 76 - 3123 - - - 77 - 102 - 3248 - - - 102 - 134 - 3123 - - - 134 - 173 - 3248 - - - 174 - 244 - 3123 - - - 246 - 348 - 3123 - - - 348 - 494 - 3123 - - - 513 - 1349 - 3123 - - - 1407 - 57597 - 2498 - - - - - - - container - endColumn - - - 12 - - - 1 - 12 - 3373 - - - 13 - 24 - 3248 - - - 25 - 33 - 3248 - - - 33 - 39 - 3373 - - - 39 - 45 - 3622 - - - 45 - 54 - 3123 - - - 54 - 62 - 3622 - - - 62 - 71 - 3373 - - - 71 - 83 - 3497 - - - 83 - 99 - 3123 - - - 99 - 114 - 3123 - - - 114 - 143 - 3123 - - - 147 - 363 - 1124 - - - - - - - startLine - id - - - 12 - - - 1 - 2 - 4954615 - - - 2 - 3 - 799784 - - - 3 - 4 - 565670 - - - 4 - 12 - 592405 - - - 12 - 210 - 561673 - - - 210 - 534 - 12992 - - - - - - - startLine - container - - - 12 - - - 1 - 2 - 5012832 - - - 2 - 3 - 1233157 - - - 3 - 6 - 663363 - - - 6 - 106 - 561673 - - - 107 - 329 - 16115 - - - - - - - startLine - startColumn - - - 12 - - - 1 - 2 - 5648961 - - - 2 - 3 - 532065 - - - 3 - 7 - 578663 - - - 7 - 24 - 570792 - - - 24 - 72 - 156658 - - - - - - - startLine - endLine - - - 12 - - - 1 - 2 - 7312493 - - - 2 - 81 - 174648 - - - - - - - startLine - endColumn - - - 12 - - - 1 - 2 - 5021452 - - - 2 - 3 - 766678 - - - 3 - 4 - 559174 - - - 4 - 12 - 603648 - - - 12 - 235 - 536187 - - - - - - - startColumn - id - - - 12 - - - 1 - 2 - 1499 - - - 2 - 4 - 1873 - - - 4 - 9 - 1624 - - - 9 - 19 - 1748 - - - 20 - 74 - 1624 - - - 81 - 173 - 1624 - - - 173 - 435 - 1624 - - - 468 - 904 - 1624 - - - 945 - 1309 - 1624 - - - 1328 - 1510 - 1624 - - - 1531 - 1774 - 1624 - - - 1834 - 2887 - 1624 - - - 3491 - 119749 - 1499 - - - - - - - startColumn - container - - - 12 - - - 1 - 2 - 1873 - - - 2 - 4 - 1748 - - - 4 - 6 - 1499 - - - 6 - 11 - 1748 - - - 11 - 33 - 1624 - - - 34 - 45 - 1624 - - - 50 - 75 - 1748 - - - 78 - 98 - 1748 - - - 101 - 131 - 1624 - - - 131 - 147 - 1873 - - - 149 - 161 - 1624 - - - 162 - 198 - 1624 - - - 202 - 329 - 874 - - - - - - - startColumn - startLine - - - 12 - - - 1 - 2 - 1624 - - - 2 - 4 - 1873 - - - 4 - 9 - 1624 - - - 9 - 19 - 1748 - - - 20 - 74 - 1624 - - - 80 - 169 - 1624 - - - 171 - 432 - 1624 - - - 467 - 822 - 1624 - - - 861 - 1001 - 1624 - - - 1002 - 1190 - 1624 - - - 1201 - 1338 - 1624 - - - 1347 - 1920 - 1624 - - - 2210 - 59360 - 1374 - - - - - - - startColumn - endLine - - - 12 - - - 1 - 2 - 1624 - - - 2 - 4 - 1873 - - - 4 - 9 - 1624 - - - 9 - 19 - 1748 - - - 20 - 74 - 1624 - - - 80 - 169 - 1624 - - - 171 - 432 - 1624 - - - 467 - 822 - 1624 - - - 861 - 1003 - 1624 - - - 1003 - 1198 - 1624 - - - 1201 - 1338 - 1624 - - - 1347 - 1920 - 1624 - - - 2220 - 59375 - 1374 - - - - - - - startColumn - endColumn - - - 12 - - - 1 - 2 - 1873 - - - 2 - 4 - 1748 - - - 4 - 7 - 1873 - - - 7 - 13 - 1748 - - - 13 - 21 - 1748 - - - 21 - 29 - 1624 - - - 29 - 37 - 1499 - - - 37 - 50 - 1624 - - - 50 - 58 - 1624 - - - 61 - 67 - 1748 - - - 67 - 76 - 1624 - - - 76 - 137 - 1624 - - - 139 - 299 - 874 - - - - - - - endLine - id - - - 12 - - - 1 - 2 - 4954241 - - - 2 - 3 - 807030 - - - 3 - 4 - 560798 - - - 4 - 12 - 592779 - - - 12 - 214 - 561797 - - - 214 - 530 - 12492 - - - - - - - endLine - container - - - 12 - - - 1 - 2 - 5011332 - - - 2 - 3 - 1236280 - - - 3 - 6 - 663738 - - - 6 - 107 - 561797 - - - 107 - 329 - 15990 - - - - - - - endLine - startLine - - - 12 - - - 1 - 2 - 7307996 - - - 2 - 7 - 181144 - - - - - - - endLine - startColumn - - - 12 - - - 1 - 2 - 5651585 - - - 2 - 3 - 530691 - - - 3 - 7 - 579537 - - - 7 - 24 - 570417 - - - 24 - 72 - 156908 - - - - - - - endLine - endColumn - - - 12 - - - 1 - 2 - 5021327 - - - 2 - 3 - 773299 - - - 3 - 4 - 554552 - - - 4 - 12 - 604648 - - - 12 - 235 - 535313 - - - - - - - endColumn - id - - - 12 - - - 1 - 2 - 15740 - - - 2 - 3 - 5621 - - - 3 - 7 - 4497 - - - 7 - 17 - 4122 - - - 17 - 32 - 4247 - - - 35 - 103 - 4122 - - - 147 - 635 - 4122 - - - 651 - 2069 - 4122 - - - 2137 - 3404 - 4122 - - - 3430 - 33692 - 2748 - - - - - - - endColumn - container - - - 12 - - - 1 - 2 - 18614 - - - 2 - 3 - 5621 - - - 3 - 5 - 4247 - - - 5 - 7 - 3373 - - - 7 - 15 - 4622 - - - 15 - 78 - 4122 - - - 78 - 143 - 4247 - - - 150 - 202 - 4122 - - - 203 - 263 - 4122 - - - 266 - 329 - 374 - - - - - - - endColumn - startLine - - - 12 - - - 1 - 2 - 15990 - - - 2 - 3 - 5996 - - - 3 - 7 - 4122 - - - 7 - 17 - 4247 - - - 17 - 35 - 4122 - - - 35 - 140 - 4122 - - - 157 - 601 - 4122 - - - 610 - 1714 - 4122 - - - 1749 - 2382 - 4122 - - - 2421 - 30689 - 2498 - - - - - - - endColumn - startColumn - - - 12 - - - 1 - 2 - 17364 - - - 2 - 3 - 6371 - - - 3 - 4 - 3123 - - - 4 - 6 - 3872 - - - 6 - 11 - 4622 - - - 11 - 22 - 4122 - - - 22 - 40 - 4247 - - - 42 - 60 - 4872 - - - 60 - 68 - 4122 - - - 68 - 73 - 749 - - - - - - - endColumn - endLine - - - 12 - - - 1 - 2 - 15990 - - - 2 - 3 - 5996 - - - 3 - 7 - 4122 - - - 7 - 17 - 4372 - - - 17 - 36 - 4247 - - - 36 - 170 - 4122 - - - 173 - 620 - 4122 - - - 622 - 1824 - 4122 - - - 1843 - 2449 - 4122 - - - 2460 - 30688 - 2248 - - - - - - - - - locations_stmt - 5217100 - - - id - 5217100 - - - container - 4164 - - - startLine - 273596 - - - startColumn - 2560 - - - endLine - 265745 - - - endColumn - 3235 - - - - - id - container - - - 12 - - - 1 - 2 - 5217100 - - - - - - - id - startLine - - - 12 - - - 1 - 2 - 5217100 - - - - - - - id - startColumn - - - 12 - - - 1 - 2 - 5217100 - - - - - - - id - endLine - - - 12 - - - 1 - 2 - 5217100 - - - - - - - id - endColumn - - - 12 - - - 1 - 2 - 5217100 - - - - - - - container - id - - - 12 - - - 1 - 18 - 337 - - - 18 - 60 - 337 - - - 61 - 180 - 337 - - - 190 - 450 - 337 - - - 454 - 628 - 337 - - - 653 - 883 - 337 - - - 906 - 1161 - 337 - - - 1167 - 1466 - 337 - - - 1508 - 1785 - 337 - - - 1858 - 2296 - 337 - - - 2347 - 2833 - 337 - - - 2871 - 4105 - 337 - - - 4275 - 4993 - 112 - - - - - - - container - startLine - - - 12 - - - 1 - 18 - 337 - - - 18 - 49 - 337 - - - 59 - 170 - 337 - - - 170 - 394 - 337 - - - 434 - 603 - 337 - - - 610 - 846 - 337 - - - 880 - 1132 - 337 - - - 1135 - 1395 - 337 - - - 1409 - 1727 - 337 - - - 1761 - 2226 - 337 - - - 2250 - 2778 - 337 - - - 2800 - 3886 - 337 - - - 3965 - 4846 - 112 - - - - - - - container - startColumn - - - 12 - - - 1 - 3 - 281 - - - 3 - 7 - 309 - - - 7 - 9 - 309 - - - 9 - 11 - 337 - - - 11 - 13 - 309 - - - 13 - 14 - 309 - - - 14 - 16 - 337 - - - 16 - 17 - 225 - - - 17 - 19 - 281 - - - 19 - 21 - 253 - - - 21 - 23 - 337 - - - 23 - 29 - 337 - - - 29 - 43 - 337 - - - 48 - 60 - 196 - - - - - - - container - endLine - - - 12 - - - 1 - 15 - 337 - - - 15 - 44 - 337 - - - 47 - 137 - 337 - - - 141 - 314 - 337 - - - 328 - 472 - 337 - - - 488 - 643 - 337 - - - 675 - 858 - 365 - - - 865 - 1107 - 337 - - - 1178 - 1343 - 337 - - - 1401 - 1768 - 337 - - - 1782 - 2165 - 337 - - - 2254 - 3130 - 337 - - - 3343 - 3873 - 84 - - - - - - - container - endColumn - - - 12 - - - 1 - 7 - 337 - - - 8 - 26 - 365 - - - 26 - 47 - 365 - - - 47 - 59 - 337 - - - 59 - 64 - 309 - - - 64 - 67 - 281 - - - 67 - 69 - 337 - - - 69 - 71 - 309 - - - 71 - 72 - 337 - - - 72 - 74 - 337 - - - 74 - 76 - 337 - - - 76 - 80 - 337 - - - 81 - 96 - 168 - - - - - - - startLine - id - - - 12 - - - 1 - 2 - 29489 - - - 2 - 3 - 20935 - - - 3 - 4 - 17080 - - - 4 - 6 - 19781 - - - 6 - 8 - 17136 - - - 8 - 11 - 22877 - - - 11 - 16 - 23636 - - - 16 - 22 - 20991 - - - 22 - 29 - 23299 - - - 29 - 37 - 23749 - - - 37 - 45 - 20682 - - - 45 - 56 - 22201 - - - 56 - 73 - 11734 - - - - - - - startLine - container - - - 12 - - - 1 - 2 - 30530 - - - 2 - 3 - 21526 - - - 3 - 4 - 17361 - - - 4 - 6 - 19697 - - - 6 - 8 - 17418 - - - 8 - 11 - 24058 - - - 11 - 16 - 22398 - - - 16 - 22 - 22201 - - - 22 - 29 - 23214 - - - 29 - 36 - 21920 - - - 36 - 44 - 22370 - - - 44 - 54 - 21723 - - - 54 - 68 - 9173 - - - - - - - startLine - startColumn - - - 12 - - - 1 - 2 - 36721 - - - 2 - 3 - 28533 - - - 3 - 4 - 23017 - - - 4 - 5 - 22032 - - - 5 - 6 - 23861 - - - 6 - 7 - 27182 - - - 7 - 8 - 31149 - - - 8 - 9 - 27970 - - - 9 - 10 - 20485 - - - 10 - 12 - 22764 - - - 12 - 18 - 9876 - - - - - - - startLine - endLine - - - 12 - - - 1 - 2 - 47358 - - - 2 - 3 - 35314 - - - 3 - 4 - 25240 - - - 4 - 5 - 22173 - - - 5 - 6 - 17502 - - - 6 - 7 - 16517 - - - 7 - 8 - 13956 - - - 8 - 9 - 15110 - - - 9 - 10 - 14773 - - - 10 - 11 - 14435 - - - 11 - 12 - 13900 - - - 12 - 14 - 21638 - - - 14 - 24 - 15673 - - - - - - - startLine - endColumn - - - 12 - - - 1 - 2 - 30305 - - - 2 - 3 - 22173 - - - 3 - 4 - 17727 - - - 4 - 6 - 22004 - - - 6 - 8 - 20119 - - - 8 - 10 - 18065 - - - 10 - 14 - 25015 - - - 14 - 18 - 23299 - - - 18 - 22 - 24143 - - - 22 - 26 - 25297 - - - 26 - 30 - 22595 - - - 30 - 36 - 20738 - - - 36 - 42 - 2110 - - - - - - - startColumn - id - - - 12 - - - 1 - 2 - 309 - - - 2 - 3 - 196 - - - 3 - 7 - 225 - - - 7 - 12 - 196 - - - 12 - 20 - 225 - - - 21 - 53 - 196 - - - 54 - 74 - 196 - - - 78 - 92 - 196 - - - 92 - 134 - 196 - - - 134 - 228 - 196 - - - 228 - 2062 - 196 - - - 3248 - 40806 - 196 - - - 53241 - 53242 - 28 - - - - - - - startColumn - container - - - 12 - - - 1 - 2 - 393 - - - 2 - 3 - 140 - - - 3 - 5 - 225 - - - 5 - 8 - 225 - - - 8 - 13 - 196 - - - 13 - 18 - 196 - - - 18 - 22 - 196 - - - 22 - 24 - 196 - - - 24 - 29 - 196 - - - 33 - 42 - 196 - - - 47 - 110 - 196 - - - 116 - 148 - 196 - - - - - - - startColumn - startLine - - - 12 - - - 1 - 2 - 309 - - - 2 - 3 - 196 - - - 3 - 7 - 225 - - - 7 - 12 - 196 - - - 12 - 20 - 225 - - - 21 - 53 - 196 - - - 54 - 74 - 196 - - - 77 - 88 - 196 - - - 90 - 131 - 196 - - - 134 - 224 - 196 - - - 226 - 1699 - 196 - - - 2432 - 7900 - 196 - - - 8302 - 8303 - 28 - - - - - - - startColumn - endLine - - - 12 - - - 1 - 2 - 309 - - - 2 - 3 - 196 - - - 3 - 7 - 225 - - - 7 - 12 - 196 - - - 12 - 20 - 225 - - - 21 - 53 - 196 - - - 54 - 74 - 196 - - - 77 - 88 - 196 - - - 90 - 130 - 196 - - - 134 - 221 - 196 - - - 226 - 1414 - 196 - - - 2291 - 7741 - 196 - - - 8096 - 8097 - 28 - - - - - - - startColumn - endColumn - - - 12 - - - 1 - 2 - 393 - - - 2 - 3 - 196 - - - 3 - 4 - 112 - - - 4 - 5 - 225 - - - 5 - 8 - 225 - - - 8 - 11 - 196 - - - 11 - 15 - 225 - - - 15 - 19 - 196 - - - 19 - 26 - 196 - - - 28 - 35 - 196 - - - 41 - 69 - 196 - - - 70 - 104 - 196 - - - - - - - endLine - id - - - 12 - - - 1 - 2 - 23833 - - - 2 - 3 - 19725 - - - 3 - 4 - 15729 - - - 4 - 6 - 21357 - - - 6 - 8 - 17108 - - - 8 - 11 - 21160 - - - 11 - 15 - 20063 - - - 15 - 21 - 22004 - - - 21 - 27 - 21132 - - - 27 - 34 - 20428 - - - 34 - 42 - 21610 - - - 42 - 51 - 19978 - - - 51 - 68 - 20316 - - - 68 - 130 - 1294 - - - - - - - endLine - container - - - 12 - - - 1 - 2 - 34160 - - - 2 - 3 - 22089 - - - 3 - 4 - 17474 - - - 4 - 6 - 21441 - - - 6 - 8 - 20541 - - - 8 - 11 - 21751 - - - 11 - 16 - 23861 - - - 16 - 20 - 19978 - - - 20 - 26 - 23496 - - - 26 - 32 - 22286 - - - 32 - 39 - 20513 - - - 39 - 58 - 18149 - - - - - - - endLine - startLine - - - 12 - - - 1 - 2 - 44459 - - - 2 - 3 - 32500 - - - 3 - 4 - 25268 - - - 4 - 5 - 20851 - - - 5 - 6 - 18909 - - - 6 - 7 - 15898 - - - 7 - 8 - 16292 - - - 8 - 9 - 14969 - - - 9 - 10 - 13956 - - - 10 - 12 - 24509 - - - 12 - 15 - 24255 - - - 15 - 100 - 13872 - - - - - - - endLine - startColumn - - - 12 - - - 1 - 2 - 34160 - - - 2 - 3 - 27913 - - - 3 - 4 - 23045 - - - 4 - 5 - 24396 - - - 5 - 6 - 25409 - - - 6 - 7 - 28026 - - - 7 - 8 - 30699 - - - 8 - 9 - 25662 - - - 9 - 10 - 17671 - - - 10 - 12 - 20513 - - - 12 - 18 - 8244 - - - - - - - endLine - endColumn - - - 12 - - - 1 - 2 - 33823 - - - 2 - 3 - 22764 - - - 3 - 4 - 17164 - - - 4 - 6 - 24396 - - - 6 - 8 - 20991 - - - 8 - 10 - 17530 - - - 10 - 13 - 19753 - - - 13 - 16 - 20569 - - - 16 - 19 - 20119 - - - 19 - 22 - 19022 - - - 22 - 26 - 23749 - - - 26 - 31 - 21019 - - - 31 - 39 - 4839 - - - - - - - endColumn - id - - - 12 - - - 1 - 2 - 253 - - - 2 - 4 - 253 - - - 4 - 7 - 225 - - - 7 - 16 - 253 - - - 23 - 131 - 253 - - - 149 - 388 - 253 - - - 392 - 675 - 253 - - - 710 - 1137 - 253 - - - 1139 - 1672 - 253 - - - 1883 - 2794 - 253 - - - 2937 - 4095 - 253 - - - 4146 - 4771 - 253 - - - 5032 - 15404 - 225 - - - - - - - endColumn - container - - - 12 - - - 1 - 2 - 281 - - - 2 - 3 - 253 - - - 3 - 6 - 253 - - - 6 - 21 - 253 - - - 31 - 67 - 253 - - - 68 - 93 - 253 - - - 94 - 106 - 253 - - - 107 - 112 - 253 - - - 112 - 118 - 253 - - - 118 - 122 - 196 - - - 122 - 123 - 140 - - - 123 - 124 - 225 - - - 124 - 127 - 253 - - - 127 - 147 - 112 - - - - - - - endColumn - startLine - - - 12 - - - 1 - 2 - 253 - - - 2 - 4 - 253 - - - 4 - 7 - 225 - - - 7 - 15 - 253 - - - 22 - 129 - 253 - - - 143 - 374 - 253 - - - 379 - 646 - 253 - - - 666 - 963 - 253 - - - 1000 - 1430 - 253 - - - 1586 - 2172 - 253 - - - 2265 - 2916 - 253 - - - 2948 - 3215 - 253 - - - 3417 - 5821 - 225 - - - - - - - endColumn - startColumn - - - 12 - - - 1 - 2 - 281 - - - 2 - 3 - 225 - - - 3 - 5 - 281 - - - 5 - 8 - 253 - - - 8 - 12 - 253 - - - 12 - 14 - 168 - - - 14 - 16 - 253 - - - 16 - 19 - 168 - - - 19 - 21 - 225 - - - 21 - 23 - 253 - - - 23 - 25 - 253 - - - 25 - 28 - 253 - - - 28 - 33 - 281 - - - 45 - 57 - 84 - - - - - - - endColumn - endLine - - - 12 - - - 1 - 2 - 281 - - - 2 - 4 - 225 - - - 4 - 7 - 281 - - - 7 - 27 - 253 - - - 42 - 130 - 253 - - - 139 - 325 - 253 - - - 364 - 584 - 253 - - - 610 - 967 - 253 - - - 1056 - 1409 - 253 - - - 1420 - 2038 - 253 - - - 2065 - 2627 - 253 - - - 2651 - 3073 - 253 - - - 3086 - 4516 - 168 - - - - - - - - - locations_expr - 18007923 + locations_default + 46965929 id - 18007923 + 46965929 - container - 6359 + file + 40955 - startLine - 262734 + beginLine + 7507421 - startColumn - 3376 + beginColumn + 21975 endLine - 262706 + 7508545 endColumn - 3826 + 53441 id - container + file 12 @@ -8587,7 +3631,7 @@ 1 2 - 18007923 + 46965929 @@ -8595,7 +3639,7 @@ id - startLine + beginLine 12 @@ -8603,7 +3647,7 @@ 1 2 - 18007923 + 46965929 @@ -8611,7 +3655,7 @@ id - startColumn + beginColumn 12 @@ -8619,7 +3663,7 @@ 1 2 - 18007923 + 46965929 @@ -8635,7 +3679,7 @@ 1 2 - 18007923 + 46965929 @@ -8651,14 +3695,14 @@ 1 2 - 18007923 + 46965929 - container + file id @@ -8666,400 +3710,157 @@ 1 - 2 - 562 - - - 2 - 6 - 478 - - - 6 - 11 - 478 - - - 12 - 26 - 506 - - - 27 - 87 - 478 - - - 95 - 514 - 478 - - - 525 - 1401 - 478 - - - 1526 - 2343 - 478 - - - 2404 - 3615 - 478 - - - 3668 - 5162 - 478 - - - 5341 - 7345 - 478 - - - 7399 - 9307 - 478 - - - 9382 - 16759 - 478 - - - 18811 - 18812 - 28 - - - - - - - container - startLine - - - 12 - - - 1 - 2 - 675 - - - 2 - 4 - 478 - - - 4 - 10 - 534 - - - 10 - 20 - 506 - - - 20 - 66 - 478 - - - 67 - 162 - 478 - - - 166 - 362 - 478 - - - 376 - 591 - 478 - - - 593 - 929 - 478 - - - 960 - 1269 - 478 - - - 1291 - 1782 - 478 - - - 1851 - 2492 - 478 - - - 2594 - 4241 - 337 - - - - - - - container - startColumn - - - 12 - - - 1 - 2 - 675 - - - 2 - 4 - 506 - - - 4 - 7 - 534 - - - 7 - 16 - 478 - - - 16 - 34 - 506 - - - 36 - 59 - 478 - - - 59 - 66 - 506 - - - 66 - 68 - 365 - - - 68 - 69 - 281 - - - 69 - 70 - 422 - - - 70 - 71 - 253 - - - 71 - 72 - 422 - - - 72 - 74 - 365 - - - 74 - 92 - 506 - - - 94 - 109 - 56 + 15 + 3121 - - - - - - container - endLine - - - 12 - - 1 - 2 - 675 + 15 + 41 + 3121 - 2 - 4 - 478 + 42 + 72 + 3121 - 4 - 10 - 534 + 72 + 114 + 3371 - 10 - 20 - 506 + 114 + 142 + 3121 - 20 - 68 - 478 + 143 + 211 + 3121 - 68 - 163 - 478 + 213 + 307 + 3121 - 166 - 362 - 478 + 310 + 430 + 3121 - 376 - 592 - 478 + 437 + 596 + 3121 - 593 - 931 - 478 + 607 + 827 + 3121 - 960 - 1273 - 478 + 839 + 1298 + 3121 - 1292 - 1786 - 478 + 1300 + 2722 + 3121 - 1855 - 2501 - 478 + 3114 + 30788 + 3121 - 2593 - 4416 - 337 + 57880 + 57881 + 124 - container - endColumn + file + beginLine 12 1 - 2 - 619 - - - 2 - 4 - 478 + 13 + 3371 - 4 - 7 - 506 + 13 + 31 + 3371 - 7 - 15 - 478 + 31 + 47 + 3121 - 15 - 36 - 478 + 47 + 64 + 3121 - 36 - 62 - 478 + 64 + 84 + 3121 - 62 - 71 - 534 + 85 + 115 + 3121 - 71 - 73 - 281 + 116 + 160 + 3246 - 73 - 75 - 450 + 160 + 206 + 3121 - 75 - 76 - 168 + 206 + 291 + 3121 - 76 - 77 - 562 + 298 + 388 + 3121 - 77 - 79 - 478 + 395 + 527 + 3121 - 79 - 84 - 478 + 561 + 1339 + 3121 - 84 - 116 - 365 + 1375 + 57764 + 2871 - startLine - id + file + beginColumn 12 @@ -9067,217 +3868,227 @@ 1 5 - 22061 + 3745 5 9 - 22567 + 3121 9 15 - 21948 + 3246 15 - 23 - 20682 + 20 + 3246 - 23 - 32 - 20738 + 20 + 28 + 3246 - 32 - 44 - 20541 + 28 + 36 + 3246 - 44 - 60 - 20203 + 36 + 42 + 3121 - 60 - 80 - 20344 + 42 + 53 + 3371 - 80 - 103 - 20006 + 53 + 62 + 3246 - 103 - 130 - 20147 + 62 + 81 + 3121 - 130 - 159 - 19950 + 81 + 95 + 3121 - 159 - 194 - 20006 + 95 + 111 + 3121 - 194 - 297 - 13534 + 112 + 156 + 1997 - startLine - container + file + endLine 12 1 - 2 - 32191 + 13 + 3371 - 2 - 3 - 21385 + 13 + 31 + 3371 - 3 - 4 - 15532 + 31 + 46 + 3121 - 4 - 6 - 22398 + 46 + 63 + 3121 - 6 - 8 - 18656 + 63 + 84 + 3121 - 8 - 11 - 22483 + 84 + 114 + 3121 - 11 - 16 - 23749 + 118 + 160 + 3246 - 16 - 21 - 22567 + 160 + 206 + 3121 - 21 - 28 - 22736 + 207 + 291 + 3121 - 28 - 35 - 21695 + 300 + 390 + 3121 - 35 - 43 - 21835 + 395 + 562 + 3121 - 43 - 61 - 17502 + 564 + 1350 + 3121 + + + 1420 + 57764 + 2871 - startLine - startColumn + file + endColumn 12 1 - 4 - 21864 + 12 + 3371 - 4 - 7 - 24002 + 13 + 26 + 3496 - 7 - 11 - 22848 + 26 + 34 + 3246 - 11 - 16 - 23833 + 34 + 42 + 3246 - 16 - 21 - 23974 + 42 + 50 + 3246 - 21 - 26 - 20625 + 50 + 61 + 3121 - 26 - 31 - 22145 + 61 + 67 + 3246 - 31 - 36 - 24171 + 67 + 76 + 3496 - 36 - 40 - 21526 + 76 + 88 + 3246 - 40 - 44 - 22680 + 89 + 102 + 3121 - 44 - 49 - 22820 + 102 + 116 + 3496 - 49 - 63 - 12240 + 116 + 133 + 3121 + + + 136 + 363 + 1498 - startLine - endLine + beginLine + id 12 @@ -9285,111 +4096,76 @@ 1 2 - 139344 + 4961952 2 3 - 61286 + 779772 3 4 - 37790 + 544405 4 - 6 - 20035 + 12 + 570876 - 6 - 23 - 4277 + 12 + 97 + 563134 + + + 97 + 637 + 87279 - startLine - endColumn + beginLine + file 12 1 - 4 - 23214 - - - 4 - 7 - 22792 - - - 7 - 11 - 22483 - - - 11 - 16 - 22201 - - - 16 - 21 - 22511 - - - 21 - 27 - 22933 - - - 27 - 33 - 22539 - - - 33 - 38 - 19809 - - - 38 - 43 - 21357 + 2 + 5024010 - 43 - 47 - 20006 + 2 + 3 + 1222414 - 47 - 52 - 23102 + 3 + 6 + 640550 - 52 - 66 - 19725 + 6 + 57 + 563509 - 68 - 69 - 56 + 57 + 329 + 56937 - startColumn - id + beginLine + beginColumn 12 @@ -9397,75 +4173,97 @@ 1 2 - 422 + 5646455 2 - 4 - 253 + 3 + 483596 - 4 - 8 - 281 + 3 + 7 + 582613 - 8 - 26 - 281 + 7 + 25 + 566256 - 43 - 253 - 253 + 25 + 94 + 228500 + + + + + + beginLine + endLine + + + 12 + - 278 - 844 - 253 + 1 + 2 + 7041180 - 949 - 1891 - 253 + 2 + 85 + 466240 + + + + + + beginLine + endColumn + + + 12 + - 2093 - 4169 - 253 + 1 + 2 + 5031002 - 4251 - 7004 - 253 + 2 + 3 + 740066 - 7173 - 11370 - 253 + 3 + 4 + 540284 - 12331 - 15107 - 253 + 4 + 12 + 587483 - 15374 - 30162 - 253 + 12 + 72 + 565257 - 30211 - 49563 - 112 + 72 + 250 + 43327 - startColumn - container + beginColumn + id 12 @@ -9473,75 +4271,75 @@ 1 2 - 450 + 1748 2 - 3 - 168 + 6 + 1997 - 3 - 4 - 196 + 6 + 12 + 1872 - 4 - 6 - 253 + 12 + 40 + 1748 - 7 - 32 - 253 + 49 + 128 + 1748 - 43 - 99 - 253 + 129 + 253 + 1748 - 101 - 121 - 253 + 316 + 707 + 1748 - 121 - 130 - 253 + 791 + 1267 + 1748 - 130 - 138 - 253 + 1281 + 1943 + 1748 - 138 - 142 - 281 + 2017 + 2398 + 1748 - 142 - 144 - 225 + 2491 + 3203 + 1748 - 144 - 150 - 281 + 3252 + 7915 + 1748 - 151 - 158 - 253 + 10983 + 121029 + 624 - startColumn - startLine + beginColumn + file 12 @@ -9549,75 +4347,75 @@ 1 2 - 422 + 1997 2 4 - 253 + 1748 4 7 - 253 + 1748 7 - 19 - 253 + 18 + 1872 - 20 - 152 - 253 + 19 + 43 + 1748 - 199 - 588 - 253 + 44 + 60 + 1748 - 633 - 1287 - 253 + 66 + 93 + 1748 - 1365 - 2343 - 253 + 96 + 117 + 1748 - 2576 - 3504 - 253 + 117 + 150 + 1748 - 3522 - 4709 - 253 + 150 + 169 + 1748 - 4736 - 5298 - 253 + 169 + 181 + 1748 - 5332 - 5999 - 253 + 182 + 217 + 1872 - 6157 - 6996 - 168 + 243 + 329 + 499 - startColumn - endLine + beginColumn + beginLine 12 @@ -9625,75 +4423,75 @@ 1 2 - 422 + 1872 2 - 4 - 253 + 5 + 1872 - 4 - 7 - 253 + 5 + 11 + 1748 - 7 - 19 - 253 + 11 + 36 + 1748 - 20 - 152 - 253 + 36 + 101 + 1748 - 199 - 588 - 253 + 108 + 217 + 1748 - 648 - 1289 - 253 + 226 + 543 + 1748 - 1365 - 2347 - 253 + 633 + 1057 + 1748 - 2579 - 3510 - 253 + 1072 + 1409 + 1748 - 3529 - 4710 - 253 + 1416 + 1614 + 1748 - 4739 - 5323 - 253 + 1615 + 1810 + 1748 - 5346 - 6023 - 253 + 1826 + 3777 + 1748 - 6201 - 7039 - 168 + 3834 + 59554 + 749 - startColumn - endColumn + beginColumn + endLine 12 @@ -9701,143 +4499,143 @@ 1 2 - 450 + 1872 2 - 3 - 168 - - - 3 5 - 253 + 1872 5 - 9 - 253 + 11 + 1748 - 9 - 13 - 253 + 11 + 36 + 1748 - 13 - 20 - 253 + 36 + 102 + 1748 - 20 - 30 - 253 + 109 + 218 + 1748 - 30 - 42 - 253 + 225 + 545 + 1748 + + + 631 + 1055 + 1748 - 44 - 60 - 281 + 1074 + 1407 + 1748 - 60 - 69 - 253 + 1425 + 1611 + 1748 - 69 - 74 - 253 + 1614 + 1807 + 1748 - 74 - 84 - 309 + 1827 + 3760 + 1748 - 84 - 96 - 140 + 3827 + 59562 + 749 - endLine - id + beginColumn + endColumn 12 1 + 2 + 2122 + + + 2 5 - 22089 + 1498 5 - 9 - 22567 + 8 + 1623 - 9 - 15 - 21638 + 8 + 13 + 1748 - 15 + 13 23 - 20654 + 1997 23 - 32 - 21413 + 33 + 1872 - 32 + 34 44 - 20175 - - - 44 - 60 - 19838 + 1748 - 60 - 80 - 20935 + 45 + 57 + 1748 - 80 - 103 - 19866 + 58 + 74 + 1997 - 103 - 130 - 20063 + 77 + 86 + 1872 - 130 - 159 - 20006 + 86 + 98 + 1748 - 159 - 193 - 19725 + 98 + 160 + 1748 - 193 - 296 - 13731 + 258 + 299 + 249 @@ -9845,7 +4643,7 @@ endLine - container + id 12 @@ -9853,67 +4651,89 @@ 1 2 - 32191 + 4959830 2 3 - 21301 + 782270 3 4 - 15532 + 545279 4 - 6 - 21976 + 12 + 568378 - 6 - 8 - 18459 + 12 + 96 + 564757 - 8 - 11 - 22567 + 96 + 620 + 88028 + + + + + + endLine + file + + + 12 + - 11 - 15 - 19838 + 1 + 2 + 5021138 - 15 - 20 - 22877 + 2 + 3 + 1224911 - 20 - 26 - 20513 + 3 + 6 + 633932 - 26 - 33 - 21976 + 6 + 52 + 564633 - 33 - 40 - 19950 + 52 + 329 + 63930 + + + + + + endLine + beginLine + + + 12 + - 40 - 49 - 20091 + 1 + 2 + 7057912 - 49 - 61 - 5430 + 2 + 18 + 450632 @@ -9921,7 +4741,7 @@ endLine - startLine + beginColumn 12 @@ -9929,27 +4749,27 @@ 1 2 - 130621 + 5645580 2 3 - 68406 + 480974 3 - 4 - 40267 + 7 + 587607 - 4 - 6 - 21441 + 7 + 25 + 569752 - 6 - 11 - 1969 + 25 + 89 + 224629 @@ -9957,141 +4777,101 @@ endLine - startColumn + endColumn 12 1 - 4 - 21667 - - - 4 - 7 - 23890 - - - 7 - 11 - 22567 - - - 11 - 16 - 23749 - - - 16 - 21 - 23693 - - - 21 - 26 - 20738 - - - 26 - 31 - 22342 + 2 + 5029629 - 31 - 36 - 24143 + 2 + 3 + 744436 - 36 - 40 - 20935 + 3 + 4 + 540034 - 40 - 44 - 22651 + 4 + 12 + 588107 - 44 - 49 - 23214 + 12 + 72 + 563509 - 49 - 63 - 13112 + 72 + 250 + 42828 - endLine - endColumn + endColumn + id 12 1 - 4 - 23524 - - - 4 - 7 - 22989 - - - 7 - 11 - 22483 + 2 + 15732 - 11 - 16 - 23102 + 2 + 3 + 5618 - 16 - 21 - 21920 + 3 + 7 + 4245 - 21 - 26 - 19866 + 7 + 17 + 4120 - 26 - 32 - 22117 + 17 + 33 + 4120 - 32 - 38 - 23946 + 33 + 106 + 4120 - 38 - 43 - 22173 + 114 + 689 + 4120 - 43 - 47 - 19838 + 721 + 2458 + 4120 - 47 - 52 - 22820 + 2593 + 4731 + 4120 - 52 - 69 - 17924 + 4759 + 33780 + 3121 @@ -10099,7 +4879,7 @@ endColumn - id + file 12 @@ -10107,67 +4887,52 @@ 1 2 - 309 + 18604 2 - 4 - 309 - - - 4 - 10 - 281 - - - 10 - 16 - 337 - - - 16 - 51 - 309 + 3 + 5618 - 56 - 618 - 309 + 3 + 5 + 3621 - 841 - 2290 - 309 + 5 + 7 + 3745 - 2328 - 4142 - 309 + 7 + 16 + 4370 - 4177 - 7140 - 309 + 16 + 80 + 4120 - 8235 - 11725 - 309 + 81 + 152 + 4245 - 12344 - 15458 - 309 + 158 + 212 + 4245 - 15684 - 18219 - 309 + 212 + 265 + 4120 - 18696 - 19124 - 112 + 265 + 329 + 749 @@ -10175,7 +4940,7 @@ endColumn - container + beginLine 12 @@ -10183,67 +4948,52 @@ 1 2 - 450 + 15982 2 - 4 - 281 - - - 4 - 6 - 281 - - - 6 - 12 - 309 - - - 12 - 41 - 309 + 3 + 5993 - 50 - 114 - 309 + 3 + 8 + 4245 - 115 - 128 - 309 + 8 + 18 + 4370 - 128 - 137 - 281 + 18 + 42 + 4120 - 137 - 142 - 337 + 43 + 218 + 4120 - 142 - 146 - 281 + 235 + 759 + 4120 - 146 - 148 - 281 + 768 + 2177 + 4120 - 148 - 152 - 309 + 2209 + 2884 + 4120 - 152 - 163 - 84 + 2885 + 30763 + 2247 @@ -10251,7 +5001,7 @@ endColumn - startLine + beginColumn 12 @@ -10259,67 +5009,52 @@ 1 2 - 422 + 17231 2 - 4 - 225 - - - 4 - 8 - 337 - - - 8 - 15 - 309 - - - 18 - 54 - 309 + 3 + 6243 - 74 - 489 - 309 + 3 + 4 + 3246 - 511 - 1338 - 309 + 4 + 7 + 4245 - 1390 - 2420 - 309 + 7 + 14 + 4245 - 2767 - 3740 - 309 + 14 + 28 + 4120 - 3802 - 4530 - 309 + 28 + 45 + 4245 - 4643 - 5303 - 309 + 45 + 69 + 4120 - 5379 - 5736 - 309 + 69 + 81 + 4245 - 5747 - 5806 - 56 + 81 + 117 + 1498 @@ -10327,7 +5062,7 @@ endColumn - startColumn + endLine 12 @@ -10335,70 +5070,76 @@ 1 2 - 365 + 15982 2 - 4 - 281 - - - 4 - 9 - 337 - - - 9 - 14 - 337 + 3 + 5993 - 14 - 22 - 337 + 3 + 8 + 4245 - 23 - 28 - 309 + 8 + 18 + 4370 - 28 - 36 - 309 + 18 + 41 + 4120 - 36 - 41 - 309 + 43 + 217 + 4120 - 41 - 47 - 309 + 233 + 756 + 4120 - 47 - 56 - 309 + 768 + 2177 + 4120 - 56 - 64 - 309 + 2208 + 2858 + 4120 - 64 - 72 - 309 + 2868 + 30757 + 2247 + + + + files + 65211 + + + id + 65211 + + + name + 65211 + + + - endColumn - endLine + id + name 12 @@ -10406,67 +5147,154 @@ 1 2 - 422 + 65211 + + + + + + name + id + + + 12 + - 2 - 4 - 225 + 1 + 2 + 65211 + + + + + + + + folders + 12389 + + + id + 12389 + + + name + 12389 + + + + + id + name + + + 12 + - 4 - 8 - 337 + 1 + 2 + 12389 + + + + + + name + id + + + 12 + - 8 - 15 - 309 + 1 + 2 + 12389 + + + + + + + + containerparent + 77579 + + + parent + 12389 + + + child + 77579 + + + + + parent + child + + + 12 + - 17 - 54 - 309 + 1 + 2 + 6031 - 74 - 471 - 309 + 2 + 3 + 1520 - 500 - 1307 - 309 + 3 + 4 + 665 - 1356 - 2389 - 309 + 4 + 6 + 1003 - 2629 - 3660 - 309 + 6 + 10 + 971 - 3731 - 4490 - 309 + 10 + 16 + 1003 - 4640 - 5281 - 309 + 16 + 44 + 929 - 5368 - 5729 - 309 + 44 + 151 + 264 + + + + + + child + parent + + + 12 + - 5734 - 5796 - 56 + 1 + 2 + 77579 @@ -10476,23 +5304,23 @@ numlines - 808529 + 808616 element_id - 807405 + 807492 num_lines - 39477 + 39456 num_code - 33980 + 34087 num_comment - 18364 + 18230 @@ -10506,12 +5334,12 @@ 1 2 - 806280 + 806368 2 3 - 1124 + 1123 @@ -10527,12 +5355,12 @@ 1 2 - 806280 + 806368 2 3 - 1124 + 1123 @@ -10548,7 +5376,7 @@ 1 2 - 807155 + 807242 2 @@ -10569,27 +5397,27 @@ 1 2 - 26734 + 26720 2 3 - 3747 + 3745 3 5 - 3373 + 3371 5 - 37 - 3123 + 35 + 2996 - 41 - 1978 - 2498 + 39 + 1983 + 2622 @@ -10605,27 +5433,27 @@ 1 2 - 27234 + 27220 2 3 - 4122 + 4120 3 4 - 2498 + 2497 4 7 - 3497 + 3496 7 12 - 2123 + 2122 @@ -10641,27 +5469,27 @@ 1 2 - 26859 + 26845 2 3 - 4122 + 4120 3 4 - 2498 + 2372 4 6 - 3123 + 3246 6 - 11 - 2873 + 10 + 2871 @@ -10677,31 +5505,31 @@ 1 2 - 21612 + 21851 2 3 - 3747 + 3621 3 4 - 2373 + 2372 4 13 - 2873 + 2871 14 - 197 - 2623 + 198 + 2622 - 205 - 2101 + 204 + 2092 749 @@ -10718,32 +5546,32 @@ 1 2 - 21987 + 22225 2 3 - 3747 + 3621 3 4 - 2123 + 2122 4 6 - 1873 + 1872 6 9 - 2748 + 2746 9 13 - 1499 + 1498 @@ -10759,27 +5587,27 @@ 1 2 - 21737 + 21975 2 3 - 4372 + 4245 3 5 - 2873 + 2871 5 8 - 3123 + 3121 8 12 - 1873 + 1872 @@ -10795,32 +5623,32 @@ 1 2 - 11368 + 11112 2 3 - 1748 + 2122 3 4 - 1499 + 1123 4 7 - 1374 + 1498 8 - 22 - 1499 + 21 + 1373 - 42 - 3650 - 874 + 21 + 3651 + 998 @@ -10836,32 +5664,32 @@ 1 2 - 11368 + 11112 2 3 - 1748 + 2122 3 4 - 1499 + 1123 4 7 - 1499 + 1623 8 - 27 - 1499 + 21 + 1373 - 30 + 26 48 - 749 + 874 @@ -10877,32 +5705,32 @@ 1 2 - 11368 + 11112 2 3 - 1748 + 2122 3 4 - 1748 + 1373 4 - 9 - 1499 + 7 + 1373 - 10 - 36 - 1624 + 7 + 21 + 1373 - 36 - 43 - 374 + 23 + 42 + 874 @@ -11468,118 +6296,22 @@ - files - 74641 - - - id - 74641 - - - name - 74641 - - - - - id - name - - - 12 - - - 1 - 2 - 74641 - - - - - - - name - id - - - 12 - - - 1 - 2 - 74641 - - - - - - - - - folders - 14181 - - - id - 14181 - - - name - 14181 - - - - - id - name - - - 12 - - - 1 - 2 - 14181 - - - - - - - name - id - - - 12 - - - 1 - 2 - 14181 - - - - - - - - - containerparent - 88798 + extractor_version + 124 - parent - 14181 + codeql_version + 124 - child - 88798 + frontend_version + 124 - parent - child + codeql_version + frontend_version 12 @@ -11587,50 +6319,15 @@ 1 2 - 6903 - - - 2 - 3 - 1740 - - - 3 - 4 - 761 - - - 4 - 6 - 1148 - - - 6 - 10 - 1112 - - - 10 - 16 - 1148 - - - 16 - 44 - 1063 - - - 44 - 151 - 302 + 124 - child - parent + frontend_version + codeql_version 12 @@ -11638,7 +6335,7 @@ 1 2 - 88798 + 124 @@ -11648,23 +6345,23 @@ fileannotations - 4807876 + 4200439 id - 6600 + 5766 kind - 24 + 21 name - 67206 + 58715 value - 45227 + 39513 @@ -11678,12 +6375,12 @@ 1 2 - 229 + 200 2 3 - 6371 + 5566 @@ -11699,62 +6396,62 @@ 1 86 - 495 + 433 88 206 - 495 + 433 212 291 - 507 + 443 291 359 - 495 + 433 362 401 - 495 + 433 402 479 - 495 + 433 480 549 - 290 + 253 550 551 - 1523 + 1330 553 628 - 495 + 433 631 753 - 519 + 454 753 1231 - 507 + 443 1234 2155 - 278 + 242 @@ -11770,67 +6467,67 @@ 1 98 - 495 + 433 102 244 - 495 + 433 244 351 - 495 + 433 352 434 - 507 + 443 434 490 - 507 + 443 490 628 - 495 + 433 632 702 - 72 + 63 706 707 - 1523 + 1330 710 939 - 495 + 433 939 1038 - 495 + 433 1066 1853 - 495 + 433 1853 3292 - 495 + 433 3423 3742 - 24 + 21 @@ -11846,12 +6543,12 @@ 527 528 - 12 + 10 546 547 - 12 + 10 @@ -11867,12 +6564,12 @@ 2 3 - 12 + 10 5557 5558 - 12 + 10 @@ -11888,12 +6585,12 @@ 1 2 - 12 + 10 3741 3742 - 12 + 10 @@ -11909,62 +6606,62 @@ 1 2 - 12621 + 11026 2 3 - 4993 + 4362 3 5 - 5790 + 5059 5 7 - 4690 + 4098 7 9 - 5258 + 4594 9 16 - 4956 + 4330 16 19 - 5597 + 4890 19 27 - 4872 + 4256 27 47 - 5537 + 4837 47 128 - 5633 + 4921 128 459 - 5295 + 4626 459 546 - 1958 + 1711 @@ -11980,7 +6677,7 @@ 1 2 - 67206 + 58715 @@ -11996,57 +6693,57 @@ 1 2 - 13262 + 11586 2 3 - 8801 + 7689 3 4 - 4690 + 4098 4 6 - 4654 + 4066 6 8 - 3917 + 3422 8 11 - 5428 + 4742 11 17 - 6177 + 5397 17 23 - 5379 + 4700 23 41 - 5355 + 4679 41 95 - 5113 + 4467 95 1726 - 4424 + 3865 @@ -12062,72 +6759,72 @@ 1 2 - 3844 + 3358 2 4 - 1873 + 1637 4 5 - 3651 + 3189 5 8 - 2816 + 2460 8 14 - 3397 + 2967 14 17 - 2212 + 1932 17 24 - 3481 + 3041 24 51 - 4050 + 3538 51 58 - 3469 + 3031 58 80 - 3409 + 2978 81 151 - 3530 + 3084 151 334 - 3409 + 2978 334 473 - 3433 + 2999 473 547 - 2647 + 2313 @@ -12143,12 +6840,12 @@ 1 2 - 45215 + 39502 2 3 - 12 + 10 @@ -12164,72 +6861,72 @@ 1 2 - 3892 + 3401 2 4 - 2188 + 1911 4 5 - 3493 + 3052 5 8 - 2841 + 2482 8 14 - 3989 + 3485 14 18 - 3953 + 3453 18 28 - 3663 + 3200 28 34 - 3602 + 3147 34 41 - 3663 + 3200 41 66 - 3421 + 2989 66 92 - 3518 + 3073 92 113 - 3421 + 2989 113 145 - 3469 + 3031 145 172 - 108 + 95 @@ -12239,15 +6936,15 @@ inmacroexpansion - 149995966 + 149995963 id - 24670876 + 24670878 inv - 3705264 + 3705272 @@ -12261,12 +6958,12 @@ 1 3 - 2209396 + 2209399 3 5 - 1474978 + 1474977 5 @@ -12276,7 +6973,7 @@ 6 7 - 6582546 + 6582545 7 @@ -12307,7 +7004,7 @@ 1 2 - 531654 + 531661 2 @@ -12367,15 +7064,15 @@ affectedbymacroexpansion - 48735844 + 48735840 id - 7044741 + 7044740 inv - 3803122 + 3803121 @@ -12505,19 +7202,19 @@ macroinvocations - 39390675 + 40338469 id - 39390675 + 40338469 macro_id - 181997 + 182070 location - 5904643 + 5912755 kind @@ -12535,7 +7232,7 @@ 1 2 - 39390675 + 40338469 @@ -12551,7 +7248,7 @@ 1 2 - 39390675 + 40338469 @@ -12567,7 +7264,7 @@ 1 2 - 39390675 + 40338469 @@ -12583,47 +7280,47 @@ 1 2 - 60738 + 60781 2 3 - 27781 + 27558 3 4 - 17921 + 17972 4 5 - 9805 + 10021 5 7 - 14272 + 13779 7 13 - 14381 + 14705 13 33 - 13890 + 13779 33 - 185 - 13672 + 180 + 13670 - 190 - 70079 - 9532 + 181 + 72144 + 9803 @@ -12639,42 +7336,42 @@ 1 2 - 77243 + 77283 2 3 - 30559 + 30553 3 4 - 14326 + 14323 4 5 - 10350 + 10293 5 8 - 14054 + 14105 8 18 - 14108 + 14160 18 88 - 13672 + 13670 - 88 - 12162 - 7680 + 89 + 12189 + 7679 @@ -12690,12 +7387,12 @@ 1 2 - 177475 + 177495 2 3 - 4521 + 4574 @@ -12711,17 +7408,17 @@ 1 2 - 5248396 + 5255927 2 - 3 - 248074 + 4 + 422362 - 3 - 70079 - 408172 + 4 + 72144 + 234464 @@ -12737,12 +7434,12 @@ 1 2 - 5882472 + 5890588 2 37 - 22170 + 22166 @@ -12758,7 +7455,7 @@ 1 2 - 5904643 + 5912755 @@ -12772,13 +7469,13 @@ 12 - 1470 - 1471 + 1490 + 1491 54 - 721641 - 721642 + 739164 + 739165 54 @@ -12793,13 +7490,13 @@ 12 - 281 - 282 + 282 + 283 54 - 3143 - 3144 + 3145 + 3146 54 @@ -12814,13 +7511,13 @@ 12 - 1060 - 1061 + 1069 + 1070 54 - 107334 - 107335 + 107495 + 107496 54 @@ -12831,15 +7528,15 @@ macroparent - 32844710 + 33655984 id - 32844710 + 33655984 parent_id - 15561449 + 15926379 @@ -12853,7 +7550,7 @@ 1 2 - 32844710 + 33655984 @@ -12869,27 +7566,27 @@ 1 2 - 7669107 + 7806498 2 3 - 1551198 + 1595448 3 4 - 4552710 + 4702906 4 5 - 1263086 + 1295464 5 205 - 525346 + 526061 @@ -12899,15 +7596,15 @@ macrolocationbind - 6883157 + 6046191 id - 4222542 + 4227950 location - 2746954 + 2278566 @@ -12921,27 +7618,27 @@ 1 2 - 2460116 + 3302009 2 3 - 1326251 + 491104 3 4 - 8261 + 7893 4 5 - 413540 + 413756 5 17 - 14372 + 13185 @@ -12957,27 +7654,27 @@ 1 2 - 1393959 + 1336578 2 3 - 907138 + 481984 3 4 - 8735 + 7807 4 5 - 410829 + 428082 5 522 - 26291 + 24112 @@ -12987,19 +7684,19 @@ macro_argument_unexpanded - 94276712 + 82497361 invocation - 30002299 + 26285935 argument_index - 797 + 697 text - 392900 + 343260 @@ -13013,22 +7710,22 @@ 1 2 - 11044782 + 9683509 2 3 - 11156139 + 9770372 3 4 - 5707682 + 5002131 4 67 - 2093693 + 1829922 @@ -13044,22 +7741,22 @@ 1 2 - 11253824 + 9866140 2 3 - 11175326 + 9787916 3 4 - 5529264 + 4845472 4 67 - 2043884 + 1786405 @@ -13075,17 +7772,17 @@ 46457 46458 - 701 + 612 46659 - 173182 - 60 + 173253 + 52 - 645295 - 2481657 - 36 + 646840 + 2488681 + 31 @@ -13101,17 +7798,17 @@ 2 3 - 701 + 612 13 1115 - 60 + 52 7702 22873 - 36 + 31 @@ -13127,57 +7824,57 @@ 1 2 - 46351 + 39703 2 3 - 71401 + 62327 3 4 - 26476 + 21029 4 5 - 39714 + 34580 5 6 - 44779 + 39249 6 9 - 32714 + 30873 9 15 - 32847 + 28982 15 - 27 - 29933 + 26 + 25887 - 27 + 26 57 - 30441 + 27144 57 517 - 29680 + 25993 518 - 485092 - 8559 + 486610 + 7488 @@ -13193,17 +7890,17 @@ 1 2 - 278339 + 243173 2 3 - 102870 + 89873 3 9 - 11690 + 10213 @@ -13213,19 +7910,19 @@ macro_argument_expanded - 94276712 + 82497361 invocation - 30002299 + 26285935 argument_index - 797 + 697 text - 237996 + 207927 @@ -13239,22 +7936,22 @@ 1 2 - 11044782 + 9683509 2 3 - 11156139 + 9770372 3 4 - 5707682 + 5002131 4 67 - 2093693 + 1829922 @@ -13270,22 +7967,22 @@ 1 2 - 14421415 + 12642108 2 3 - 9625327 + 8428244 3 4 - 4822818 + 4225217 4 9 - 1132737 + 990364 @@ -13301,17 +7998,17 @@ 46457 46458 - 701 + 612 46659 - 173182 - 60 + 173253 + 52 - 645295 - 2481657 - 36 + 646840 + 2488681 + 31 @@ -13327,17 +8024,17 @@ 1 2 - 689 + 602 2 96 - 60 + 52 950 16176 - 48 + 42 @@ -13353,57 +8050,57 @@ 1 2 - 25243 + 21832 2 3 - 31324 + 26859 3 4 - 52203 + 43495 4 5 - 18400 + 15906 5 6 - 3542 + 3263 6 7 - 20842 + 18399 7 10 - 19355 + 18969 10 19 - 20576 + 18325 19 51 - 17856 + 15779 51 - 253 - 17989 + 252 + 15600 - 254 - 1166783 - 10663 + 252 + 1169584 + 9495 @@ -13419,17 +8116,17 @@ 1 2 - 120279 + 105083 2 3 - 101770 + 88912 3 66 - 15946 + 13931 @@ -13439,19 +8136,19 @@ functions - 4010790 + 4053071 id - 4010790 + 4053071 name - 1648540 + 1694897 kind - 999 + 874 @@ -13465,7 +8162,7 @@ 1 2 - 4010790 + 4053071 @@ -13481,7 +8178,7 @@ 1 2 - 4010790 + 4053071 @@ -13497,17 +8194,17 @@ 1 2 - 1402308 + 1448542 2 4 - 139168 + 139098 4 3162 - 107062 + 107257 @@ -13523,12 +8220,12 @@ 1 2 - 1645667 + 1692026 2 3 - 2873 + 2871 @@ -13546,11 +8243,6 @@ 9 124 - - 13 - 14 - 124 - 47 48 @@ -13562,13 +8254,13 @@ 124 - 690 - 691 + 691 + 692 124 - 4450 - 4451 + 4453 + 4454 124 @@ -13577,8 +8269,8 @@ 124 - 21584 - 21585 + 21948 + 21949 124 @@ -13597,11 +8289,6 @@ 3 124 - - 13 - 14 - 124 - 18 19 @@ -13628,8 +8315,8 @@ 124 - 12296 - 12297 + 12687 + 12688 124 @@ -13638,17 +8325,28 @@ + + builtin_functions + 30926 + + + id + 30926 + + + + function_entry_point - 1141046 + 1141555 id - 1137298 + 1137808 entry_point - 1141046 + 1141555 @@ -13662,12 +8360,12 @@ 1 2 - 1134095 + 1134605 2 17 - 3203 + 3202 @@ -13683,7 +8381,7 @@ 1 2 - 1141046 + 1141555 @@ -13693,15 +8391,15 @@ function_return_type - 4028280 + 4070552 id - 4010790 + 4053071 return_type - 622887 + 619822 @@ -13715,12 +8413,12 @@ 1 2 - 3993300 + 4035590 2 3 - 17489 + 17480 @@ -13736,27 +8434,27 @@ 1 2 - 312942 + 310161 2 3 - 213500 + 213891 3 5 - 48471 + 48072 5 - 354 - 46722 + 365 + 46574 - 358 - 9897 - 1249 + 432 + 9944 + 1123 @@ -14036,59 +8734,59 @@ purefunctions - 138721 + 131414 id - 138721 + 131414 function_deleted - 88082 + 88085 id - 88082 + 88085 function_defaulted - 51679 + 51680 id - 51679 + 51680 function_prototyped - 4009291 + 4051572 id - 4009291 + 4051572 deduction_guide_for_class - 5871 + 5868 id - 5871 + 5868 class_template - 2248 + 2247 @@ -14102,7 +8800,7 @@ 1 2 - 5871 + 5868 @@ -14118,7 +8816,7 @@ 1 2 - 1124 + 1123 2 @@ -14153,15 +8851,15 @@ member_function_this_type - 676231 + 674762 id - 676231 + 674762 this_type - 177646 + 176182 @@ -14175,7 +8873,7 @@ 1 2 - 676231 + 674762 @@ -14191,37 +8889,37 @@ 1 2 - 48721 + 47198 2 3 - 36853 + 36959 3 4 - 32855 + 32714 4 5 - 19988 + 20103 5 6 - 12867 + 12860 6 10 - 14491 + 14484 10 65 - 11868 + 11862 @@ -14231,27 +8929,27 @@ fun_decls - 4155705 + 4212771 id - 4149709 + 4206778 function - 3986304 + 4028473 type_id - 614892 + 611831 name - 1647041 + 1693399 location - 2769887 + 2815798 @@ -14265,7 +8963,7 @@ 1 2 - 4149709 + 4206778 @@ -14281,12 +8979,12 @@ 1 2 - 4143712 + 4200784 2 3 - 5996 + 5993 @@ -14302,7 +9000,7 @@ 1 2 - 4149709 + 4206778 @@ -14318,7 +9016,7 @@ 1 2 - 4149709 + 4206778 @@ -14334,12 +9032,12 @@ 1 2 - 3836266 + 3864776 2 - 4 - 150037 + 5 + 163696 @@ -14355,12 +9053,12 @@ 1 2 - 3967815 + 4009993 2 3 - 18489 + 18479 @@ -14376,7 +9074,7 @@ 1 2 - 3986304 + 4028473 @@ -14392,12 +9090,12 @@ 1 2 - 3843012 + 3885254 2 4 - 143291 + 143218 @@ -14413,27 +9111,27 @@ 1 2 - 298201 + 295427 2 3 - 220371 + 220758 3 5 - 48846 + 48447 5 - 354 - 46223 + 364 + 45949 - 358 - 10246 - 1249 + 364 + 10292 + 1248 @@ -14449,26 +9147,26 @@ 1 2 - 308320 + 305541 2 3 - 211626 + 212018 3 5 - 48471 + 48072 5 - 1033 - 46223 + 1163 + 45949 1483 - 9847 + 9893 249 @@ -14485,22 +9183,22 @@ 1 2 - 494587 + 491962 2 3 - 52719 + 52942 3 7 - 51095 + 50195 7 - 2211 - 16490 + 2238 + 16731 @@ -14516,22 +9214,22 @@ 1 2 - 457983 + 455377 2 3 - 69459 + 69549 3 6 - 55842 + 56063 6 - 4728 - 31606 + 4756 + 30841 @@ -14547,22 +9245,22 @@ 1 2 - 1297744 + 1332543 2 3 - 183892 + 194662 3 - 10 - 125551 + 11 + 129608 - 10 + 11 3169 - 39851 + 36585 @@ -14578,17 +9276,17 @@ 1 2 - 1401809 + 1448042 2 4 - 139543 + 139597 4 3162 - 105688 + 105759 @@ -14604,12 +9302,12 @@ 1 2 - 1556968 + 1603497 2 1596 - 90072 + 89901 @@ -14625,17 +9323,17 @@ 1 2 - 1322105 + 1368504 2 3 - 208503 + 208522 3 1592 - 116432 + 116372 @@ -14651,17 +9349,17 @@ 1 2 - 2390108 + 2422477 2 3 - 237736 + 251724 3 211 - 142042 + 141595 @@ -14677,17 +9375,17 @@ 1 2 - 2393856 + 2441207 2 3 - 234488 + 233494 3 211 - 141542 + 141095 @@ -14703,12 +9401,12 @@ 1 2 - 2654579 + 2701298 2 211 - 115307 + 114499 @@ -14724,12 +9422,12 @@ 1 2 - 2730660 + 2776590 2 8 - 39227 + 39207 @@ -14739,22 +9437,22 @@ fun_def - 1413177 + 1423569 id - 1413177 + 1423569 fun_specialized - 8435 + 7936 id - 8435 + 7936 @@ -14772,15 +9470,15 @@ fun_decl_specifiers - 4102237 + 4283569 id - 1688267 + 1749837 name - 1374 + 1373 @@ -14794,22 +9492,22 @@ 1 2 - 361539 + 363228 2 3 - 262472 + 262463 3 4 - 1041268 + 1101171 4 5 - 22986 + 22974 @@ -14843,8 +9541,8 @@ 124 - 546 - 547 + 561 + 562 124 @@ -14858,23 +9556,23 @@ 124 - 1089 - 1090 + 1093 + 1094 124 - 7668 - 7669 + 8148 + 8149 124 - 10543 - 10544 + 11028 + 11029 124 - 10614 - 10615 + 11099 + 11100 124 @@ -15006,26 +9704,26 @@ fun_decl_empty_throws - 437033 + 420457 fun_decl - 437033 + 420457 fun_decl_noexcept - 141855 + 141829 fun_decl - 141855 + 141829 constant - 141378 + 141353 @@ -15039,7 +9737,7 @@ 1 2 - 141855 + 141829 @@ -15055,7 +9753,7 @@ 1 2 - 140935 + 140910 2 @@ -15070,11 +9768,11 @@ fun_decl_empty_noexcept - 1163822 + 1164727 fun_decl - 1163822 + 1164727 @@ -15179,7 +9877,7 @@ fun_requires - 29109 + 29110 id @@ -15191,7 +9889,7 @@ constraint - 28873 + 28874 @@ -15309,7 +10007,7 @@ 1 2 - 28636 + 28637 2 @@ -15330,7 +10028,7 @@ 1 2 - 28873 + 28874 @@ -15340,19 +10038,19 @@ param_decl_bind - 7189939 + 7317004 id - 7189939 + 7317004 index - 7995 + 7991 fun_decl - 3478100 + 3534887 @@ -15366,7 +10064,7 @@ 1 2 - 7189939 + 7317004 @@ -15382,7 +10080,7 @@ 1 2 - 7189939 + 7317004 @@ -15398,12 +10096,12 @@ 2 3 - 3997 + 3995 6 7 - 1998 + 1997 16 @@ -15412,17 +10110,17 @@ 25 - 143 + 147 624 - 332 - 15841 + 343 + 16215 624 - 27841 - 27842 + 28310 + 28311 124 @@ -15439,12 +10137,12 @@ 2 3 - 3997 + 3995 6 7 - 1998 + 1997 16 @@ -15453,17 +10151,17 @@ 25 - 143 + 147 624 - 332 - 15841 + 343 + 16215 624 - 27841 - 27842 + 28310 + 28311 124 @@ -15480,27 +10178,27 @@ 1 2 - 1499252 + 1510349 2 3 - 956818 + 977182 3 4 - 579912 + 602591 4 5 - 283085 + 290932 5 65 - 159032 + 153831 @@ -15516,27 +10214,27 @@ 1 2 - 1499252 + 1510349 2 3 - 956818 + 977182 3 4 - 579912 + 602591 4 5 - 283085 + 290932 5 65 - 159032 + 153831 @@ -15546,27 +10244,27 @@ var_decls - 9269479 + 9398480 id - 9262608 + 9391612 variable - 8972402 + 9042868 type_id - 1462398 + 1457782 name - 852378 + 853317 location - 6204513 + 6280262 @@ -15580,7 +10278,7 @@ 1 2 - 9262608 + 9391612 @@ -15596,12 +10294,12 @@ 1 2 - 9255737 + 9384745 2 3 - 6871 + 6867 @@ -15617,7 +10315,7 @@ 1 2 - 9262608 + 9391612 @@ -15633,7 +10331,7 @@ 1 2 - 9262608 + 9391612 @@ -15649,12 +10347,12 @@ 1 2 - 8695188 + 8711605 2 - 4 - 277213 + 5 + 331263 @@ -15670,12 +10368,12 @@ 1 2 - 8933674 + 8989302 2 3 - 38727 + 53566 @@ -15691,12 +10389,12 @@ 1 2 - 8866713 + 8937359 2 4 - 105688 + 105509 @@ -15712,12 +10410,12 @@ 1 2 - 8720548 + 8791018 2 4 - 251853 + 251849 @@ -15733,27 +10431,27 @@ 1 2 - 854752 + 850695 2 3 - 284959 + 284314 3 5 - 128050 + 127485 5 11 - 112934 + 113251 11 2944 - 81702 + 82035 @@ -15769,27 +10467,27 @@ 1 2 - 875115 + 871547 2 3 - 270467 + 269330 3 5 - 123428 + 122865 5 11 - 112934 + 113126 11 - 2859 - 80453 + 2860 + 80911 @@ -15805,22 +10503,22 @@ 1 2 - 1124970 + 1120525 2 3 - 193137 + 192789 3 7 - 115182 + 115373 7 1038 - 29108 + 29093 @@ -15836,27 +10534,27 @@ 1 2 - 990923 + 986297 2 3 - 219122 + 219260 3 6 - 134046 + 133728 6 95 - 109811 + 109380 97 - 2570 - 8495 + 2622 + 9115 @@ -15872,32 +10570,32 @@ 1 2 - 465853 + 466365 2 3 - 165778 + 165943 3 4 - 60090 + 59684 4 7 - 65961 + 65927 7 - 26 - 64337 + 25 + 64179 - 26 - 26622 - 30357 + 25 + 27139 + 31215 @@ -15913,32 +10611,32 @@ 1 2 - 478721 + 479351 2 3 - 165028 + 165194 3 4 - 54968 + 54690 4 8 - 71833 + 71671 8 - 46 - 63962 + 45 + 64304 - 46 - 26187 - 17864 + 45 + 26704 + 18105 @@ -15954,22 +10652,22 @@ 1 2 - 654868 + 655283 2 3 - 110435 + 110878 3 11 - 65336 + 65553 11 - 3460 - 21737 + 3463 + 21601 @@ -15985,27 +10683,27 @@ 1 2 - 493087 + 494209 2 3 - 183268 + 183424 3 4 - 52344 + 51693 4 8 - 65212 + 65053 8 - 22104 - 58465 + 22619 + 58935 @@ -16021,12 +10719,17 @@ 1 2 - 5756898 + 5780059 2 + 21 + 472733 + + + 21 2943 - 447614 + 27469 @@ -16042,12 +10745,12 @@ 1 2 - 5780884 + 5860970 2 2935 - 423628 + 419291 @@ -16063,12 +10766,12 @@ 1 2 - 5920553 + 5981463 2 2555 - 283959 + 298798 @@ -16084,12 +10787,12 @@ 1 2 - 6192020 + 6267900 2 5 - 12492 + 12361 @@ -16099,11 +10802,11 @@ var_def - 3731827 + 3770380 id - 3731827 + 3770380 @@ -16121,11 +10824,11 @@ var_decl_specifiers - 488965 + 490339 id - 488965 + 490339 name @@ -16143,7 +10846,7 @@ 1 2 - 488965 + 490339 @@ -16167,13 +10870,13 @@ 124 - 651 - 652 + 653 + 654 124 - 3170 - 3171 + 3181 + 3182 124 @@ -16253,19 +10956,19 @@ type_decls - 1687349 + 1634963 id - 1687349 + 1634963 type_id - 1650403 + 1615984 location - 1325700 + 1548807 @@ -16279,7 +10982,7 @@ 1 2 - 1687349 + 1634963 @@ -16295,7 +10998,7 @@ 1 2 - 1687349 + 1634963 @@ -16311,12 +11014,12 @@ 1 2 - 1623818 + 1599627 2 - 24 - 26585 + 10 + 16357 @@ -16332,12 +11035,12 @@ 1 2 - 1625003 + 1599751 2 - 24 - 25400 + 10 + 16232 @@ -16353,12 +11056,12 @@ 1 2 - 1257405 + 1526706 2 - 651 - 68294 + 64 + 22100 @@ -16374,12 +11077,12 @@ 1 2 - 1258602 + 1526831 2 - 651 - 67097 + 64 + 21975 @@ -16389,29 +11092,29 @@ type_def - 1157787 + 1096551 id - 1157787 + 1096551 type_decl_top - 672534 + 673602 type_decl - 672534 + 673602 type_requires - 7680 + 7681 id @@ -16469,7 +11172,7 @@ 1 2 - 7637 + 7638 2 @@ -16484,23 +11187,23 @@ namespace_decls - 430963 + 407321 id - 430963 + 407321 namespace_id - 1959 + 1844 location - 430963 + 407321 bodylocation - 430963 + 407321 @@ -16514,7 +11217,7 @@ 1 2 - 430963 + 407321 @@ -16530,7 +11233,7 @@ 1 2 - 430963 + 407321 @@ -16546,7 +11249,7 @@ 1 2 - 430963 + 407321 @@ -16562,57 +11265,57 @@ 1 2 - 414 + 389 2 3 - 215 + 203 3 6 - 181 + 170 6 15 - 164 + 154 15 34 - 155 + 146 35 62 - 164 + 154 63 87 - 155 + 146 90 - 142 - 155 + 144 + 154 - 143 - 219 - 155 + 146 + 264 + 146 - 263 - 1505 - 155 + 268 + 1868 + 146 - 1854 - 12392 - 43 + 2205 + 12449 + 32 @@ -16628,57 +11331,57 @@ 1 2 - 414 + 389 2 3 - 215 + 203 3 6 - 181 + 170 6 15 - 164 + 154 15 34 - 155 + 146 35 62 - 164 + 154 63 87 - 155 + 146 90 - 142 - 155 + 144 + 154 - 143 - 219 - 155 + 146 + 264 + 146 - 263 - 1505 - 155 + 268 + 1868 + 146 - 1854 - 12392 - 43 + 2205 + 12449 + 32 @@ -16694,57 +11397,57 @@ 1 2 - 414 + 389 2 3 - 215 + 203 3 6 - 181 + 170 6 15 - 164 + 154 15 34 - 155 + 146 35 62 - 164 + 154 63 87 - 155 + 146 90 - 142 - 155 + 144 + 154 - 143 - 219 - 155 + 146 + 264 + 146 - 263 - 1505 - 155 + 268 + 1868 + 146 - 1854 - 12392 - 43 + 2205 + 12449 + 32 @@ -16760,7 +11463,7 @@ 1 2 - 430963 + 407321 @@ -16776,7 +11479,7 @@ 1 2 - 430963 + 407321 @@ -16792,7 +11495,7 @@ 1 2 - 430963 + 407321 @@ -16808,7 +11511,7 @@ 1 2 - 430963 + 407321 @@ -16824,7 +11527,7 @@ 1 2 - 430963 + 407321 @@ -16840,7 +11543,7 @@ 1 2 - 430963 + 407321 @@ -16850,23 +11553,23 @@ usings - 311428 + 272082 id - 311428 + 272082 element_id - 67593 + 59053 location - 30731 + 26849 kind - 24 + 21 @@ -16880,7 +11583,7 @@ 1 2 - 311428 + 272082 @@ -16896,7 +11599,7 @@ 1 2 - 311428 + 272082 @@ -16912,7 +11615,7 @@ 1 2 - 311428 + 272082 @@ -16928,17 +11631,17 @@ 1 2 - 58743 + 51321 2 5 - 6165 + 5386 5 134 - 2683 + 2344 @@ -16954,17 +11657,17 @@ 1 2 - 58743 + 51321 2 5 - 6165 + 5386 5 134 - 2683 + 2344 @@ -16980,7 +11683,7 @@ 1 2 - 67593 + 59053 @@ -16996,22 +11699,22 @@ 1 2 - 24239 + 21177 2 4 - 2635 + 2302 4 132 - 2224 + 1943 145 367 - 1632 + 1425 @@ -17027,22 +11730,22 @@ 1 2 - 24239 + 21177 2 4 - 2635 + 2302 4 132 - 2224 + 1943 145 367 - 1632 + 1425 @@ -17058,7 +11761,7 @@ 1 2 - 30731 + 26849 @@ -17074,12 +11777,12 @@ 393 394 - 12 + 10 25367 25368 - 12 + 10 @@ -17095,12 +11798,12 @@ 214 215 - 12 + 10 5377 5378 - 12 + 10 @@ -17116,12 +11819,12 @@ 356 357 - 12 + 10 2186 2187 - 12 + 10 @@ -17131,15 +11834,15 @@ using_container - 662620 + 580149 parent - 24275 + 21895 child - 311428 + 272082 @@ -17153,42 +11856,42 @@ 1 2 - 11231 + 10372 2 3 - 1789 + 1616 3 6 - 2055 + 1858 6 7 - 2623 + 2291 7 - 27 - 1849 + 28 + 1668 - 27 + 28 136 - 942 + 781 145 146 - 2998 + 2619 146 437 - 785 + 686 @@ -17204,27 +11907,27 @@ 1 2 - 111176 + 96601 2 3 - 137664 + 120282 3 4 - 22522 + 20099 4 5 - 30550 + 26711 5 65 - 9514 + 8386 @@ -17234,27 +11937,27 @@ static_asserts - 183514 + 173266 id - 183514 + 173266 condition - 183514 + 173266 message - 41097 + 38765 location - 23924 + 22648 enclosing - 6648 + 6807 @@ -17268,7 +11971,7 @@ 1 2 - 183514 + 173266 @@ -17284,7 +11987,7 @@ 1 2 - 183514 + 173266 @@ -17300,7 +12003,7 @@ 1 2 - 183514 + 173266 @@ -17316,7 +12019,7 @@ 1 2 - 183514 + 173266 @@ -17332,7 +12035,7 @@ 1 2 - 183514 + 173266 @@ -17348,7 +12051,7 @@ 1 2 - 183514 + 173266 @@ -17364,7 +12067,7 @@ 1 2 - 183514 + 173266 @@ -17380,7 +12083,7 @@ 1 2 - 183514 + 173266 @@ -17396,32 +12099,32 @@ 1 2 - 30236 + 28505 2 3 - 673 + 641 3 4 - 3876 + 3623 4 12 - 2184 + 2087 12 17 - 3315 + 3135 17 513 - 811 + 771 @@ -17437,32 +12140,32 @@ 1 2 - 30236 + 28505 2 3 - 673 + 641 3 4 - 3876 + 3623 4 12 - 2184 + 2087 12 17 - 3315 + 3135 17 513 - 811 + 771 @@ -17478,12 +12181,12 @@ 1 2 - 38084 + 35922 2 33 - 3013 + 2843 @@ -17499,27 +12202,27 @@ 1 2 - 32170 + 30316 2 3 - 353 + 349 3 4 - 3626 + 3387 4 12 - 1985 + 1909 12 43 - 2961 + 2802 @@ -17535,52 +12238,52 @@ 1 2 - 4489 + 4281 2 3 - 3893 + 3728 3 4 - 1873 + 1738 4 5 - 112 + 121 5 6 - 5024 + 4736 6 13 - 457 + 430 14 15 - 2814 + 2648 16 17 - 60 + 64 17 18 - 4670 + 4394 19 52 - 526 + 503 @@ -17596,52 +12299,52 @@ 1 2 - 4489 + 4281 2 3 - 3893 + 3728 3 4 - 1873 + 1738 4 5 - 112 + 121 5 6 - 5024 + 4736 6 13 - 457 + 430 14 15 - 2814 + 2648 16 17 - 60 + 64 17 18 - 4670 + 4394 19 52 - 526 + 503 @@ -17657,22 +12360,22 @@ 1 2 - 7243 + 6953 2 3 - 8159 + 7676 3 4 - 8271 + 7782 4 7 - 250 + 235 @@ -17688,37 +12391,37 @@ 1 2 - 5327 + 5069 2 3 - 8538 + 8099 3 4 - 1597 + 1478 4 5 - 5042 + 4760 5 13 - 518 + 495 13 14 - 2814 + 2648 16 43 - 86 + 97 @@ -17734,22 +12437,22 @@ 1 2 - 5482 + 5702 2 3 - 561 + 528 3 - 210 - 500 + 228 + 528 - 223 + 229 11052 - 103 + 48 @@ -17765,22 +12468,22 @@ 1 2 - 5482 + 5702 2 3 - 561 + 528 3 - 210 - 500 + 228 + 528 - 223 + 229 11052 - 103 + 48 @@ -17796,17 +12499,17 @@ 1 2 - 5646 + 5857 2 3 - 552 + 519 3 2936 - 448 + 430 @@ -17822,17 +12525,17 @@ 1 2 - 5629 + 5840 2 3 - 569 + 536 3 1929 - 448 + 430 @@ -17842,23 +12545,23 @@ params - 6984184 + 7067152 id - 6957575 + 7026197 function - 3365915 + 3408025 index - 7995 + 7991 type_id - 1225411 + 1221415 @@ -17872,7 +12575,7 @@ 1 2 - 6957575 + 7026197 @@ -17888,7 +12591,7 @@ 1 2 - 6957575 + 7026197 @@ -17904,12 +12607,12 @@ 1 2 - 6930965 + 6985242 2 3 - 26609 + 40955 @@ -17925,27 +12628,27 @@ 1 2 - 1462898 + 1474513 2 3 - 908721 + 927111 3 4 - 561173 + 579242 4 5 - 277338 + 281067 5 65 - 155784 + 146090 @@ -17961,27 +12664,27 @@ 1 2 - 1462898 + 1474513 2 3 - 908721 + 927111 3 4 - 561173 + 579242 4 5 - 277338 + 281067 5 65 - 155784 + 146090 @@ -17997,22 +12700,22 @@ 1 2 - 1763473 + 1783301 2 3 - 1008413 + 1031622 3 4 - 436995 + 437896 4 11 - 157033 + 155205 @@ -18028,12 +12731,12 @@ 2 3 - 3997 + 3995 6 7 - 1998 + 1997 14 @@ -18046,13 +12749,13 @@ 624 - 323 - 15234 + 320 + 15486 624 - 26943 - 26944 + 27294 + 27295 124 @@ -18069,12 +12772,12 @@ 2 3 - 3997 + 3995 6 7 - 1998 + 1997 14 @@ -18087,13 +12790,13 @@ 624 - 323 - 15234 + 320 + 15486 624 - 26943 - 26944 + 27294 + 27295 124 @@ -18110,12 +12813,12 @@ 1 2 - 3997 + 3995 2 3 - 1998 + 1997 4 @@ -18124,17 +12827,17 @@ 9 - 54 + 55 624 - 115 - 2700 + 116 + 2703 624 - 7528 - 7529 + 7497 + 7498 124 @@ -18151,27 +12854,27 @@ 1 2 - 740818 + 738193 2 3 - 241984 + 240612 3 5 - 93820 + 93273 5 13 - 93695 + 93897 13 - 2570 - 55092 + 2574 + 55439 @@ -18187,27 +12890,27 @@ 1 2 - 823145 + 820353 2 3 - 181144 + 179803 3 6 - 106562 + 106258 6 27 - 92446 + 92274 27 - 2558 - 22112 + 2562 + 22725 @@ -18223,17 +12926,17 @@ 1 2 - 1000042 + 996036 2 3 - 167027 + 166942 3 65 - 58341 + 58436 @@ -18243,15 +12946,15 @@ overrides - 169821 + 159781 new - 160565 + 151073 old - 19124 + 17993 @@ -18265,12 +12968,12 @@ 1 2 - 151318 + 142372 2 4 - 9246 + 8700 @@ -18286,32 +12989,32 @@ 1 2 - 10464 + 9845 2 3 - 2590 + 2437 3 4 - 1735 + 1632 4 6 - 1580 + 1486 6 18 - 1441 + 1356 18 230 - 1312 + 1234 @@ -18321,19 +13024,19 @@ membervariables - 1495853 + 1499266 id - 1493401 + 1496815 type_id - 455129 + 456075 name - 640722 + 641686 @@ -18347,12 +13050,12 @@ 1 2 - 1491059 + 1494473 2 4 - 2342 + 2341 @@ -18368,7 +13071,7 @@ 1 2 - 1493401 + 1496815 @@ -18384,22 +13087,22 @@ 1 2 - 337738 + 338326 2 3 - 72123 + 72218 3 10 - 35135 + 35401 10 - 4422 - 10132 + 4444 + 10130 @@ -18415,22 +13118,22 @@ 1 2 - 355278 + 355917 2 3 - 64115 + 64321 3 49 - 34209 + 34311 56 - 2175 - 1525 + 2185 + 1524 @@ -18446,22 +13149,22 @@ 1 2 - 420974 + 421164 2 3 - 122130 + 122542 3 5 - 57469 + 57785 5 - 654 - 40147 + 656 + 40193 @@ -18477,17 +13180,17 @@ 1 2 - 523712 + 524318 2 3 - 72504 + 72817 3 - 658 - 44505 + 660 + 44550 @@ -18497,19 +13200,19 @@ globalvariables - 488090 + 488591 id - 488090 + 488591 type_id - 10368 + 10363 name - 112434 + 112626 @@ -18523,7 +13226,7 @@ 1 2 - 488090 + 488591 @@ -18539,7 +13242,7 @@ 1 2 - 488090 + 488591 @@ -18555,7 +13258,7 @@ 1 2 - 6995 + 6992 2 @@ -18579,7 +13282,7 @@ 152 - 2214 + 2216 499 @@ -18596,7 +13299,7 @@ 1 2 - 7120 + 7117 2 @@ -18619,8 +13322,8 @@ 874 - 124 - 226 + 125 + 228 499 @@ -18637,17 +13340,17 @@ 1 2 - 95319 + 95395 2 7 - 8744 + 8865 7 604 - 8370 + 8365 @@ -18663,12 +13366,12 @@ 1 2 - 96943 + 97018 2 3 - 15241 + 15358 3 @@ -18683,19 +13386,19 @@ localvariables - 726100 + 726232 id - 726100 + 726232 type_id - 53424 + 53437 name - 101537 + 101525 @@ -18709,7 +13412,7 @@ 1 2 - 726100 + 726232 @@ -18725,7 +13428,7 @@ 1 2 - 726100 + 726232 @@ -18741,37 +13444,37 @@ 1 2 - 28887 + 28883 2 3 - 7826 + 7837 3 4 - 4025 + 4028 4 6 - 4049 + 4053 6 12 - 4149 + 4145 12 - 166 - 4009 + 165 + 4008 - 168 - 19320 - 476 + 165 + 19323 + 480 @@ -18787,22 +13490,22 @@ 1 2 - 38367 + 38383 2 3 - 6701 + 6700 3 5 - 4466 + 4465 5 3502 - 3889 + 3888 @@ -18818,32 +13521,32 @@ 1 2 - 62468 + 62449 2 3 - 16045 + 16031 3 4 - 6532 + 6524 4 8 - 8130 + 8146 8 - 135 - 7618 + 132 + 7617 - 135 - 7544 - 741 + 132 + 7547 + 756 @@ -18859,17 +13562,17 @@ 1 2 - 84490 + 84480 2 3 - 8419 + 8414 3 15 - 7674 + 7677 15 @@ -18884,11 +13587,11 @@ autoderivation - 229241 + 229374 var - 229241 + 229374 derivation_type @@ -18906,7 +13609,7 @@ 1 2 - 229241 + 229374 @@ -18940,8 +13643,8 @@ 124 - 734 - 735 + 736 + 737 124 @@ -18952,15 +13655,15 @@ orphaned_variables - 44332 + 44323 var - 44332 + 44323 function - 41060 + 41052 @@ -18974,7 +13677,7 @@ 1 2 - 44332 + 44323 @@ -18990,7 +13693,7 @@ 1 2 - 40208 + 40201 2 @@ -19005,19 +13708,19 @@ enumconstants - 344765 + 345733 id - 344765 + 345733 parent - 41291 + 41337 index - 13945 + 13942 type_id @@ -19025,11 +13728,11 @@ name - 344383 + 345351 location - 317364 + 318338 @@ -19043,7 +13746,7 @@ 1 2 - 344765 + 345733 @@ -19059,7 +13762,7 @@ 1 2 - 344765 + 345733 @@ -19075,7 +13778,7 @@ 1 2 - 344765 + 345733 @@ -19091,7 +13794,7 @@ 1 2 - 344765 + 345733 @@ -19107,7 +13810,7 @@ 1 2 - 344765 + 345733 @@ -19123,57 +13826,57 @@ 1 2 - 1525 + 1524 2 3 - 5719 + 5773 3 4 - 8715 + 8714 4 5 - 5501 + 5500 5 6 - 4630 + 4574 6 7 - 2669 + 2559 7 8 - 1961 + 1960 8 - 11 - 3813 + 10 + 2941 - 11 - 17 - 3159 + 10 + 15 + 3322 - 17 - 64 - 3105 + 15 + 32 + 3104 - 79 + 32 257 - 490 + 1361 @@ -19189,57 +13892,57 @@ 1 2 - 1525 + 1524 2 3 - 5719 + 5773 3 4 - 8715 + 8714 4 5 - 5501 + 5500 5 6 - 4630 + 4574 6 7 - 2669 + 2559 7 8 - 1961 + 1960 8 - 11 - 3813 + 10 + 2941 - 11 - 17 - 3159 + 10 + 15 + 3322 - 17 - 64 - 3105 + 15 + 32 + 3104 - 79 + 32 257 - 490 + 1361 @@ -19255,7 +13958,7 @@ 1 2 - 41291 + 41337 @@ -19271,57 +13974,57 @@ 1 2 - 1525 + 1524 2 3 - 5719 + 5773 3 4 - 8715 + 8714 4 5 - 5501 + 5500 5 6 - 4630 + 4574 6 7 - 2669 + 2559 7 8 - 1961 + 1960 8 - 11 - 3813 + 10 + 2941 - 11 - 17 - 3159 + 10 + 15 + 3322 - 17 - 64 - 3105 + 15 + 32 + 3104 - 79 + 32 257 - 490 + 1361 @@ -19342,47 +14045,52 @@ 2 3 - 5937 + 5990 3 4 - 8770 + 8768 4 5 - 5447 + 5446 5 6 - 4630 + 4574 6 7 - 2614 + 2505 7 8 - 1852 + 1851 8 11 - 3704 + 3757 11 - 18 - 3105 + 17 + 3104 - 18 + 17 + 123 + 3104 + + + 164 257 - 3105 + 108 @@ -19398,12 +14106,12 @@ 1 2 - 2778 + 2777 2 3 - 2233 + 2232 3 @@ -19413,12 +14121,12 @@ 4 5 - 1252 + 1198 5 9 - 1089 + 1143 9 @@ -19427,18 +14135,18 @@ 12 - 19 - 1089 + 20 + 1143 - 19 - 55 + 20 + 59 1089 - 58 - 759 - 1035 + 64 + 760 + 980 @@ -19454,12 +14162,12 @@ 1 2 - 2778 + 2777 2 3 - 2233 + 2232 3 @@ -19469,12 +14177,12 @@ 4 5 - 1252 + 1198 5 9 - 1089 + 1143 9 @@ -19483,18 +14191,18 @@ 12 - 19 - 1089 + 20 + 1143 - 19 - 55 + 20 + 59 1089 - 58 - 759 - 1035 + 64 + 760 + 980 @@ -19510,7 +14218,7 @@ 1 2 - 13945 + 13942 @@ -19526,12 +14234,12 @@ 1 2 - 2778 + 2777 2 3 - 2233 + 2232 3 @@ -19541,12 +14249,12 @@ 4 5 - 1252 + 1198 5 9 - 1089 + 1143 9 @@ -19555,18 +14263,18 @@ 12 - 19 - 1089 + 20 + 1143 - 19 - 55 + 20 + 59 1089 - 58 - 756 - 1035 + 64 + 757 + 980 @@ -19582,12 +14290,12 @@ 1 2 - 2778 + 2777 2 3 - 2233 + 2232 3 @@ -19597,12 +14305,12 @@ 4 5 - 1252 + 1198 5 9 - 1089 + 1143 9 @@ -19611,18 +14319,18 @@ 12 - 19 - 1089 + 20 + 1143 - 19 - 55 + 20 + 59 1089 - 58 - 759 - 1035 + 64 + 760 + 980 @@ -19636,8 +14344,8 @@ 12 - 6329 - 6330 + 6348 + 6349 54 @@ -19652,8 +14360,8 @@ 12 - 758 - 759 + 759 + 760 54 @@ -19684,8 +14392,8 @@ 12 - 6322 - 6323 + 6341 + 6342 54 @@ -19700,8 +14408,8 @@ 12 - 5826 - 5827 + 5845 + 5846 54 @@ -19718,7 +14426,7 @@ 1 2 - 344002 + 344970 2 @@ -19739,7 +14447,7 @@ 1 2 - 344002 + 344970 2 @@ -19760,7 +14468,7 @@ 1 2 - 344383 + 345351 @@ -19776,7 +14484,7 @@ 1 2 - 344383 + 345351 @@ -19792,7 +14500,7 @@ 1 2 - 344002 + 344970 2 @@ -19813,12 +14521,12 @@ 1 2 - 316329 + 317303 2 205 - 1035 + 1034 @@ -19834,7 +14542,7 @@ 1 2 - 317364 + 318338 @@ -19850,12 +14558,12 @@ 1 2 - 316329 + 317303 2 205 - 1035 + 1034 @@ -19871,7 +14579,7 @@ 1 2 - 317364 + 318338 @@ -19887,12 +14595,12 @@ 1 2 - 316329 + 317303 2 205 - 1035 + 1034 @@ -19902,19 +14610,19 @@ builtintypes - 7245 + 7616 id - 7245 + 7616 name - 7245 + 7616 kind - 7245 + 7616 size @@ -19940,7 +14648,7 @@ 1 2 - 7245 + 7616 @@ -19956,7 +14664,7 @@ 1 2 - 7245 + 7616 @@ -19972,7 +14680,7 @@ 1 2 - 7245 + 7616 @@ -19988,7 +14696,7 @@ 1 2 - 7245 + 7616 @@ -20004,7 +14712,7 @@ 1 2 - 7245 + 7616 @@ -20020,7 +14728,7 @@ 1 2 - 7245 + 7616 @@ -20036,7 +14744,7 @@ 1 2 - 7245 + 7616 @@ -20052,7 +14760,7 @@ 1 2 - 7245 + 7616 @@ -20068,7 +14776,7 @@ 1 2 - 7245 + 7616 @@ -20084,7 +14792,7 @@ 1 2 - 7245 + 7616 @@ -20100,7 +14808,7 @@ 1 2 - 7245 + 7616 @@ -20116,7 +14824,7 @@ 1 2 - 7245 + 7616 @@ -20132,7 +14840,7 @@ 1 2 - 7245 + 7616 @@ -20148,7 +14856,7 @@ 1 2 - 7245 + 7616 @@ -20164,7 +14872,7 @@ 1 2 - 7245 + 7616 @@ -20198,8 +14906,44 @@ 124 - 12 - 13 + 14 + 15 + 124 + + + 15 + 16 + 124 + + + + + + + size + name + + + 12 + + + 2 + 3 + 249 + + + 8 + 9 + 124 + + + 9 + 10 + 124 + + + 11 + 12 124 @@ -20207,13 +14951,18 @@ 15 124 + + 15 + 16 + 124 + size - name + kind 12 @@ -20238,55 +14987,14 @@ 12 124 - - 12 - 13 - 124 - 14 15 124 - - - - - - size - kind - - - 12 - - 2 - 3 - 249 - - - 8 - 9 - 124 - - - 9 - 10 - 124 - - - 11 - 12 - 124 - - - 12 - 13 - 124 - - - 14 - 15 + 15 + 16 124 @@ -20353,8 +15061,8 @@ 124 - 40 - 41 + 43 + 44 124 @@ -20379,8 +15087,8 @@ 124 - 40 - 41 + 43 + 44 124 @@ -20405,8 +15113,8 @@ 124 - 40 - 41 + 43 + 44 124 @@ -20465,12 +15173,12 @@ 10 11 - 249 + 124 13 14 - 124 + 249 17 @@ -20496,12 +15204,12 @@ 10 11 - 249 + 124 13 14 - 124 + 249 17 @@ -20527,12 +15235,12 @@ 10 11 - 249 + 124 13 14 - 124 + 249 17 @@ -20579,15 +15287,15 @@ derivedtypes - 3044352 + 3033685 id - 3044352 + 3033685 name - 1474266 + 1461902 kind @@ -20595,7 +15303,7 @@ type_id - 1947741 + 1948495 @@ -20609,7 +15317,7 @@ 1 2 - 3044352 + 3033685 @@ -20625,7 +15333,7 @@ 1 2 - 3044352 + 3033685 @@ -20641,7 +15349,7 @@ 1 2 - 3044352 + 3033685 @@ -20657,17 +15365,17 @@ 1 2 - 1357334 + 1345279 2 - 30 - 110810 + 28 + 110004 - 30 - 4274 - 6121 + 29 + 4302 + 6617 @@ -20683,7 +15391,7 @@ 1 2 - 1474266 + 1461902 @@ -20699,17 +15407,17 @@ 1 2 - 1357459 + 1345404 2 - 30 - 110685 + 28 + 109879 - 30 - 4274 - 6121 + 29 + 4302 + 6617 @@ -20723,8 +15431,8 @@ 12 - 787 - 788 + 724 + 725 124 @@ -20733,23 +15441,23 @@ 124 - 3647 - 3648 + 3627 + 3628 124 - 4273 - 4274 + 4301 + 4302 124 - 5569 - 5570 + 5557 + 5558 124 - 7760 - 7761 + 7754 + 7755 124 @@ -20769,8 +15477,8 @@ 124 - 733 - 734 + 671 + 672 124 @@ -20779,18 +15487,18 @@ 124 - 2433 - 2434 + 2429 + 2430 124 - 2678 - 2679 + 2654 + 2655 124 - 4343 - 4344 + 4340 + 4341 124 @@ -20805,8 +15513,8 @@ 12 - 208 - 209 + 207 + 208 124 @@ -20815,23 +15523,23 @@ 124 - 3643 - 3644 + 3623 + 3624 124 - 4273 - 4274 + 4301 + 4302 124 - 5502 - 5503 + 5492 + 5493 124 - 7760 - 7761 + 7754 + 7755 124 @@ -20848,22 +15556,22 @@ 1 2 - 1315609 + 1318684 2 3 - 378154 + 376213 3 4 - 122803 + 123365 4 - 135 - 131173 + 137 + 130232 @@ -20879,22 +15587,22 @@ 1 2 - 1317108 + 1320182 2 3 - 378154 + 376213 3 4 - 121304 + 121866 4 - 135 - 131173 + 137 + 130232 @@ -20910,22 +15618,22 @@ 1 2 - 1317483 + 1320557 2 3 - 379029 + 376838 3 4 - 122803 + 123614 4 6 - 128425 + 127485 @@ -20935,11 +15643,11 @@ pointerishsize - 2250315 + 2249417 id - 2250315 + 2249417 size @@ -20961,7 +15669,7 @@ 1 2 - 2250315 + 2249417 @@ -20977,7 +15685,7 @@ 1 2 - 2250315 + 2249417 @@ -20996,8 +15704,8 @@ 124 - 18010 - 18011 + 18012 + 18013 124 @@ -21033,8 +15741,8 @@ 124 - 18010 - 18011 + 18012 + 18013 124 @@ -21061,19 +15769,19 @@ arraysizes - 88573 + 80661 id - 88573 + 80661 num_elements - 18489 + 17855 bytesize - 22861 + 20227 alignment @@ -21091,7 +15799,7 @@ 1 2 - 88573 + 80661 @@ -21107,7 +15815,7 @@ 1 2 - 88573 + 80661 @@ -21123,7 +15831,7 @@ 1 2 - 88573 + 80661 @@ -21144,7 +15852,7 @@ 2 3 - 8869 + 10863 3 @@ -21154,22 +15862,22 @@ 4 5 - 5621 + 3496 - 6 - 7 - 1624 + 5 + 9 + 1498 - 8 - 27 - 1499 + 9 + 42 + 1373 - 34 + 56 57 - 374 + 124 @@ -21185,22 +15893,22 @@ 1 2 - 9494 + 11737 2 3 - 6621 + 3995 3 5 - 1249 + 998 5 11 - 1124 + 1123 @@ -21216,22 +15924,22 @@ 1 2 - 9494 + 11737 2 3 - 6621 + 3995 3 4 - 999 + 749 4 6 - 1374 + 1373 @@ -21252,32 +15960,32 @@ 2 3 - 14741 + 12736 3 4 - 374 + 499 4 5 - 3248 + 2746 5 7 - 1499 + 1498 7 17 - 1748 + 1623 - 17 + 24 45 - 624 + 499 @@ -21293,22 +16001,22 @@ 1 2 - 16490 + 14609 2 3 - 3997 + 3621 3 - 5 - 1748 + 6 + 1872 - 5 + 6 7 - 624 + 124 @@ -21324,17 +16032,17 @@ 1 2 - 16615 + 14858 2 3 - 3997 + 3371 3 5 - 1873 + 1623 5 @@ -21368,13 +16076,13 @@ 124 - 187 - 188 + 121 + 122 124 - 335 - 336 + 338 + 339 124 @@ -21399,13 +16107,13 @@ 249 - 80 - 81 + 48 + 49 124 - 137 - 138 + 139 + 140 124 @@ -21435,13 +16143,13 @@ 124 - 80 - 81 + 48 + 49 124 - 138 - 139 + 140 + 141 124 @@ -21500,15 +16208,15 @@ typedefbase - 1828181 + 1762239 id - 1828181 + 1762239 type_id - 885722 + 838004 @@ -21522,7 +16230,7 @@ 1 2 - 1828181 + 1762239 @@ -21538,22 +16246,22 @@ 1 2 - 706481 + 662556 2 3 - 83914 + 80927 3 - 7 - 74580 + 6 + 64154 - 7 - 4525 - 20745 + 6 + 4526 + 30366 @@ -21563,7 +16271,7 @@ decltypes - 814475 + 814476 id @@ -21571,7 +16279,7 @@ expr - 814475 + 814476 kind @@ -21701,7 +16409,7 @@ 1 2 - 814475 + 814476 @@ -21717,7 +16425,7 @@ 1 2 - 814475 + 814476 @@ -21733,7 +16441,7 @@ 1 2 - 814475 + 814476 @@ -21749,7 +16457,7 @@ 1 2 - 814475 + 814476 @@ -22327,19 +17035,19 @@ usertypes - 4458594 + 4151525 id - 4458594 + 4151525 name - 963652 + 918510 kind - 145 + 126 @@ -22353,7 +17061,7 @@ 1 2 - 4458594 + 4151525 @@ -22369,7 +17077,7 @@ 1 2 - 4458594 + 4151525 @@ -22385,22 +17093,22 @@ 1 2 - 667093 + 654243 2 3 - 176423 + 158665 3 - 7 - 76769 + 8 + 70566 - 7 - 30282 - 43365 + 8 + 32669 + 35034 @@ -22416,12 +17124,12 @@ 1 2 - 904425 + 866765 2 10 - 59227 + 51744 @@ -22437,62 +17145,62 @@ 28 29 - 12 + 10 64 65 - 12 + 10 579 580 - 12 + 10 - 1042 - 1043 - 12 + 1052 + 1053 + 10 - 1563 - 1564 - 12 + 1595 + 1596 + 10 1874 1875 - 12 + 10 4586 4587 - 12 + 10 - 19666 - 19667 - 12 + 20079 + 20080 + 10 - 20075 - 20076 - 12 + 21491 + 21492 + 10 82092 82093 - 12 + 10 - 86007 - 86008 - 12 + 92771 + 92772 + 10 - 151219 - 151220 - 12 + 166844 + 166845 + 10 @@ -22508,62 +17216,62 @@ 19 20 - 12 + 10 47 48 - 12 + 10 50 51 - 12 + 10 153 154 - 12 + 10 417 418 - 12 + 10 771 772 - 12 + 10 1565 1566 - 12 + 10 3066 3067 - 12 - - - 5585 - 5586 - 12 + 10 - 10838 - 10839 - 12 + 5589 + 5590 + 10 10903 10904 - 12 + 10 - 51707 - 51708 - 12 + 12189 + 12190 + 10 + + + 57608 + 57609 + 10 @@ -22573,19 +17281,19 @@ usertypesize - 1462784 + 1363780 id - 1462784 + 1363780 size - 1692 + 1478 alignment - 96 + 84 @@ -22599,7 +17307,7 @@ 1 2 - 1462784 + 1363780 @@ -22615,7 +17323,7 @@ 1 2 - 1462784 + 1363780 @@ -22631,52 +17339,52 @@ 1 2 - 531 + 464 2 3 - 229 + 190 3 4 - 96 + 95 4 6 - 108 + 95 6 - 8 - 132 + 9 + 116 - 8 - 14 - 132 + 9 + 19 + 116 - 14 - 26 - 132 + 19 + 30 + 116 - 26 - 86 - 132 + 30 + 115 + 116 - 96 - 1592 - 132 + 118 + 1735 + 116 - 1733 - 93158 - 60 + 1839 + 99774 + 52 @@ -22692,17 +17400,17 @@ 1 2 - 1390 + 1204 2 3 - 193 + 179 3 6 - 108 + 95 @@ -22718,42 +17426,42 @@ 1 2 - 12 + 10 3 4 - 12 + 10 7 8 - 12 + 10 54 55 - 12 + 10 56 57 - 12 + 10 - 2046 - 2047 - 12 + 2080 + 2081 + 10 - 10484 - 10485 - 12 + 11949 + 11950 + 10 - 108344 - 108345 - 12 + 114969 + 114970 + 10 @@ -22769,37 +17477,37 @@ 1 2 - 24 + 21 3 4 - 12 + 10 11 12 - 12 + 10 12 13 - 12 + 10 17 18 - 12 + 10 27 28 - 12 + 10 - 110 - 111 - 12 + 111 + 112 + 10 @@ -22809,26 +17517,26 @@ usertype_final - 11493 + 11487 id - 11493 + 11487 usertype_uuid - 50413 + 47628 id - 50413 + 47628 uuid - 49904 + 47148 @@ -22842,7 +17550,7 @@ 1 2 - 50413 + 47628 @@ -22858,12 +17566,12 @@ 1 2 - 49394 + 46669 2 3 - 509 + 479 @@ -22873,15 +17581,15 @@ usertype_alias_kind - 1828181 + 1762239 id - 1828181 + 1762239 alias_kind - 24 + 21 @@ -22895,7 +17603,7 @@ 1 2 - 1828181 + 1762239 @@ -22909,14 +17617,14 @@ 12 - 36597 - 36598 - 12 + 36900 + 36901 + 10 - 114622 - 114623 - 12 + 129944 + 129945 + 10 @@ -22926,18 +17634,18 @@ nontype_template_parameters - 766422 + 766283 id - 766422 + 766283 type_template_type_constraint - 27151 + 27152 id @@ -22945,7 +17653,7 @@ constraint - 26011 + 26012 @@ -22995,7 +17703,7 @@ 1 2 - 24871 + 24872 2 @@ -23010,15 +17718,15 @@ mangled_name - 7826069 + 7859536 id - 7826069 + 7859536 mangled_name - 6330564 + 6370039 is_complete @@ -23036,7 +17744,7 @@ 1 2 - 7826069 + 7859536 @@ -23052,7 +17760,7 @@ 1 2 - 7826069 + 7859536 @@ -23068,12 +17776,12 @@ 1 2 - 6001006 + 6041648 2 - 1127 - 329558 + 1120 + 328391 @@ -23089,7 +17797,7 @@ 1 2 - 6330564 + 6370039 @@ -23108,8 +17816,8 @@ 124 - 62639 - 62640 + 62939 + 62940 124 @@ -23129,8 +17837,8 @@ 124 - 50668 - 50669 + 51010 + 51011 124 @@ -23141,59 +17849,59 @@ is_pod_class - 593865 + 593757 id - 593865 + 593757 is_standard_layout_class - 1205360 + 1124388 id - 1205360 + 1124388 is_complete - 1443114 + 1346258 id - 1443114 + 1346258 is_class_template - 260749 + 232167 id - 260749 + 232167 class_instantiation - 1189945 + 1126046 to - 1186464 + 1123004 from - 81870 + 71801 @@ -23207,12 +17915,12 @@ 1 2 - 1184021 + 1120871 2 8 - 2442 + 2133 @@ -23228,47 +17936,47 @@ 1 2 - 23792 + 20490 2 3 - 14809 + 12885 3 4 - 8100 + 7108 4 5 - 5355 + 4657 5 7 - 6903 + 6073 7 10 - 6262 + 5724 10 17 - 6625 + 5904 17 - 53 - 6201 + 51 + 5397 - 53 - 4219 - 3820 + 51 + 4223 + 3559 @@ -23278,19 +17986,19 @@ class_template_argument - 3135288 + 2898595 type_id - 1461382 + 1367076 index - 1354 + 1182 arg_type - 925001 + 822077 @@ -23304,27 +18012,27 @@ 1 2 - 608192 + 579347 2 3 - 439349 + 410278 3 4 - 276876 + 251042 4 7 - 110765 + 103097 7 113 - 26198 + 23310 @@ -23340,22 +18048,22 @@ 1 2 - 639589 + 607886 2 3 - 452563 + 424283 3 4 - 275075 + 251876 4 113 - 94154 + 83029 @@ -23371,37 +18079,37 @@ 2 3 - 12 + 10 4 5 - 858 + 749 5 30 - 108 + 95 33 90 - 108 + 95 95 453 - 108 + 95 643 - 6819 - 108 + 7128 + 95 - 11329 - 120877 - 48 + 11968 + 129429 + 42 @@ -23417,37 +18125,37 @@ 2 3 - 12 + 10 4 5 - 858 + 749 5 16 - 120 + 105 16 35 - 108 + 95 37 155 - 108 + 95 196 - 3251 - 108 + 3263 + 95 - 10075 - 43772 - 36 + 10413 + 44533 + 31 @@ -23463,27 +18171,27 @@ 1 2 - 580362 + 513703 2 3 - 189734 + 167643 3 - 4 - 55563 + 5 + 75086 - 4 - 11 - 70373 + 5 + 47 + 61736 - 11 - 11634 - 28966 + 47 + 12618 + 3908 @@ -23499,17 +18207,17 @@ 1 2 - 815421 + 723795 2 3 - 88822 + 79913 3 22 - 20757 + 18367 @@ -23519,11 +18227,11 @@ class_template_argument_value - 510176 + 510083 type_id - 205849 + 205811 index @@ -23531,7 +18239,7 @@ arg_value - 510039 + 509947 @@ -23545,17 +18253,17 @@ 1 2 - 155826 + 155798 2 3 - 43377 + 43370 3 8 - 6644 + 6643 @@ -23571,22 +18279,22 @@ 1 2 - 147955 + 147928 2 3 - 40481 + 40474 3 45 - 15538 + 15535 45 154 - 1874 + 1873 @@ -23714,7 +18422,7 @@ 1 2 - 509903 + 509811 2 @@ -23735,7 +18443,7 @@ 1 2 - 510039 + 509947 @@ -23745,15 +18453,15 @@ is_proxy_class_for - 55443 + 48438 id - 55443 + 48438 templ_param_id - 52384 + 45766 @@ -23767,7 +18475,7 @@ 1 2 - 55443 + 48438 @@ -23783,12 +18491,12 @@ 1 2 - 51562 + 45047 2 79 - 822 + 718 @@ -23798,19 +18506,19 @@ type_mentions - 5828707 + 5902897 id - 5828707 + 5902897 type_id - 276019 + 276673 location - 5783003 + 5846582 kind @@ -23828,7 +18536,7 @@ 1 2 - 5828707 + 5902897 @@ -23844,7 +18552,7 @@ 1 2 - 5828707 + 5902897 @@ -23860,7 +18568,7 @@ 1 2 - 5828707 + 5902897 @@ -23876,42 +18584,42 @@ 1 2 - 136511 + 136593 2 3 - 30995 + 31153 3 4 - 11167 + 11273 4 5 - 14707 + 14922 5 7 - 19991 + 19988 7 12 - 21844 + 21785 12 28 - 21081 + 21077 28 - 8907 - 19719 + 8940 + 19879 @@ -23927,42 +18635,42 @@ 1 2 - 136511 + 136593 2 3 - 30995 + 31153 3 4 - 11167 + 11273 4 5 - 14707 + 14922 5 7 - 19991 + 19988 7 12 - 21844 + 21785 12 28 - 21081 + 21077 28 - 8907 - 19719 + 8940 + 19879 @@ -23978,7 +18686,7 @@ 1 2 - 276019 + 276673 @@ -23994,12 +18702,12 @@ 1 2 - 5737300 + 5800887 2 - 3 - 45703 + 4 + 45694 @@ -24015,12 +18723,12 @@ 1 2 - 5737300 + 5800887 2 - 3 - 45703 + 4 + 45694 @@ -24036,7 +18744,7 @@ 1 2 - 5783003 + 5846582 @@ -24050,8 +18758,8 @@ 12 - 107000 - 107001 + 108383 + 108384 54 @@ -24066,8 +18774,8 @@ 12 - 5067 - 5068 + 5080 + 5081 54 @@ -24082,8 +18790,8 @@ 12 - 106161 - 106162 + 107349 + 107350 54 @@ -24094,26 +18802,26 @@ is_function_template - 1335972 + 1332543 id - 1335972 + 1332543 function_instantiation - 973157 + 973628 to - 973157 + 973628 from - 182575 + 182644 @@ -24127,7 +18835,7 @@ 1 2 - 973157 + 973628 @@ -24143,27 +18851,27 @@ 1 2 - 111051 + 110588 2 3 - 42253 + 42790 3 9 - 14379 + 14377 9 - 103 - 13698 + 104 + 13729 - 103 + 119 1532 - 1192 + 1158 @@ -24173,19 +18881,19 @@ function_template_argument - 2485251 + 2484801 function_id - 1453551 + 1453288 index - 477 + 476 arg_type - 298057 + 298003 @@ -24199,22 +18907,22 @@ 1 2 - 783153 + 783011 2 3 - 413231 + 413156 3 4 - 171841 + 171810 4 15 - 85324 + 85309 @@ -24230,22 +18938,22 @@ 1 2 - 802303 + 802158 2 3 - 411323 + 411249 3 4 - 169661 + 169630 4 9 - 70263 + 70250 @@ -24383,37 +19091,37 @@ 1 2 - 174806 + 174774 2 3 - 26340 + 26335 3 4 - 20002 + 19998 4 6 - 22660 + 22656 6 11 - 23239 + 23235 11 76 - 23375 + 23371 79 2452 - 7632 + 7631 @@ -24429,17 +19137,17 @@ 1 2 - 256859 + 256813 2 3 - 32133 + 32127 3 15 - 9064 + 9062 @@ -24449,19 +19157,19 @@ function_template_argument_value - 452861 + 452779 function_id - 196819 + 196783 index - 477 + 476 arg_value - 450169 + 450087 @@ -24475,12 +19183,12 @@ 1 2 - 151430 + 151403 2 3 - 42900 + 42893 3 @@ -24501,17 +19209,17 @@ 1 2 - 144513 + 144487 2 3 - 36699 + 36692 3 54 - 14856 + 14854 54 @@ -24654,7 +19362,7 @@ 1 2 - 447477 + 447396 2 @@ -24675,7 +19383,7 @@ 1 2 - 450169 + 450087 @@ -24685,26 +19393,26 @@ is_variable_template - 58715 + 58685 id - 58715 + 58685 variable_instantiation - 421504 + 423162 to - 421504 + 423162 from - 35104 + 35336 @@ -24718,7 +19426,7 @@ 1 2 - 421504 + 423162 @@ -24734,47 +19442,42 @@ 1 2 - 15116 + 15233 2 3 - 3997 + 3870 3 4 - 2248 + 2372 4 6 - 2873 + 2996 6 8 - 2248 + 2247 8 - 11 - 2748 - - - 11 - 30 - 2748 + 12 + 3121 - 30 - 105 - 2748 + 12 + 31 + 2746 - 180 + 32 546 - 374 + 2746 @@ -24784,19 +19487,19 @@ variable_template_argument - 768927 + 769159 variable_id - 400766 + 401311 index - 1998 + 1997 arg_type - 256850 + 256344 @@ -24810,22 +19513,22 @@ 1 2 - 155909 + 156703 2 3 - 190139 + 189917 3 4 - 36478 + 36460 4 17 - 18239 + 18230 @@ -24841,22 +19544,22 @@ 1 2 - 170900 + 171562 2 3 - 180270 + 180178 3 4 - 33730 + 33713 4 17 - 15865 + 15857 @@ -24900,13 +19603,13 @@ 124 - 1960 - 1961 + 1959 + 1960 124 - 3208 - 3209 + 3214 + 3215 124 @@ -24951,13 +19654,13 @@ 124 - 748 - 749 + 745 + 746 124 - 1326 - 1327 + 1325 + 1326 124 @@ -24974,22 +19677,22 @@ 1 2 - 176022 + 175558 2 3 - 44723 + 44701 3 6 - 21737 + 21601 6 206 - 14366 + 14484 @@ -25005,17 +19708,17 @@ 1 2 - 228367 + 228000 2 3 - 24860 + 24722 3 7 - 3622 + 3621 @@ -25025,11 +19728,11 @@ variable_template_argument_value - 19988 + 19978 variable_id - 14866 + 14858 index @@ -25037,7 +19740,7 @@ arg_value - 19988 + 19978 @@ -25051,12 +19754,12 @@ 1 2 - 13367 + 13360 2 3 - 1499 + 1498 @@ -25072,12 +19775,12 @@ 1 2 - 10493 + 10488 2 3 - 3997 + 3995 4 @@ -25160,7 +19863,7 @@ 1 2 - 19988 + 19978 @@ -25176,7 +19879,7 @@ 1 2 - 19988 + 19978 @@ -25186,15 +19889,15 @@ template_template_instantiation - 6637 + 6368 to - 6226 + 4994 from - 4400 + 1123 @@ -25208,12 +19911,12 @@ 1 2 - 6093 + 3621 2 - 15 - 132 + 3 + 1373 @@ -25229,17 +19932,22 @@ 1 2 - 2877 + 749 2 3 - 1366 + 124 - 3 - 20 - 157 + 16 + 17 + 124 + + + 27 + 28 + 124 @@ -25249,19 +19957,19 @@ template_template_argument - 11074 + 9674 type_id - 6999 + 6115 index - 120 + 105 arg_type - 10397 + 9083 @@ -25275,22 +19983,22 @@ 1 2 - 5742 + 5017 2 3 - 483 + 422 3 8 - 580 + 506 8 11 - 193 + 168 @@ -25306,22 +20014,22 @@ 1 2 - 5766 + 5038 2 4 - 640 + 559 4 10 - 531 + 464 10 11 - 60 + 52 @@ -25337,52 +20045,52 @@ 6 7 - 12 + 10 11 12 - 12 + 10 16 17 - 12 + 10 21 22 - 12 + 10 27 28 - 12 + 10 38 39 - 12 + 10 50 51 - 12 + 10 64 65 - 12 + 10 104 105 - 12 + 10 579 580 - 12 + 10 @@ -25398,52 +20106,52 @@ 6 7 - 12 + 10 11 12 - 12 + 10 16 17 - 12 + 10 21 22 - 12 + 10 27 28 - 12 + 10 38 39 - 12 + 10 50 51 - 12 + 10 64 65 - 12 + 10 99 100 - 12 + 10 538 539 - 12 + 10 @@ -25459,12 +20167,12 @@ 1 2 - 10360 + 9051 3 43 - 36 + 31 @@ -25480,12 +20188,12 @@ 1 2 - 10372 + 9062 2 11 - 24 + 21 @@ -25495,19 +20203,19 @@ template_template_argument_value - 713 + 623 type_id - 604 + 528 index - 24 + 21 arg_value - 713 + 623 @@ -25521,7 +20229,7 @@ 1 2 - 604 + 528 @@ -25537,17 +20245,17 @@ 1 2 - 519 + 454 2 3 - 60 + 52 3 4 - 24 + 21 @@ -25563,12 +20271,12 @@ 8 9 - 12 + 10 42 43 - 12 + 10 @@ -25584,12 +20292,12 @@ 17 18 - 12 + 10 42 43 - 12 + 10 @@ -25605,7 +20313,7 @@ 1 2 - 713 + 623 @@ -25621,7 +20329,7 @@ 1 2 - 713 + 623 @@ -25747,11 +20455,11 @@ concept_instantiation - 90427 + 90430 to - 90427 + 90430 from @@ -25769,7 +20477,7 @@ 1 2 - 90427 + 90430 @@ -25865,22 +20573,22 @@ is_type_constraint - 36898 + 36899 concept_id - 36898 + 36899 concept_template_argument - 113040 + 113043 concept_id - 76378 + 76380 index @@ -25888,7 +20596,7 @@ arg_type - 21428 + 21429 @@ -25902,12 +20610,12 @@ 1 2 - 46472 + 46473 2 3 - 24677 + 24678 3 @@ -25928,12 +20636,12 @@ 1 2 - 50087 + 50088 2 3 - 22375 + 22376 3 @@ -26036,7 +20744,7 @@ 1 2 - 10391 + 10392 2 @@ -26087,7 +20795,7 @@ 1 2 - 18029 + 18030 2 @@ -26238,15 +20946,15 @@ routinetypes - 604428 + 604319 id - 604428 + 604319 return_type - 283915 + 283864 @@ -26260,7 +20968,7 @@ 1 2 - 604428 + 604319 @@ -26276,17 +20984,17 @@ 1 2 - 234267 + 234225 2 3 - 35097 + 35091 3 4676 - 14550 + 14547 @@ -26296,11 +21004,11 @@ routinetypeargs - 1169173 + 1176788 routine - 413238 + 415119 index @@ -26308,7 +21016,7 @@ type_id - 111399 + 111595 @@ -26322,32 +21030,32 @@ 1 2 - 82364 + 82511 2 3 - 125834 + 126028 3 4 - 107150 + 107456 4 5 - 48754 + 49289 5 7 - 32575 + 33168 7 19 - 16560 + 16665 @@ -26363,27 +21071,27 @@ 1 2 - 88356 + 88502 2 3 - 138418 + 138663 3 4 - 113850 + 114209 4 5 - 40256 + 40738 5 10 - 32248 + 32895 10 @@ -26447,38 +21155,38 @@ 54 - 304 - 305 + 306 + 307 54 - 576 - 577 + 584 + 585 54 - 902 - 903 + 915 + 916 54 - 1797 - 1798 + 1820 + 1821 54 - 3764 - 3765 + 3793 + 3794 54 - 6074 - 6075 + 6107 + 6108 54 - 7586 - 7587 + 7622 + 7623 54 @@ -26533,38 +21241,38 @@ 54 - 96 - 97 + 97 + 98 54 - 126 - 127 + 127 + 128 54 - 191 - 192 + 192 + 193 54 - 313 - 314 + 314 + 315 54 - 509 - 510 + 510 + 511 54 - 786 - 787 + 787 + 788 54 - 1172 - 1173 + 1174 + 1175 54 @@ -26581,47 +21289,47 @@ 1 2 - 33283 + 33222 2 3 - 15034 + 15195 3 4 - 13237 + 13234 4 5 - 9859 + 9803 5 6 - 6373 + 6372 6 8 - 9532 + 9476 8 13 - 9478 + 9531 13 26 - 8770 + 8659 26 - 916 - 5828 + 918 + 6099 @@ -26637,22 +21345,22 @@ 1 2 - 78714 + 78917 2 3 - 17595 + 17537 3 5 - 9478 + 9476 5 17 - 5610 + 5664 @@ -26662,19 +21370,19 @@ ptrtomembers - 11025 + 9727 id - 11025 + 9727 type_id - 9067 + 7974 class_id - 5464 + 4869 @@ -26688,7 +21396,7 @@ 1 2 - 11025 + 9727 @@ -26704,7 +21412,7 @@ 1 2 - 11025 + 9727 @@ -26720,12 +21428,12 @@ 1 2 - 8813 + 7752 2 84 - 253 + 221 @@ -26741,12 +21449,12 @@ 1 2 - 8813 + 7752 2 84 - 253 + 221 @@ -26762,22 +21470,22 @@ 1 2 - 4352 + 3897 2 3 - 604 + 528 8 9 - 459 + 401 10 65 - 48 + 42 @@ -26793,22 +21501,22 @@ 1 2 - 4352 + 3897 2 3 - 604 + 528 8 9 - 459 + 401 10 65 - 48 + 42 @@ -26818,15 +21526,15 @@ specifiers - 7745 + 7741 id - 7745 + 7741 str - 7745 + 7741 @@ -26840,7 +21548,7 @@ 1 2 - 7745 + 7741 @@ -26856,7 +21564,7 @@ 1 2 - 7745 + 7741 @@ -26866,15 +21574,15 @@ typespecifiers - 888515 + 854940 type_id - 882627 + 847448 spec_id - 108 + 1623 @@ -26888,12 +21596,12 @@ 1 2 - 876739 + 839957 2 3 - 5887 + 7491 @@ -26907,49 +21615,69 @@ 12 - 164 - 165 - 12 + 1 + 2 + 124 - 215 - 216 - 12 + 2 + 3 + 124 - 224 - 225 - 12 + 16 + 17 + 124 - 532 - 533 - 12 + 17 + 18 + 124 - 821 - 822 - 12 + 24 + 25 + 124 - 1568 - 1569 - 12 + 44 + 45 + 124 - 4150 - 4151 - 12 + 49 + 50 + 124 - 17496 - 17497 - 12 + 51 + 52 + 124 - 48324 - 48325 - 12 + 112 + 113 + 124 + + + 199 + 200 + 124 + + + 325 + 326 + 124 + + + 545 + 546 + 124 + + + 5462 + 5463 + 124 @@ -26959,15 +21687,15 @@ funspecifiers - 9688610 + 9723250 func_id - 3970813 + 4012490 spec_id - 2373 + 2372 @@ -26981,27 +21709,27 @@ 1 2 - 1484261 + 1528454 2 3 - 506954 + 506696 3 4 - 1037645 + 1037865 4 5 - 696219 + 693492 5 8 - 245731 + 245981 @@ -27035,8 +21763,8 @@ 124 - 206 - 207 + 216 + 217 124 @@ -27045,8 +21773,8 @@ 124 - 354 - 355 + 355 + 356 124 @@ -27055,8 +21783,8 @@ 124 - 766 - 767 + 767 + 768 124 @@ -27065,48 +21793,48 @@ 124 - 1075 - 1076 + 1095 + 1096 124 - 1258 - 1259 + 1261 + 1262 124 - 1662 - 1663 + 1663 + 1664 124 - 3340 - 3341 + 3301 + 3302 124 - 3351 - 3352 + 3355 + 3356 124 - 6166 - 6167 + 6170 + 6171 124 - 15136 - 15137 + 15121 + 15122 124 - 19863 - 19864 + 19840 + 19841 124 - 22427 - 22428 + 22777 + 22778 124 @@ -27117,15 +21845,15 @@ varspecifiers - 3073086 + 3078136 var_id - 2315027 + 2316968 spec_id - 1124 + 1123 @@ -27139,17 +21867,17 @@ 1 2 - 1659658 + 1659561 2 3 - 553177 + 554144 3 5 - 102190 + 103262 @@ -27178,33 +21906,33 @@ 124 - 1325 - 1326 + 1332 + 1333 124 - 2236 - 2237 + 2238 + 2239 124 - 2761 - 2762 + 2773 + 2774 124 - 3436 - 3437 + 3449 + 3450 124 - 4931 - 4932 + 4939 + 4940 124 - 8482 - 8483 + 8493 + 8494 124 @@ -27215,15 +21943,15 @@ explicit_specifier_exprs - 41350 + 41329 func_id - 41350 + 41329 constant - 41350 + 41329 @@ -27237,7 +21965,7 @@ 1 2 - 41350 + 41329 @@ -27253,7 +21981,7 @@ 1 2 - 41350 + 41329 @@ -27263,11 +21991,11 @@ attributes - 651120 + 654409 id - 651120 + 654409 kind @@ -27275,7 +22003,7 @@ name - 2123 + 2122 name_space @@ -27283,7 +22011,7 @@ location - 644999 + 648291 @@ -27297,7 +22025,7 @@ 1 2 - 651120 + 654409 @@ -27313,7 +22041,7 @@ 1 2 - 651120 + 654409 @@ -27329,7 +22057,7 @@ 1 2 - 651120 + 654409 @@ -27345,7 +22073,7 @@ 1 2 - 651120 + 654409 @@ -27364,13 +22092,13 @@ 124 - 2402 - 2403 + 2406 + 2407 124 - 2803 - 2804 + 2828 + 2829 124 @@ -27437,13 +22165,13 @@ 124 - 2356 - 2357 + 2360 + 2361 124 - 2803 - 2804 + 2828 + 2829 124 @@ -27475,12 +22203,7 @@ 7 8 - 124 - - - 8 - 9 - 124 + 249 10 @@ -27503,8 +22226,8 @@ 124 - 55 - 56 + 59 + 60 124 @@ -27518,8 +22241,8 @@ 124 - 340 - 341 + 341 + 342 124 @@ -27528,8 +22251,8 @@ 124 - 2604 - 2605 + 2629 + 2630 124 @@ -27546,7 +22269,7 @@ 1 2 - 1873 + 1872 2 @@ -27567,7 +22290,7 @@ 1 2 - 2123 + 2122 @@ -27601,8 +22324,8 @@ 124 - 8 - 9 + 7 + 8 124 @@ -27626,8 +22349,8 @@ 124 - 55 - 56 + 59 + 60 124 @@ -27641,8 +22364,8 @@ 124 - 335 - 336 + 336 + 337 124 @@ -27651,8 +22374,8 @@ 124 - 2604 - 2605 + 2629 + 2630 124 @@ -27672,8 +22395,8 @@ 124 - 5201 - 5202 + 5230 + 5231 124 @@ -27735,8 +22458,8 @@ 124 - 5152 - 5153 + 5181 + 5182 124 @@ -27753,12 +22476,12 @@ 1 2 - 639127 + 642423 2 5 - 5871 + 5868 @@ -27774,7 +22497,7 @@ 1 2 - 644999 + 648291 @@ -27790,12 +22513,12 @@ 1 2 - 639877 + 643172 2 3 - 5122 + 5119 @@ -27811,7 +22534,7 @@ 1 2 - 644999 + 648291 @@ -27821,27 +22544,27 @@ attribute_args - 90623 + 82562 id - 90623 + 82562 kind - 48 + 17 attribute - 78510 + 71259 index - 60 + 40 location - 84409 + 57184 @@ -27855,7 +22578,7 @@ 1 2 - 90623 + 82562 @@ -27871,7 +22594,7 @@ 1 2 - 90623 + 82562 @@ -27887,7 +22610,7 @@ 1 2 - 90623 + 82562 @@ -27903,7 +22626,7 @@ 1 2 - 90623 + 82562 @@ -27917,24 +22640,19 @@ 12 - 10 - 11 - 12 - - - 133 - 134 - 12 + 100 + 101 + 5 - 560 - 561 - 12 + 2252 + 2253 + 5 - 6793 - 6794 - 12 + 11914 + 11915 + 5 @@ -27948,24 +22666,19 @@ 12 - 10 - 11 - 12 - - - 133 - 134 - 12 + 100 + 101 + 5 - 156 - 157 - 12 + 1892 + 1893 + 5 - 6365 - 6366 - 12 + 10583 + 10584 + 5 @@ -27981,17 +22694,17 @@ 1 2 - 24 + 5 4 5 - 12 + 5 - 5 - 6 - 12 + 7 + 8 + 5 @@ -28005,24 +22718,19 @@ 12 - 8 - 9 - 12 - - - 18 - 19 - 12 + 15 + 16 + 5 - 535 - 536 - 12 + 2183 + 2184 + 5 - 6437 - 6438 - 12 + 9330 + 9331 + 5 @@ -28038,17 +22746,17 @@ 1 2 - 71425 + 65790 2 - 5 - 5899 + 7 + 5347 - 5 - 18 - 1184 + 7 + 25 + 121 @@ -28064,12 +22772,12 @@ 1 2 - 76454 + 69743 2 3 - 2055 + 1516 @@ -28085,12 +22793,12 @@ 1 2 - 72900 + 68215 2 - 6 - 5609 + 8 + 3044 @@ -28106,12 +22814,12 @@ 1 2 - 74339 + 68747 2 6 - 4170 + 2511 @@ -28125,29 +22833,39 @@ 12 - 94 - 95 - 12 + 2 + 3 + 5 - 96 - 97 - 12 + 9 + 10 + 5 - 166 - 167 - 12 + 82 + 83 + 5 - 464 - 465 - 12 + 83 + 84 + 5 - 6676 - 6677 - 12 + 271 + 272 + 5 + + + 526 + 527 + 5 + + + 13293 + 13294 + 5 @@ -28163,17 +22881,17 @@ 1 2 - 12 + 17 2 3 - 36 + 17 - 4 - 5 - 12 + 3 + 4 + 5 @@ -28187,29 +22905,39 @@ 12 - 94 - 95 - 12 + 2 + 3 + 5 - 96 - 97 - 12 + 9 + 10 + 5 - 166 - 167 - 12 + 82 + 83 + 5 - 464 - 465 - 12 + 83 + 84 + 5 - 6494 - 6495 - 12 + 271 + 272 + 5 + + + 526 + 527 + 5 + + + 12313 + 12314 + 5 @@ -28223,29 +22951,39 @@ 12 - 94 - 95 - 12 + 2 + 3 + 5 - 96 - 97 - 12 + 9 + 10 + 5 - 166 - 167 - 12 + 82 + 83 + 5 - 349 - 350 - 12 + 83 + 84 + 5 - 6318 - 6319 - 12 + 271 + 272 + 5 + + + 441 + 442 + 5 + + + 9074 + 9075 + 5 @@ -28261,12 +22999,17 @@ 1 2 - 82269 + 41506 2 - 23 - 2139 + 3 + 11858 + + + 3 + 25 + 3819 @@ -28282,12 +23025,12 @@ 1 2 - 84216 + 47653 2 3 - 193 + 9531 @@ -28303,12 +23046,17 @@ 1 2 - 84047 + 42861 2 - 18 - 362 + 3 + 12298 + + + 3 + 11 + 2025 @@ -28324,12 +23072,12 @@ 1 2 - 83914 + 56935 2 - 3 - 495 + 8 + 248 @@ -28339,11 +23087,11 @@ attribute_arg_value - 16696 + 16693 arg - 16696 + 16693 value @@ -28361,7 +23109,7 @@ 1 2 - 16696 + 16693 @@ -28495,15 +23243,15 @@ attribute_arg_constant - 82124 + 71875 arg - 82124 + 71875 constant - 82124 + 71875 @@ -28517,7 +23265,7 @@ 1 2 - 82124 + 71875 @@ -28533,7 +23281,7 @@ 1 2 - 82124 + 71875 @@ -28543,15 +23291,15 @@ attribute_arg_expr - 1607 + 1404 arg - 1607 + 1404 expr - 1607 + 1404 @@ -28565,7 +23313,7 @@ 1 2 - 1607 + 1404 @@ -28581,7 +23329,7 @@ 1 2 - 1607 + 1404 @@ -28644,15 +23392,15 @@ typeattributes - 92196 + 96394 type_id - 90572 + 94646 spec_id - 29232 + 32464 @@ -28666,12 +23414,12 @@ 1 2 - 88948 + 92898 2 3 - 1624 + 1748 @@ -28687,17 +23435,17 @@ 1 2 - 24735 + 27969 2 - 7 - 2248 + 9 + 2497 - 7 + 11 58 - 2248 + 1997 @@ -28707,15 +23455,15 @@ funcattributes - 844883 + 844327 func_id - 800034 + 799751 spec_id - 617140 + 617325 @@ -28729,12 +23477,12 @@ 1 2 - 759682 + 759669 2 7 - 40351 + 40081 @@ -28750,12 +23498,12 @@ 1 2 - 571417 + 572249 2 213 - 45723 + 45075 @@ -28828,7 +23576,7 @@ namespaceattributes - 5997 + 5996 namespace_id @@ -28836,7 +23584,7 @@ spec_id - 5997 + 5996 @@ -28876,7 +23624,7 @@ 1 2 - 5997 + 5996 @@ -28954,15 +23702,15 @@ unspecifiedtype - 7467739 + 7179404 type_id - 7467739 + 7179404 unspecified_type_id - 4300051 + 3965916 @@ -28976,7 +23724,7 @@ 1 2 - 7467739 + 7179404 @@ -28992,17 +23740,22 @@ 1 2 - 2870392 + 2482787 2 3 - 1169405 + 1117778 3 - 6277 - 260253 + 7 + 302918 + + + 7 + 537 + 62431 @@ -29012,19 +23765,19 @@ member - 4200804 + 4193417 parent - 544558 + 543780 index - 29732 + 29717 child - 4195557 + 4188797 @@ -29038,57 +23791,57 @@ 1 2 - 129174 + 129108 2 3 - 83451 + 83408 3 4 - 32606 + 32464 4 5 - 44848 + 44950 5 6 - 42475 + 42453 6 7 - 34979 + 33962 7 9 - 41725 + 42328 9 13 - 41600 + 41204 13 18 - 41101 + 41329 18 42 - 40851 + 40830 42 239 - 11743 + 11737 @@ -29104,57 +23857,57 @@ 1 2 - 128924 + 128859 2 3 - 83576 + 83533 3 4 - 32356 + 32214 4 5 - 44973 + 45075 5 6 - 42600 + 42578 6 7 - 33980 + 32839 7 9 - 42225 + 42703 9 13 - 41725 + 41579 13 18 - 41226 + 41454 18 42 - 40976 + 40955 42 265 - 11993 + 11986 @@ -29170,57 +23923,57 @@ 1 2 - 6496 + 6492 2 3 - 2623 + 2622 3 8 - 1873 + 1872 9 10 - 2873 + 2871 10 - 20 - 2373 + 19 + 2247 - 20 - 27 - 2248 + 19 + 26 + 2247 - 27 + 26 36 - 2373 + 2497 36 50 - 2248 + 2247 54 141 - 2248 + 2247 150 - 467 - 2248 + 468 + 2247 480 - 4314 - 2123 + 4310 + 2122 @@ -29236,57 +23989,57 @@ 1 2 - 5496 + 5493 2 3 - 3622 + 3621 3 9 - 1873 + 1872 9 10 - 2873 + 2871 10 20 - 2248 + 2372 20 28 - 2373 + 2372 28 37 - 2498 + 2372 37 56 - 2373 + 2372 58 156 - 2248 + 2247 163 - 528 - 2248 + 527 + 2247 547 - 4334 - 1873 + 4330 + 1872 @@ -29302,7 +24055,7 @@ 1 2 - 4195557 + 4188797 @@ -29318,12 +24071,12 @@ 1 2 - 4190310 + 4184177 2 3 - 5246 + 4619 @@ -29333,15 +24086,15 @@ enclosingfunction - 114833 + 114813 child - 114833 + 114813 parent - 71353 + 71340 @@ -29355,7 +24108,7 @@ 1 2 - 114833 + 114813 @@ -29371,17 +24124,17 @@ 1 2 - 49341 + 49332 2 3 - 4634 + 4633 3 4 - 15367 + 15365 4 @@ -29396,15 +24149,15 @@ derivations - 476986 + 476900 derivation - 476986 + 476900 sub - 455246 + 455164 index @@ -29412,11 +24165,11 @@ super - 235596 + 235554 location - 35404 + 35397 @@ -29430,7 +24183,7 @@ 1 2 - 476986 + 476900 @@ -29446,7 +24199,7 @@ 1 2 - 476986 + 476900 @@ -29462,7 +24215,7 @@ 1 2 - 476986 + 476900 @@ -29478,7 +24231,7 @@ 1 2 - 476986 + 476900 @@ -29494,12 +24247,12 @@ 1 2 - 438720 + 438640 2 9 - 16526 + 16523 @@ -29515,12 +24268,12 @@ 1 2 - 438720 + 438640 2 8 - 16526 + 16523 @@ -29536,12 +24289,12 @@ 1 2 - 438720 + 438640 2 9 - 16526 + 16523 @@ -29557,12 +24310,12 @@ 1 2 - 438720 + 438640 2 8 - 16526 + 16523 @@ -29717,12 +24470,12 @@ 1 2 - 225783 + 225742 2 1655 - 9813 + 9811 @@ -29738,12 +24491,12 @@ 1 2 - 225783 + 225742 2 1655 - 9813 + 9811 @@ -29759,7 +24512,7 @@ 1 2 - 235153 + 235111 2 @@ -29780,12 +24533,12 @@ 1 2 - 230247 + 230205 2 81 - 5349 + 5348 @@ -29801,7 +24554,7 @@ 1 2 - 26510 + 26505 2 @@ -29811,7 +24564,7 @@ 5 22 - 2760 + 2759 22 @@ -29837,7 +24590,7 @@ 1 2 - 26510 + 26505 2 @@ -29847,7 +24600,7 @@ 5 22 - 2760 + 2759 22 @@ -29873,7 +24626,7 @@ 1 2 - 35404 + 35397 @@ -29889,7 +24642,7 @@ 1 2 - 28725 + 28720 2 @@ -29899,7 +24652,7 @@ 4 26 - 2828 + 2827 26 @@ -29914,11 +24667,11 @@ derspecifiers - 478758 + 478671 der_id - 476543 + 476457 spec_id @@ -29936,7 +24689,7 @@ 1 2 - 474328 + 474242 2 @@ -29982,11 +24735,11 @@ direct_base_offsets - 450067 + 449985 der_id - 450067 + 449985 offset @@ -30004,7 +24757,7 @@ 1 2 - 450067 + 449985 @@ -30065,11 +24818,11 @@ virtual_base_offsets - 5826 + 5825 sub - 5826 + 5825 super @@ -30091,7 +24844,7 @@ 1 2 - 5826 + 5825 @@ -30107,7 +24860,7 @@ 1 2 - 5826 + 5825 @@ -30201,23 +24954,23 @@ frienddecls - 700589 + 700462 id - 700589 + 700462 type_id - 42423 + 42416 decl_id - 77759 + 77848 location - 6099 + 6098 @@ -30231,7 +24984,7 @@ 1 2 - 700589 + 700462 @@ -30247,7 +25000,7 @@ 1 2 - 700589 + 700462 @@ -30263,7 +25016,7 @@ 1 2 - 700589 + 700462 @@ -30279,12 +25032,12 @@ 1 2 - 6167 + 6166 2 3 - 13970 + 13968 3 @@ -30294,27 +25047,27 @@ 7 12 - 3441 + 3440 12 20 - 3646 + 3645 20 32 - 3305 + 3304 33 50 - 3782 + 3781 50 80 - 3782 + 3781 101 @@ -30335,12 +25088,12 @@ 1 2 - 6167 + 6166 2 3 - 13970 + 13968 3 @@ -30350,27 +25103,27 @@ 7 12 - 3441 + 3440 12 20 - 3646 + 3645 20 32 - 3305 + 3304 33 50 - 3782 + 3781 50 80 - 3782 + 3781 101 @@ -30391,12 +25144,12 @@ 1 2 - 41060 + 41053 2 13 - 1363 + 1362 @@ -30412,32 +25165,32 @@ 1 2 - 47875 + 48071 2 3 - 6065 + 5962 3 8 - 5997 + 5996 8 15 - 6065 + 6064 15 40 - 6065 + 6064 40 164 - 5690 + 5689 @@ -30453,32 +25206,32 @@ 1 2 - 47875 + 48071 2 3 - 6065 + 5962 3 8 - 5997 + 5996 8 15 - 6065 + 6064 15 40 - 6065 + 6064 40 164 - 5690 + 5689 @@ -30494,7 +25247,7 @@ 1 2 - 77078 + 77166 2 @@ -30515,7 +25268,7 @@ 1 2 - 5724 + 5723 2 @@ -30536,7 +25289,7 @@ 1 2 - 5963 + 5962 2 @@ -30557,11 +25310,11 @@ 1 2 - 5758 + 5757 2 - 2129 + 2132 340 @@ -30572,19 +25325,19 @@ comments - 11220843 + 11241965 id - 11220843 + 11241965 contents - 4291377 + 4306669 location - 11220843 + 11241965 @@ -30598,7 +25351,7 @@ 1 2 - 11220843 + 11241965 @@ -30614,7 +25367,7 @@ 1 2 - 11220843 + 11241965 @@ -30630,17 +25383,17 @@ 1 2 - 3917344 + 3932328 2 - 6 - 321937 + 7 + 330014 - 6 - 34359 - 52094 + 7 + 34447 + 44326 @@ -30656,17 +25409,17 @@ 1 2 - 3917344 + 3932328 2 - 6 - 321937 + 7 + 330014 - 6 - 34359 - 52094 + 7 + 34447 + 44326 @@ -30682,7 +25435,7 @@ 1 2 - 11220843 + 11241965 @@ -30698,7 +25451,7 @@ 1 2 - 11220843 + 11241965 @@ -30708,15 +25461,15 @@ commentbinding - 3838390 + 3916720 id - 3351549 + 3352211 element - 3672362 + 3751026 @@ -30730,12 +25483,12 @@ 1 2 - 3295331 + 3290529 2 1706 - 56217 + 61682 @@ -30751,12 +25504,12 @@ 1 2 - 3506333 + 3585332 2 3 - 166028 + 165693 @@ -30766,15 +25519,15 @@ exprconv - 9633089 + 9633088 converted - 9632983 + 9632982 conversion - 9633089 + 9633088 @@ -30788,7 +25541,7 @@ 1 2 - 9632878 + 9632877 2 @@ -30809,7 +25562,7 @@ 1 2 - 9633089 + 9633088 @@ -30819,22 +25572,22 @@ compgenerated - 9891516 + 9891529 id - 9891516 + 9891529 synthetic_destructor_call - 1671589 + 1671638 element - 1244881 + 1244918 i @@ -30842,7 +25595,7 @@ destructor_call - 1671589 + 1671638 @@ -30856,12 +25609,12 @@ 1 2 - 828630 + 828654 2 3 - 409452 + 409464 3 @@ -30882,12 +25635,12 @@ 1 2 - 828630 + 828654 2 3 - 409452 + 409464 3 @@ -31040,7 +25793,7 @@ 1 2 - 1671589 + 1671638 @@ -31056,7 +25809,7 @@ 1 2 - 1671589 + 1671638 @@ -31066,15 +25819,15 @@ namespaces - 9901 + 8650 id - 9901 + 8650 name - 5234 + 4573 @@ -31088,7 +25841,7 @@ 1 2 - 9901 + 8650 @@ -31104,17 +25857,17 @@ 1 2 - 4279 + 3739 2 3 - 604 + 528 3 149 - 350 + 306 @@ -31135,15 +25888,15 @@ namespacembrs - 2042061 + 2039521 parentid - 3997 + 3995 memberid - 2042061 + 2039521 @@ -31215,8 +25968,8 @@ 249 - 15618 - 15619 + 15606 + 15607 124 @@ -31233,7 +25986,7 @@ 1 2 - 2042061 + 2039521 @@ -31243,11 +25996,11 @@ exprparents - 19454216 + 19454218 expr_id - 19454216 + 19454218 child_index @@ -31255,7 +26008,7 @@ parent_id - 12939987 + 12939988 @@ -31269,7 +26022,7 @@ 1 2 - 19454216 + 19454218 @@ -31285,7 +26038,7 @@ 1 2 - 19454216 + 19454218 @@ -31449,22 +26202,22 @@ expr_isload - 6853135 + 6909475 expr_id - 6853135 + 6909475 conversionkinds - 6050434 + 6050433 expr_id - 6050434 + 6050433 kind @@ -31482,7 +26235,7 @@ 1 2 - 6050434 + 6050433 @@ -31526,8 +26279,8 @@ 1 - 5831535 - 5831536 + 5831534 + 5831535 1 @@ -31538,11 +26291,11 @@ iscall - 5802435 + 5802603 caller - 5802435 + 5802603 kind @@ -31560,7 +26313,7 @@ 1 2 - 5802435 + 5802603 @@ -31596,11 +26349,11 @@ numtemplatearguments - 625760 + 627938 expr_id - 625760 + 627938 num @@ -31618,7 +26371,7 @@ 1 2 - 625760 + 627938 @@ -31637,13 +26390,13 @@ 124 - 1264 - 1265 + 1263 + 1264 124 - 3738 - 3739 + 3759 + 3760 124 @@ -31702,23 +26455,23 @@ namequalifiers - 3041775 + 3041863 id - 3041775 + 3041863 qualifiableelement - 3041775 + 3041863 qualifyingelement - 47483 + 47485 location - 552420 + 552436 @@ -31732,7 +26485,7 @@ 1 2 - 3041775 + 3041863 @@ -31748,7 +26501,7 @@ 1 2 - 3041775 + 3041863 @@ -31764,7 +26517,7 @@ 1 2 - 3041775 + 3041863 @@ -31780,7 +26533,7 @@ 1 2 - 3041775 + 3041863 @@ -31796,7 +26549,7 @@ 1 2 - 3041775 + 3041863 @@ -31812,7 +26565,7 @@ 1 2 - 3041775 + 3041863 @@ -31900,7 +26653,7 @@ 1 2 - 34402 + 34403 2 @@ -31931,22 +26684,22 @@ 1 2 - 79132 + 79134 2 6 - 38103 + 38104 6 7 - 398974 + 398986 7 192 - 36209 + 36210 @@ -31962,22 +26715,22 @@ 1 2 - 79132 + 79134 2 6 - 38103 + 38104 6 7 - 398974 + 398986 7 192 - 36209 + 36210 @@ -31993,7 +26746,7 @@ 1 2 - 111533 + 111537 2 @@ -32003,7 +26756,7 @@ 4 5 - 415283 + 415295 5 @@ -32018,11 +26771,11 @@ varbind - 8254631 + 8254632 expr - 8254631 + 8254632 var @@ -32040,7 +26793,7 @@ 1 2 - 8254631 + 8254632 @@ -32111,15 +26864,15 @@ funbind - 5812138 + 5812199 expr - 5809664 + 5809833 fun - 275930 + 275916 @@ -32133,12 +26886,12 @@ 1 2 - 5807189 + 5807466 2 3 - 2474 + 2366 @@ -32154,22 +26907,22 @@ 1 2 - 181436 + 181420 2 3 - 38834 + 38835 3 4 - 17190 + 17212 4 8 - 22741 + 22720 8 @@ -32184,11 +26937,11 @@ expr_allocator - 45252 + 45243 expr - 45252 + 45243 func @@ -32210,7 +26963,7 @@ 1 2 - 45252 + 45243 @@ -32226,7 +26979,7 @@ 1 2 - 45252 + 45243 @@ -32310,11 +27063,11 @@ expr_deallocator - 53839 + 53829 expr - 53839 + 53829 func @@ -32336,7 +27089,7 @@ 1 2 - 53839 + 53829 @@ -32352,7 +27105,7 @@ 1 2 - 53839 + 53829 @@ -32601,11 +27354,11 @@ values - 13474605 + 13474606 id - 13474605 + 13474606 str @@ -32623,7 +27376,7 @@ 1 2 - 13474605 + 13474606 @@ -32669,11 +27422,11 @@ valuetext - 6647456 + 6647578 id - 6647456 + 6647578 text @@ -32691,7 +27444,7 @@ 1 2 - 6647456 + 6647578 @@ -32721,7 +27474,7 @@ 7 - 593555 + 593553 27950 @@ -32732,15 +27485,15 @@ valuebind - 13583188 + 13583189 val - 13474605 + 13474606 expr - 13583188 + 13583189 @@ -32754,7 +27507,7 @@ 1 2 - 13384050 + 13384052 2 @@ -32775,7 +27528,7 @@ 1 2 - 13583188 + 13583189 @@ -32785,15 +27538,15 @@ fieldoffsets - 1493401 + 1496815 id - 1493401 + 1496815 byteoffset - 31376 + 31370 bitoffset @@ -32811,7 +27564,7 @@ 1 2 - 1493401 + 1496815 @@ -32827,7 +27580,7 @@ 1 2 - 1493401 + 1496815 @@ -32843,17 +27596,17 @@ 1 2 - 17704 + 17700 2 3 - 2451 + 2450 3 5 - 2669 + 2668 5 @@ -32862,18 +27615,18 @@ 12 - 34 - 2396 + 35 + 2450 - 34 - 198 + 35 + 211 2396 - 209 - 5931 - 1143 + 250 + 5947 + 1089 @@ -32889,7 +27642,7 @@ 1 2 - 30396 + 30390 2 @@ -32918,8 +27671,8 @@ 54 - 43 - 44 + 44 + 45 54 @@ -32933,18 +27686,18 @@ 54 - 63 - 64 + 64 + 65 54 - 79 - 80 + 81 + 82 54 - 27063 - 27064 + 27127 + 27128 54 @@ -32986,19 +27739,19 @@ bitfield - 30357 + 30341 id - 30357 + 30341 bits - 3497 + 3496 declared_bits - 3497 + 3496 @@ -33012,7 +27765,7 @@ 1 2 - 30357 + 30341 @@ -33028,7 +27781,7 @@ 1 2 - 30357 + 30341 @@ -33044,7 +27797,7 @@ 1 2 - 999 + 998 2 @@ -33095,7 +27848,7 @@ 1 2 - 3497 + 3496 @@ -33111,7 +27864,7 @@ 1 2 - 999 + 998 2 @@ -33162,7 +27915,7 @@ 1 2 - 3497 + 3496 @@ -33172,23 +27925,23 @@ initialisers - 2340631 + 2251035 init - 2340631 + 2251035 var - 991152 + 980971 expr - 2340631 + 2251035 location - 539242 + 516371 @@ -33202,7 +27955,7 @@ 1 2 - 2340631 + 2251035 @@ -33218,7 +27971,7 @@ 1 2 - 2340631 + 2251035 @@ -33234,7 +27987,7 @@ 1 2 - 2340631 + 2251035 @@ -33250,17 +28003,17 @@ 1 2 - 874093 + 870556 2 15 - 39500 + 37441 16 25 - 77558 + 72973 @@ -33276,17 +28029,17 @@ 1 2 - 874093 + 870556 2 15 - 39500 + 37441 16 25 - 77558 + 72973 @@ -33302,7 +28055,7 @@ 1 2 - 991143 + 980963 2 @@ -33323,7 +28076,7 @@ 1 2 - 2340631 + 2251035 @@ -33339,7 +28092,7 @@ 1 2 - 2340631 + 2251035 @@ -33355,7 +28108,7 @@ 1 2 - 2340631 + 2251035 @@ -33371,22 +28124,22 @@ 1 2 - 439287 + 414356 2 3 - 33068 + 33606 3 - 15 - 42211 + 13 + 42250 - 15 - 111796 - 24675 + 13 + 111911 + 26157 @@ -33402,17 +28155,17 @@ 1 2 - 470421 + 443657 2 - 4 - 49610 + 3 + 34516 - 4 - 12163 - 19210 + 3 + 12237 + 38196 @@ -33428,22 +28181,22 @@ 1 2 - 439287 + 414356 2 3 - 33068 + 33606 3 - 15 - 42211 + 13 + 42250 - 15 - 111796 - 24675 + 13 + 111911 + 26157 @@ -33453,26 +28206,26 @@ braced_initialisers - 68469 + 68468 init - 68469 + 68468 expr_ancestor - 1677570 + 1677619 exp - 1677570 + 1677619 ancestor - 839603 + 839627 @@ -33486,7 +28239,7 @@ 1 2 - 1677570 + 1677619 @@ -33502,12 +28255,12 @@ 1 2 - 17082 + 17083 2 3 - 812451 + 812474 3 @@ -33522,11 +28275,11 @@ exprs - 25210575 + 25210577 id - 25210575 + 25210577 kind @@ -33534,7 +28287,7 @@ location - 10582670 + 10582671 @@ -33548,7 +28301,7 @@ 1 2 - 25210575 + 25210577 @@ -33564,7 +28317,7 @@ 1 2 - 25210575 + 25210577 @@ -33793,15 +28546,15 @@ expr_reuse - 846982 + 847007 reuse - 846982 + 847007 original - 846982 + 847007 value_category @@ -33819,7 +28572,7 @@ 1 2 - 846982 + 847007 @@ -33835,7 +28588,7 @@ 1 2 - 846982 + 847007 @@ -33851,7 +28604,7 @@ 1 2 - 846982 + 847007 @@ -33867,7 +28620,7 @@ 1 2 - 846982 + 847007 @@ -33919,11 +28672,11 @@ expr_types - 25210575 + 25210577 id - 25210575 + 25210577 typeid @@ -33945,7 +28698,7 @@ 1 2 - 25210575 + 25210577 @@ -33961,7 +28714,7 @@ 1 2 - 25210575 + 25210577 @@ -34106,15 +28859,15 @@ new_allocated_type - 46206 + 46197 expr - 46206 + 46197 type_id - 27396 + 27391 @@ -34128,7 +28881,7 @@ 1 2 - 46206 + 46197 @@ -34144,17 +28897,17 @@ 1 2 - 11517 + 11515 2 3 - 14482 + 14479 3 19 - 1397 + 1396 @@ -34164,15 +28917,15 @@ new_array_allocated_type - 6933 + 6653 expr - 6933 + 6653 type_id - 2978 + 2843 @@ -34186,7 +28939,7 @@ 1 2 - 6933 + 6653 @@ -34202,22 +28955,22 @@ 1 2 - 43 + 40 2 3 - 2633 + 2510 3 5 - 224 + 219 6 15 - 77 + 73 @@ -35563,15 +30316,15 @@ condition_decl_bind - 408893 + 408905 expr - 408893 + 408905 decl - 408893 + 408905 @@ -35585,7 +30338,7 @@ 1 2 - 408893 + 408905 @@ -35601,7 +30354,7 @@ 1 2 - 408893 + 408905 @@ -35611,15 +30364,15 @@ typeid_bind - 47909 + 47901 expr - 47909 + 47901 type_id - 15947 + 15944 @@ -35633,7 +30386,7 @@ 1 2 - 47909 + 47901 @@ -35654,7 +30407,7 @@ 2 3 - 12573 + 12571 3 @@ -35669,15 +30422,15 @@ uuidof_bind - 28060 + 26588 expr - 28060 + 26588 type_id - 27792 + 26336 @@ -35691,7 +30444,7 @@ 1 2 - 28060 + 26588 @@ -35707,12 +30460,12 @@ 1 2 - 27568 + 26125 2 4 - 224 + 211 @@ -35853,23 +30606,23 @@ lambdas - 16482 + 19057 expr - 16482 + 19057 default_capture - 25 + 24 has_explicit_return_type - 17 + 16 has_explicit_parameter_list - 17 + 16 @@ -35883,7 +30636,7 @@ 1 2 - 16482 + 19057 @@ -35899,7 +30652,7 @@ 1 2 - 16482 + 19057 @@ -35915,7 +30668,7 @@ 1 2 - 16482 + 19057 @@ -35929,18 +30682,18 @@ 12 - 276 - 277 + 306 + 307 8 - 697 - 698 + 719 + 720 8 - 936 - 937 + 1321 + 1322 8 @@ -35957,7 +30710,7 @@ 2 3 - 25 + 24 @@ -35973,7 +30726,7 @@ 2 3 - 25 + 24 @@ -35992,8 +30745,8 @@ 8 - 1096 - 1097 + 1533 + 1534 8 @@ -36010,7 +30763,7 @@ 3 4 - 17 + 16 @@ -36050,8 +30803,8 @@ 8 - 1875 - 1876 + 2312 + 2313 8 @@ -36068,7 +30821,7 @@ 3 4 - 17 + 16 @@ -36099,35 +30852,35 @@ lambda_capture - 28526 + 31966 id - 28526 + 31966 lambda - 13296 + 15491 index - 146 + 138 field - 28526 + 31966 captured_by_reference - 17 + 16 is_implicit - 17 + 16 location - 18398 + 17944 @@ -36141,7 +30894,7 @@ 1 2 - 28526 + 31966 @@ -36157,7 +30910,7 @@ 1 2 - 28526 + 31966 @@ -36173,7 +30926,7 @@ 1 2 - 28526 + 31966 @@ -36189,7 +30942,7 @@ 1 2 - 28526 + 31966 @@ -36205,7 +30958,7 @@ 1 2 - 28526 + 31966 @@ -36221,7 +30974,7 @@ 1 2 - 28526 + 31966 @@ -36237,27 +30990,27 @@ 1 2 - 6674 + 8212 2 3 - 3082 + 3541 3 4 - 1614 + 1657 4 6 - 1226 + 1259 6 18 - 699 + 820 @@ -36273,27 +31026,27 @@ 1 2 - 6674 + 8212 2 3 - 3082 + 3541 3 4 - 1614 + 1657 4 6 - 1226 + 1259 6 18 - 699 + 820 @@ -36309,27 +31062,27 @@ 1 2 - 6674 + 8212 2 3 - 3082 + 3541 3 4 - 1614 + 1657 4 6 - 1226 + 1259 6 18 - 699 + 820 @@ -36345,12 +31098,12 @@ 1 2 - 12726 + 14248 2 3 - 569 + 1242 @@ -36366,12 +31119,12 @@ 1 2 - 13270 + 15369 2 3 - 25 + 121 @@ -36387,27 +31140,27 @@ 1 2 - 7304 + 8805 2 3 - 3246 + 3696 3 4 - 1329 + 1389 4 7 - 1087 + 1291 7 18 - 328 + 308 @@ -36476,33 +31229,33 @@ 8 - 81 - 82 + 101 + 102 8 - 139 - 140 + 171 + 172 8 - 223 - 224 + 256 + 257 8 - 410 - 411 + 460 + 461 8 - 767 - 768 + 896 + 897 8 - 1540 - 1541 + 1907 + 1908 8 @@ -36572,33 +31325,33 @@ 8 - 81 - 82 + 101 + 102 8 - 139 - 140 + 171 + 172 8 - 223 - 224 + 256 + 257 8 - 410 - 411 + 460 + 461 8 - 767 - 768 + 896 + 897 8 - 1540 - 1541 + 1907 + 1908 8 @@ -36668,33 +31421,33 @@ 8 - 81 - 82 + 101 + 102 8 - 139 - 140 + 171 + 172 8 - 223 - 224 + 256 + 257 8 - 410 - 411 + 460 + 461 8 - 767 - 768 + 896 + 897 8 - 1540 - 1541 + 1907 + 1908 8 @@ -36711,12 +31464,12 @@ 1 2 - 34 + 32 2 3 - 112 + 105 @@ -36732,12 +31485,12 @@ 1 2 - 86 + 81 2 3 - 60 + 56 @@ -36806,33 +31559,33 @@ 8 - 65 - 66 + 66 + 67 8 - 98 - 99 + 100 + 101 8 - 179 - 180 + 182 + 183 8 - 347 - 348 + 354 + 355 8 - 585 - 586 + 604 + 605 8 - 933 - 934 + 979 + 980 8 @@ -36849,7 +31602,7 @@ 1 2 - 28526 + 31966 @@ -36865,7 +31618,7 @@ 1 2 - 28526 + 31966 @@ -36881,7 +31634,7 @@ 1 2 - 28526 + 31966 @@ -36897,7 +31650,7 @@ 1 2 - 28526 + 31966 @@ -36913,7 +31666,7 @@ 1 2 - 28526 + 31966 @@ -36929,7 +31682,7 @@ 1 2 - 28526 + 31966 @@ -36943,13 +31696,13 @@ 12 - 1180 - 1181 + 1457 + 1458 8 - 2124 - 2125 + 2478 + 2479 8 @@ -36964,13 +31717,13 @@ 12 - 590 - 591 + 819 + 820 8 - 1016 - 1017 + 1241 + 1242 8 @@ -37006,13 +31759,13 @@ 12 - 1180 - 1181 + 1457 + 1458 8 - 2124 - 2125 + 2478 + 2479 8 @@ -37029,7 +31782,7 @@ 2 3 - 17 + 16 @@ -37043,13 +31796,13 @@ 12 - 545 - 546 + 573 + 574 8 - 1589 - 1590 + 1639 + 1640 8 @@ -37064,13 +31817,13 @@ 12 - 827 - 828 + 1351 + 1352 8 - 2477 - 2478 + 2584 + 2585 8 @@ -37085,13 +31838,13 @@ 12 - 620 - 621 + 955 + 956 8 - 923 - 924 + 967 + 968 8 @@ -37127,13 +31880,13 @@ 12 - 827 - 828 + 1351 + 1352 8 - 2477 - 2478 + 2584 + 2585 8 @@ -37150,7 +31903,7 @@ 2 3 - 17 + 16 @@ -37164,13 +31917,13 @@ 12 - 328 - 329 + 377 + 378 8 - 1803 - 1804 + 1832 + 1833 8 @@ -37187,17 +31940,17 @@ 1 2 - 16568 + 15694 2 6 - 1398 + 1437 6 68 - 431 + 812 @@ -37213,12 +31966,17 @@ 1 2 - 17181 + 16271 2 + 13 + 1470 + + + 13 68 - 1217 + 203 @@ -37234,12 +31992,12 @@ 1 2 - 17665 + 17254 2 8 - 733 + 690 @@ -37255,17 +32013,17 @@ 1 2 - 16568 + 15694 2 6 - 1398 + 1437 6 68 - 431 + 812 @@ -37281,12 +32039,12 @@ 1 2 - 18373 + 17920 2 3 - 25 + 24 @@ -37302,7 +32060,7 @@ 1 2 - 18398 + 17944 @@ -37438,19 +32196,19 @@ stmts - 6259661 + 6368968 id - 6259661 + 6368968 kind - 172 + 162 location - 2755017 + 2684538 @@ -37464,7 +32222,7 @@ 1 2 - 6259661 + 6368968 @@ -37480,7 +32238,7 @@ 1 2 - 6259661 + 6368968 @@ -37504,93 +32262,93 @@ 8 - 418 - 419 + 430 + 431 8 - 546 - 547 + 595 + 596 8 - 827 - 828 + 1066 + 1067 8 - 1470 - 1471 + 1635 + 1636 8 - 1577 - 1578 + 1818 + 1819 8 - 1802 - 1803 + 2311 + 2312 8 - 2462 - 2463 + 2807 + 2808 8 - 3217 - 3218 + 3233 + 3234 8 - 3610 - 3611 + 3809 + 3810 8 - 4863 - 4864 + 5052 + 5053 8 - 16249 - 16250 + 16980 + 16981 8 - 16732 - 16733 + 18543 + 18544 8 - 21439 - 21440 + 22520 + 22521 8 - 68795 - 68796 + 74878 + 74879 8 - 89075 - 89076 + 95087 + 95088 8 - 112007 - 112008 + 119871 + 119872 8 - 185649 - 185650 + 200105 + 200106 8 - 194240 - 194241 + 213249 + 213250 8 @@ -37615,93 +32373,93 @@ 8 - 109 - 110 + 111 + 112 8 - 419 - 420 + 436 + 437 8 - 778 - 779 + 945 + 946 8 - 1079 - 1080 + 1155 + 1156 8 - 1311 - 1312 + 1353 + 1354 8 - 1347 - 1348 + 1388 + 1389 8 - 1388 - 1389 + 1394 + 1395 8 - 2061 - 2062 + 2197 + 2198 8 - 2309 - 2310 + 2362 + 2363 8 - 2476 - 2477 + 2509 + 2510 8 - 7043 - 7044 + 7327 + 7328 8 - 8622 - 8623 + 8943 + 8944 8 - 11206 - 11207 + 11676 + 11677 8 - 36340 - 36341 + 37583 + 37584 8 - 43405 - 43406 + 44536 + 44537 8 - 47752 - 47753 + 49039 + 49040 8 - 83834 - 83835 + 86405 + 86406 8 - 97372 - 97373 + 101101 + 101102 8 @@ -37718,17 +32476,22 @@ 1 2 - 2353184 + 2225039 2 - 4 - 239108 + 3 + 182234 - 4 - 1581 - 162724 + 3 + 10 + 202178 + + + 10 + 1789 + 75085 @@ -37744,12 +32507,12 @@ 1 2 - 2668298 + 2601581 2 10 - 86719 + 82957 @@ -37962,15 +32725,15 @@ if_else - 437078 + 437090 if_stmt - 437078 + 437090 else_id - 437078 + 437090 @@ -37984,7 +32747,7 @@ 1 2 - 437078 + 437090 @@ -38000,7 +32763,7 @@ 1 2 - 437078 + 437090 @@ -38058,15 +32821,15 @@ constexpr_if_then - 103814 + 106134 constexpr_if_stmt - 103814 + 106134 then_id - 103814 + 106134 @@ -38080,7 +32843,7 @@ 1 2 - 103814 + 106134 @@ -38096,7 +32859,7 @@ 1 2 - 103814 + 106134 @@ -38106,15 +32869,15 @@ constexpr_if_else - 73956 + 76166 constexpr_if_stmt - 73956 + 76166 else_id - 73956 + 76166 @@ -38128,7 +32891,7 @@ 1 2 - 73956 + 76166 @@ -38144,7 +32907,7 @@ 1 2 - 73956 + 76166 @@ -38394,11 +33157,11 @@ switch_case - 836096 + 836120 switch_stmt - 411840 + 411852 index @@ -38406,7 +33169,7 @@ case_id - 836096 + 836120 @@ -38425,7 +33188,7 @@ 2 3 - 408957 + 408969 3 @@ -38451,7 +33214,7 @@ 2 3 - 408957 + 408969 3 @@ -38614,7 +33377,7 @@ 1 2 - 836096 + 836120 @@ -38630,7 +33393,7 @@ 1 2 - 836096 + 836120 @@ -38640,15 +33403,15 @@ switch_body - 411840 + 411852 switch_stmt - 411840 + 411852 body_id - 411840 + 411852 @@ -38662,7 +33425,7 @@ 1 2 - 411840 + 411852 @@ -38678,7 +33441,7 @@ 1 2 - 411840 + 411852 @@ -38880,19 +33643,19 @@ stmtparents - 5524463 + 5628380 id - 5524463 + 5628380 index - 16767 + 15775 parent - 2342634 + 2381490 @@ -38906,7 +33669,7 @@ 1 2 - 5524463 + 5628380 @@ -38922,7 +33685,7 @@ 1 2 - 5524463 + 5628380 @@ -38938,52 +33701,52 @@ 1 2 - 5508 + 5182 2 3 - 1372 + 1291 3 4 - 302 + 284 4 5 - 2132 + 2006 7 8 - 1398 + 1316 8 12 - 1087 + 1023 12 29 - 1476 + 1389 29 - 38 - 1260 + 39 + 1186 - 41 - 77 - 1269 + 42 + 78 + 1194 - 77 - 195079 - 958 + 78 + 209668 + 901 @@ -38999,52 +33762,52 @@ 1 2 - 5508 + 5182 2 3 - 1372 + 1291 3 4 - 302 + 284 4 5 - 2132 + 2006 7 8 - 1398 + 1316 8 12 - 1087 + 1023 12 29 - 1476 + 1389 29 - 38 - 1260 + 39 + 1186 - 41 - 77 - 1269 + 42 + 78 + 1194 - 77 - 195079 - 958 + 78 + 209668 + 901 @@ -39060,32 +33823,32 @@ 1 2 - 1344600 + 1359015 2 3 - 507832 + 517378 3 4 - 144135 + 151519 4 6 - 151439 + 155727 6 16 - 175795 + 178871 16 1943 - 18830 + 18976 @@ -39101,32 +33864,32 @@ 1 2 - 1344600 + 1359015 2 3 - 507832 + 517378 3 4 - 144135 + 151519 4 6 - 151439 + 155727 6 16 - 175795 + 178871 16 1943 - 18830 + 18976 @@ -39136,30 +33899,30 @@ ishandler - 43747 + 43746 block - 43747 + 43746 stmt_decl_bind - 721594 + 725885 stmt - 681632 + 715316 num - 124 + 73 decl - 721526 + 725885 @@ -39173,12 +33936,12 @@ 1 2 - 659683 + 707850 2 - 32 - 21949 + 10 + 7465 @@ -39194,12 +33957,12 @@ 1 2 - 659683 + 707850 2 - 32 - 21949 + 10 + 7465 @@ -39213,53 +33976,48 @@ 12 - 1 - 2 - 52 - - - 2 - 3 + 14 + 15 8 - 3 - 5 + 15 + 16 8 - 7 - 11 + 18 + 19 8 - 11 - 15 + 21 + 22 8 - 21 - 45 + 25 + 26 8 - 86 - 121 + 60 + 61 8 - 204 - 356 + 229 + 230 8 - 1063 - 2539 + 919 + 920 8 - 5480 - 170179 + 88055 + 88056 8 @@ -39274,53 +34032,48 @@ 12 - 1 - 2 - 52 - - - 2 - 3 + 14 + 15 8 - 3 - 5 + 15 + 16 8 - 7 - 11 + 18 + 19 8 - 11 - 15 + 21 + 22 8 - 21 - 45 + 25 + 26 8 - 86 - 121 + 60 + 61 8 - 204 - 356 + 229 + 230 8 - 1063 - 2539 + 919 + 920 8 - 5480 - 170162 + 88055 + 88056 8 @@ -39337,12 +34090,7 @@ 1 2 - 721502 - - - 2 - 8 - 24 + 725885 @@ -39358,7 +34106,7 @@ 1 2 - 721526 + 725885 @@ -39368,19 +34116,19 @@ stmt_decl_entry_bind - 721594 + 725885 stmt - 681632 + 715316 num - 124 + 73 decl_entry - 721594 + 725885 @@ -39394,12 +34142,12 @@ 1 2 - 659683 + 707850 2 - 32 - 21949 + 10 + 7465 @@ -39415,12 +34163,12 @@ 1 2 - 659683 + 707850 2 - 32 - 21949 + 10 + 7465 @@ -39434,53 +34182,48 @@ 12 - 1 - 2 - 52 - - - 2 - 3 + 14 + 15 8 - 3 - 5 + 15 + 16 8 - 7 - 11 + 18 + 19 8 - 11 - 15 + 21 + 22 8 - 21 - 45 + 25 + 26 8 - 86 - 121 + 60 + 61 8 - 204 - 356 + 229 + 230 8 - 1063 - 2539 + 919 + 920 8 - 5480 - 170179 + 88055 + 88056 8 @@ -39495,53 +34238,48 @@ 12 - 1 - 2 - 52 - - - 2 - 3 + 14 + 15 8 - 3 - 5 + 15 + 16 8 - 7 - 11 + 18 + 19 8 - 11 - 15 + 21 + 22 8 - 21 - 45 + 25 + 26 8 - 86 - 121 + 60 + 61 8 - 204 - 356 + 229 + 230 8 - 1063 - 2539 + 919 + 920 8 - 5480 - 170179 + 88055 + 88056 8 @@ -39558,7 +34296,7 @@ 1 2 - 721594 + 725885 @@ -39574,7 +34312,7 @@ 1 2 - 721594 + 725885 @@ -39584,15 +34322,15 @@ blockscope - 1762474 + 1644952 block - 1762474 + 1644952 enclosing - 1507372 + 1428064 @@ -39606,7 +34344,7 @@ 1 2 - 1762474 + 1644952 @@ -39622,17 +34360,17 @@ 1 2 - 1336222 + 1295584 2 - 3 - 128550 + 4 + 117122 - 3 + 4 28 - 42600 + 15358 @@ -39823,19 +34561,19 @@ preprocdirects - 5401355 + 5413334 id - 5401355 + 5413334 kind - 1374 + 1373 location - 5398107 + 5410088 @@ -39849,7 +34587,7 @@ 1 2 - 5401355 + 5413334 @@ -39865,7 +34603,7 @@ 1 2 - 5401355 + 5413334 @@ -39884,18 +34622,18 @@ 124 - 145 - 146 + 139 + 140 124 - 808 - 809 + 805 + 806 124 - 866 - 867 + 880 + 881 124 @@ -39909,8 +34647,8 @@ 124 - 1891 - 1892 + 1883 + 1884 124 @@ -39919,18 +34657,18 @@ 124 - 4714 - 4715 + 4737 + 4738 124 - 7089 - 7090 + 7126 + 7127 124 - 21984 - 21985 + 22045 + 22046 124 @@ -39950,18 +34688,18 @@ 124 - 145 - 146 + 139 + 140 124 - 808 - 809 + 805 + 806 124 - 866 - 867 + 880 + 881 124 @@ -39975,8 +34713,8 @@ 124 - 1891 - 1892 + 1883 + 1884 124 @@ -39985,18 +34723,18 @@ 124 - 4714 - 4715 + 4737 + 4738 124 - 7089 - 7090 + 7126 + 7127 124 - 21958 - 21959 + 22019 + 22020 124 @@ -40013,7 +34751,7 @@ 1 2 - 5397982 + 5409963 27 @@ -40034,7 +34772,7 @@ 1 2 - 5398107 + 5410088 @@ -40044,15 +34782,15 @@ preprocpair - 1139961 + 1142251 begin - 885609 + 889777 elseelifend - 1139961 + 1142251 @@ -40066,17 +34804,17 @@ 1 2 - 644874 + 650164 2 3 - 231115 + 230622 3 9 - 9619 + 8990 @@ -40092,7 +34830,7 @@ 1 2 - 1139961 + 1142251 @@ -40102,41 +34840,41 @@ preproctrue - 437245 + 439769 branch - 437245 + 439769 preprocfalse - 284334 + 285562 branch - 284334 + 285562 preproctext - 4347469 + 4356364 id - 4347469 + 4356364 head - 2951406 + 2957767 body - 1679397 + 1684908 @@ -40150,7 +34888,7 @@ 1 2 - 4347469 + 4356364 @@ -40166,7 +34904,7 @@ 1 2 - 4347469 + 4356364 @@ -40182,12 +34920,12 @@ 1 2 - 2754896 + 2758985 2 798 - 196510 + 198782 @@ -40203,12 +34941,12 @@ 1 2 - 2871828 + 2876481 2 5 - 79578 + 81286 @@ -40224,17 +34962,17 @@ 1 2 - 1530983 + 1536570 2 10 - 127550 + 127360 10 - 13579 - 20862 + 13606 + 20977 @@ -40250,17 +34988,17 @@ 1 2 - 1535231 + 1540816 2 12 - 127175 + 126986 12 - 3231 - 16990 + 3246 + 17106 @@ -40270,15 +35008,15 @@ includes - 364707 + 318629 id - 364707 + 318629 included - 67182 + 58694 @@ -40292,7 +35030,7 @@ 1 2 - 364707 + 318629 @@ -40308,37 +35046,37 @@ 1 2 - 33246 + 29046 2 3 - 10808 + 9442 3 4 - 5670 + 4953 4 6 - 6129 + 5355 6 11 - 5174 + 4520 11 47 - 5041 + 4404 47 793 - 1112 + 971 @@ -40348,15 +35086,15 @@ link_targets - 846 + 816 id - 846 + 816 binary - 846 + 816 @@ -40370,7 +35108,7 @@ 1 2 - 846 + 816 @@ -40386,7 +35124,7 @@ 1 2 - 846 + 816 @@ -40396,11 +35134,11 @@ link_parent - 30397762 + 30398086 element - 3866154 + 3866101 link_target @@ -40418,17 +35156,17 @@ 1 2 - 530553 + 530457 2 9 - 26953 + 26948 9 10 - 3308647 + 3308696 @@ -40447,48 +35185,48 @@ 34 - 97356 - 97357 + 97375 + 97376 34 - 97475 - 97476 + 97494 + 97495 34 - 97528 - 97529 + 97547 + 97548 34 - 97555 - 97556 + 97574 + 97575 34 - 97577 - 97578 + 97596 + 97597 34 - 97609 - 97610 + 97628 + 97629 34 - 99616 - 99617 + 99635 + 99636 34 - 102996 - 102997 + 103015 + 103016 34 - 104360 - 104361 + 104379 + 104380 34 diff --git a/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/builtin_functions.ql b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/builtin_functions.ql new file mode 100644 index 000000000000..7ab87b9bc3a3 --- /dev/null +++ b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/builtin_functions.ql @@ -0,0 +1,7 @@ +class Function extends @function { + string toString() { none() } +} + +from Function f +where functions(f, _, 6) +select f diff --git a/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/functions.ql b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/functions.ql new file mode 100644 index 000000000000..76657ad2eded --- /dev/null +++ b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/functions.ql @@ -0,0 +1,9 @@ +class Function extends @function { + string toString() { none() } +} + +from Function f, string n, int k, int new_k +where + functions(f, n, k) and + if k = 6 then new_k = 1 else new_k = k +select f, n, new_k diff --git a/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/old.dbscheme b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/old.dbscheme new file mode 100644 index 000000000000..5491582ac851 --- /dev/null +++ b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/old.dbscheme @@ -0,0 +1,2428 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..801b2f03360d --- /dev/null +++ b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/semmlecode.cpp.dbscheme @@ -0,0 +1,2433 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/upgrade.properties b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/upgrade.properties new file mode 100644 index 000000000000..361c66366a44 --- /dev/null +++ b/cpp/ql/lib/upgrades/5491582ac8511726e12fae3e2399000f9201cd9a/upgrade.properties @@ -0,0 +1,4 @@ +description: Move builtin function identification to its own table +compatibility: full +functions.rel: run functions.qlo +builtin_functions.rel: run builtin_functions.qlo diff --git a/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/locations_default.ql b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/locations_default.ql new file mode 100644 index 000000000000..7e17030fb6f3 --- /dev/null +++ b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/locations_default.ql @@ -0,0 +1,18 @@ +class LocationBase = @location_default or @location_stmt or @location_expr; + +class Location extends LocationBase { + string toString() { none() } +} + +class Container extends @container { + string toString() { none() } +} + +from Location l, Container c, int startLine, int startColumn, int endLine, int endColumn +where + locations_default(l, c, startLine, startColumn, endLine, endColumn) + or + locations_stmt(l, c, startLine, startColumn, endLine, endColumn) + or + locations_expr(l, c, startLine, startColumn, endLine, endColumn) +select l, c, startLine, startColumn, endLine, endColumn diff --git a/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme new file mode 100644 index 000000000000..7bc12b02a436 --- /dev/null +++ b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme @@ -0,0 +1,2509 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..e70d0b653187 --- /dev/null +++ b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme @@ -0,0 +1,2475 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_default ; + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location ref, + int bodylocation: @location ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties new file mode 100644 index 000000000000..347caa4decdf --- /dev/null +++ b/cpp/ql/lib/upgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties @@ -0,0 +1,5 @@ +description: Merge location tables +compatibility: full +locations_default.rel: run locations_default.qlo +locations_expr.rel: delete +locations_stmt.rel: delete diff --git a/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/old.dbscheme b/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/old.dbscheme new file mode 100644 index 000000000000..801b2f03360d --- /dev/null +++ b/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/old.dbscheme @@ -0,0 +1,2433 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..5340d6d5f428 --- /dev/null +++ b/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/semmlecode.cpp.dbscheme @@ -0,0 +1,2423 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/upgrade.properties b/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/upgrade.properties new file mode 100644 index 000000000000..a469b3025bfb --- /dev/null +++ b/cpp/ql/lib/upgrades/801b2f03360d78c85f51fbad9b75956fa8d58b00/upgrade.properties @@ -0,0 +1,2 @@ +description: Uncomment cases in dbscheme +compatibility: full diff --git a/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/old.dbscheme b/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/old.dbscheme new file mode 100644 index 000000000000..827dbc206ea5 --- /dev/null +++ b/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/old.dbscheme @@ -0,0 +1,2451 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..5491582ac851 --- /dev/null +++ b/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/semmlecode.cpp.dbscheme @@ -0,0 +1,2428 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/upgrade.properties b/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/upgrade.properties new file mode 100644 index 000000000000..495e77045ea0 --- /dev/null +++ b/cpp/ql/lib/upgrades/827dbc206ea55377e032a8a934c8903fedc50fa0/upgrade.properties @@ -0,0 +1,4 @@ +description: Remove unused external_package tables from the dbscheme +compatibility: full +external_packages.rel: delete +header_to_external_package.rel: delete diff --git a/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme new file mode 100644 index 000000000000..e38346051783 --- /dev/null +++ b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme @@ -0,0 +1,2506 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..7bc12b02a436 --- /dev/null +++ b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme @@ -0,0 +1,2509 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_expr ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_expr ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_stmt ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties new file mode 100644 index 000000000000..03985f017e32 --- /dev/null +++ b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties @@ -0,0 +1,2 @@ +description: Support more complex 16-bit floating-point types +compatibility: full diff --git a/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/old.dbscheme b/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/old.dbscheme new file mode 100644 index 000000000000..e70d0b653187 --- /dev/null +++ b/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/old.dbscheme @@ -0,0 +1,2475 @@ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_default ; + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location ref, + int bodylocation: @location ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/* XML Files */ + +xmlEncoding(unique int id: @file ref, string encoding: string ref); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters + | @xmlelement + | @xmlcomment + | @xmlattribute + | @xmldtd + | @file + | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..827dbc206ea5 --- /dev/null +++ b/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/semmlecode.cpp.dbscheme @@ -0,0 +1,2451 @@ +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +/* +case @function.kind of + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; +*/ + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @type_operator.kind of +| 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; +*/ + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +/* +case @usertype.kind of +| 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; +*/ + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/upgrade.properties b/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/upgrade.properties new file mode 100644 index 000000000000..6d50eaf29c76 --- /dev/null +++ b/cpp/ql/lib/upgrades/e70d0b653187b93d9688f21c9db46bb1cd46ab78/upgrade.properties @@ -0,0 +1,6 @@ +description: sync dbscheme and delete svn tables +compatibility: full +svnentries.rel: delete +svnaffectedfiles.rel: delete +svnentrymsg.rel: delete +svnchurn.rel: delete diff --git a/cpp/ql/lib/utils/test/PrettyPrintModels.ql b/cpp/ql/lib/utils/test/PrettyPrintModels.ql new file mode 100644 index 000000000000..8cc172cfbf12 --- /dev/null +++ b/cpp/ql/lib/utils/test/PrettyPrintModels.ql @@ -0,0 +1,6 @@ +/** + * @kind test-postprocess + */ + +import semmle.code.cpp.dataflow.ExternalFlow +import codeql.dataflow.test.ProvenancePathGraph::TestPostProcessing::TranslateProvenanceResults diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 7fc5b0d92bd9..589dfb68e1ef 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,8 +1,27 @@ +## 1.4.5 + +### Minor Analysis Improvements + +* The "Initialization code not run" query (`cpp/initialization-not-run`) no longer reports an alert on static global variables that have no dereference. + +## 1.4.4 + +### Minor Analysis Improvements + +* Due to changes in the `FunctionWithWrappers` library (`semmle.code.cpp.security.FunctionWithWrappers`) the primary alert location generated by the queries `cpp/path-injection`, `cpp/sql-injection`, `cpp/tainted-format-string`, and `cpp/command-line-injection` may have changed. +* Added flow models for the Win32 API functions `CreateThread`, `CreateRemoteThread`, and `CreateRemoteThreadEx`. +* Improved support for dataflow through function objects and lambda expressions. +* Added flow models for `pthread_create` and `std::thread`. +* The `cpp/incorrect-string-type-conversion` query no longer alerts on incorrect type conversions that occur in unreachable code. +* Added flow models for the GNU C Library. +* Fixed a number of false positives and false negatives in `cpp/global-use-before-init`. Note that this query is not part of any of the default query suites. +* The query `cpp/sql-injection` now can be extended using the `sql-injection` Models as Data (MaD) sink kind. + ## 1.4.3 ### Minor Analysis Improvements -* Added flow model for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2/`, `nghttp2/nghttp2`, `libuv/libuv/`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. +* Added flow models for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2`, `nghttp2/nghttp2`, `libuv/libuv`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. ## 1.4.2 @@ -12,7 +31,7 @@ No user-facing changes. ### Minor Analysis Improvements -* Added flow model for the `SQLite` and `OpenSSL` libraries. This may result in more alerts when running queries on codebases that use these libraries. +* Added flow models for the `SQLite` and `OpenSSL` libraries. This may result in more alerts when running queries on codebases that use these libraries. ## 1.4.0 diff --git a/cpp/ql/src/Critical/GlobalUseBeforeInit.ql b/cpp/ql/src/Critical/GlobalUseBeforeInit.ql index e9a637bd7d73..946fc755a9fe 100644 --- a/cpp/ql/src/Critical/GlobalUseBeforeInit.ql +++ b/cpp/ql/src/Critical/GlobalUseBeforeInit.ql @@ -21,13 +21,29 @@ predicate initFunc(GlobalVariable v, Function f) { ) } +/** Holds if `v` has an initializer in function `f` that dominates `node`. */ +predicate dominatingInitInFunc(GlobalVariable v, Function f, ControlFlowNode node) { + exists(VariableAccess initAccess | + v.getAnAccess() = initAccess and + initAccess.isUsedAsLValue() and + initAccess.getEnclosingFunction() = f and + dominates(initAccess, node) + ) +} + +predicate safeAccess(VariableAccess access) { + // it is safe if the variable access is part of a `sizeof` expression + exists(SizeofExprOperator e | e.getAChild*() = access) +} + predicate useFunc(GlobalVariable v, Function f) { exists(VariableAccess access | v.getAnAccess() = access and access.isRValue() and - access.getEnclosingFunction() = f - ) and - not initFunc(v, f) + access.getEnclosingFunction() = f and + not safeAccess(access) and + not dominatingInitInFunc(v, f, access) + ) } predicate uninitialisedBefore(GlobalVariable v, Function f) { @@ -38,12 +54,14 @@ predicate uninitialisedBefore(GlobalVariable v, Function f) { exists(Call call, Function g | uninitialisedBefore(v, g) and call.getEnclosingFunction() = g and - (not functionInitialises(f, v) or locallyUninitialisedAt(v, call)) and + (not functionInitialises(g, v) or locallyUninitialisedAt(v, call)) and resolvedCall(call, f) ) } predicate functionInitialises(Function f, GlobalVariable v) { + initFunc(v, f) + or exists(Call call | call.getEnclosingFunction() = f and initialisedBy(v, call) @@ -60,7 +78,8 @@ predicate locallyUninitialisedAt(GlobalVariable v, Call call) { exists(Call mid | locallyUninitialisedAt(v, mid) and not initialisedBy(v, mid) and callPair(mid, call) ) - ) + ) and + not dominatingInitInFunc(v, call.getEnclosingFunction(), call) } predicate initialisedBy(GlobalVariable v, Call call) { diff --git a/cpp/ql/src/Critical/InitialisationNotRun.ql b/cpp/ql/src/Critical/InitialisationNotRun.ql index ba575c55921b..0b97b30fbd69 100644 --- a/cpp/ql/src/Critical/InitialisationNotRun.ql +++ b/cpp/ql/src/Critical/InitialisationNotRun.ql @@ -32,9 +32,18 @@ predicate called(Function f) { exists(FunctionAccess fa | fa.getTarget() = f) } +predicate staticWithoutDereference(GlobalVariable v) { + v.isStatic() and + not exists(VariableAccess va | + va = v.getAnAccess() and + dereferenced(va) + ) +} + from GlobalVariable v where global(v) and + not staticWithoutDereference(v) and not exists(VariableAccess lval | v.getAnAccess() = lval and lval.isUsedAsLValue() and diff --git a/cpp/ql/src/Likely Bugs/Leap Year/Adding365DaysPerYear.qhelp b/cpp/ql/src/Likely Bugs/Leap Year/Adding365DaysPerYear.qhelp index f0d303a05787..186ec8079944 100644 --- a/cpp/ql/src/Likely Bugs/Leap Year/Adding365DaysPerYear.qhelp +++ b/cpp/ql/src/Likely Bugs/Leap Year/Adding365DaysPerYear.qhelp @@ -11,7 +11,7 @@ It is not safe to assume that a year is 365 days long.

Determine whether the time span in question contains a leap day, then perform the calculation using the correct number -of days. Alternatively, use an established library routine that already contains correct leap year logic.

+of days. Alternatively, use an established library routine that already contains correct leap year logic.

diff --git a/cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModificationBad.c b/cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModificationBad.c new file mode 100644 index 000000000000..ca61d9e3c75e --- /dev/null +++ b/cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModificationBad.c @@ -0,0 +1,9 @@ +SYSTEMTIME st; +FILETIME ft; +GetSystemTime(&st); + +// Flawed logic may result in invalid date +st.wYear++; + +// The following code may fail +SystemTimeToFileTime(&st, &ft); \ No newline at end of file diff --git a/cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModificationGood.c b/cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModificationGood.c new file mode 100644 index 000000000000..e78ecab11124 --- /dev/null +++ b/cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearModificationGood.c @@ -0,0 +1,15 @@ +SYSTEMTIME st; +FILETIME ft; +GetSystemTime(&st); + +// Flawed logic may result in invalid date +st.wYear++; + +// Check for leap year, and adjust the date accordingly +bool isLeapYear = st.wYear % 4 == 0 && (st.wYear % 100 != 0 || st.wYear % 400 == 0); +st.wDay = st.wMonth == 2 && st.wDay == 29 && !isLeapYear ? 28 : st.wDay; + +if (!SystemTimeToFileTime(&st, &ft)) +{ + // handle error +} diff --git a/cpp/ql/src/Likely Bugs/Leap Year/UnsafeArrayForDaysOfYearBad.c b/cpp/ql/src/Likely Bugs/Leap Year/UnsafeArrayForDaysOfYearBad.c new file mode 100644 index 000000000000..3fe42e3cd60a --- /dev/null +++ b/cpp/ql/src/Likely Bugs/Leap Year/UnsafeArrayForDaysOfYearBad.c @@ -0,0 +1,2 @@ +int items[365]; +items[dayOfYear - 1] = x; // buffer overflow on December 31st of any leap year \ No newline at end of file diff --git a/cpp/ql/src/Likely Bugs/Leap Year/UnsafeArrayForDaysOfYearGood.c b/cpp/ql/src/Likely Bugs/Leap Year/UnsafeArrayForDaysOfYearGood.c new file mode 100644 index 000000000000..f9c5cde7339c --- /dev/null +++ b/cpp/ql/src/Likely Bugs/Leap Year/UnsafeArrayForDaysOfYearGood.c @@ -0,0 +1,4 @@ +bool isLeapYear = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); +int *items = new int[isLeapYear ? 366 : 365]; +// ... +delete[] items; \ No newline at end of file diff --git a/cpp/ql/src/Metrics/Dependencies/ExternalDependencies.qll b/cpp/ql/src/Metrics/Dependencies/ExternalDependencies.qll index fed054262e69..16a8b22d168a 100644 --- a/cpp/ql/src/Metrics/Dependencies/ExternalDependencies.qll +++ b/cpp/ql/src/Metrics/Dependencies/ExternalDependencies.qll @@ -26,12 +26,6 @@ private newtype LibraryT = LibraryTElement(LibraryElement lib, string name, string version) { lib.getName() = name and lib.getVersion() = version - } or - LibraryTExternalPackage(@external_package ep, string name, string version) { - exists(string package_name | - external_packages(ep, _, package_name, version) and - name = package_name - ) } /** @@ -41,10 +35,7 @@ class Library extends LibraryT { string name; string version; - Library() { - this = LibraryTElement(_, name, version) or - this = LibraryTExternalPackage(_, name, version) - } + Library() { this = LibraryTElement(_, name, version) } string getName() { result = name } @@ -63,11 +54,6 @@ class Library extends LibraryT { this = LibraryTElement(lib, _, _) and result = lib.getAFile() ) - or - exists(@external_package ep | - this = LibraryTExternalPackage(ep, _, _) and - header_to_external_package(unresolveElement(result), ep) - ) } } diff --git a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql index 2ea1cb024658..0ea4ce2e95f4 100644 --- a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql +++ b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql @@ -38,6 +38,9 @@ module SqlTaintedConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node node) { exists(SqlLikeFunction runSql | runSql.outermostWrapperFunctionCall(asSinkExpr(node), _)) + or + // sink defined using models-as-data + sinkNode(node, "sql-injection") } predicate isBarrier(DataFlow::Node node) { @@ -56,13 +59,21 @@ module SqlTaintedConfig implements DataFlow::ConfigSig { module SqlTainted = TaintTracking::Global; from - SqlLikeFunction runSql, Expr taintedArg, FlowSource taintSource, SqlTainted::PathNode sourceNode, - SqlTainted::PathNode sinkNode, string callChain + Expr taintedArg, FlowSource taintSource, SqlTainted::PathNode sourceNode, + SqlTainted::PathNode sinkNode, string extraText where - runSql.outermostWrapperFunctionCall(taintedArg, callChain) and + ( + exists(SqlLikeFunction runSql, string callChain | + runSql.outermostWrapperFunctionCall(taintedArg, callChain) and + extraText = " and then passed to " + callChain + ) + or + sinkNode(sinkNode.getNode(), "sql-injection") and + extraText = "" + ) and SqlTainted::flowPath(sourceNode, sinkNode) and taintedArg = asSinkExpr(sinkNode.getNode()) and taintSource = sourceNode.getNode() select taintedArg, sourceNode, sinkNode, - "This argument to a SQL query function is derived from $@ and then passed to " + callChain + ".", - taintSource, "user input (" + taintSource.getSourceType() + ")" + "This argument to a SQL query function is derived from $@" + extraText + ".", taintSource, + "user input (" + taintSource.getSourceType() + ")" diff --git a/cpp/ql/src/Security/CWE/CWE-114/UncontrolledProcessOperation.ql b/cpp/ql/src/Security/CWE/CWE-114/UncontrolledProcessOperation.ql index aedb21da5167..7d2513d25e33 100644 --- a/cpp/ql/src/Security/CWE/CWE-114/UncontrolledProcessOperation.ql +++ b/cpp/ql/src/Security/CWE/CWE-114/UncontrolledProcessOperation.ql @@ -23,7 +23,7 @@ predicate isProcessOperationExplanation(DataFlow::Node arg, string processOperat exists(int processOperationArg, FunctionCall call | isProcessOperationArgument(processOperation, processOperationArg) and call.getTarget().getName() = processOperation and - call.getArgument(processOperationArg) = [arg.asExpr(), arg.asIndirectExpr()] + call.getArgument(processOperationArg) = arg.asIndirectExpr() ) } diff --git a/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql b/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql index b193b846b5a8..c2ebb4879a99 100644 --- a/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql +++ b/cpp/ql/src/Security/CWE/CWE-119/OverrunWriteProductFlow.ql @@ -20,6 +20,7 @@ import semmle.code.cpp.models.interfaces.Allocation import semmle.code.cpp.models.interfaces.ArrayFunction import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.RangeAnalysis import semmle.code.cpp.rangeanalysis.new.internal.semantic.SemanticExprSpecific +import semmle.code.cpp.security.ProductFlowUtils.ProductFlowUtils import semmle.code.cpp.rangeanalysis.new.RangeAnalysisUtil import StringSizeFlow::PathGraph1 import codeql.util.Unit @@ -43,20 +44,28 @@ predicate hasSize(HeuristicAllocationExpr alloc, DataFlow::Node n, int state) { ) } -predicate isSinkPairImpl( - CallInstruction c, DataFlow::Node bufSink, DataFlow::Node sizeSink, int delta, Expr eBuf +/** + * Holds if `c` a call to an `ArrayFunction` with buffer argument `bufSink`, + * and a size argument `sizeInstr` which satisfies `sizeInstr <= sizeBound + delta`. + * + * Furthermore, the `sizeSink` node is the dataflow node corresponding to + * `sizeBound`, and the expression `eBuf` is the expression corresponding + * to `bufInstr`. + */ +predicate isSinkPairImpl0( + CallInstruction c, DataFlow::Node bufSink, DataFlow::Node sizeSink, int delta, Expr eBuf, + Instruction sizeBound, Instruction sizeInstr ) { - exists( - int bufIndex, int sizeIndex, Instruction sizeInstr, Instruction bufInstr, ArrayFunction func - | + exists(int bufIndex, int sizeIndex, Instruction bufInstr, ArrayFunction func | bufInstr = bufSink.asInstruction() and c.getArgument(bufIndex) = bufInstr and - sizeInstr = sizeSink.asInstruction() and + sizeBound = sizeSink.asInstruction() and + c.getArgument(sizeIndex) = sizeInstr and c.getStaticCallTarget() = func and pragma[only_bind_into](func) .hasArrayWithVariableSize(pragma[only_bind_into](bufIndex), pragma[only_bind_into](sizeIndex)) and - bounded(c.getArgument(sizeIndex), sizeInstr, delta) and + bounded(sizeInstr, sizeBound, delta) and eBuf = bufInstr.getUnconvertedResultExpression() ) } @@ -86,99 +95,39 @@ module ValidState { private module ValidStateConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { hasSize(_, source, _) } - predicate isSink(DataFlow::Node sink) { isSinkPairImpl(_, _, sink, _, _) } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - isAdditionalFlowStep2(node1, node2, _) - } + predicate isSink(DataFlow::Node sink) { isSinkPairImpl0(_, _, sink, _, _, _, _) } - predicate includeHiddenNodes() { any() } + predicate isBarrierOut(DataFlow::Node node) { DataFlow::flowsToBackEdge(node) } } private import DataFlow::Global - private predicate inLoop(PathNode n) { n.getASuccessor+() = n } - - /** - * Holds if `value` is a possible offset for `n`. - * - * To ensure termination, we limit `value` to be in the - * range `[-2, 2]` if the node is part of a loop. Without - * this restriction we wouldn't terminate on an example like: - * ```cpp - * while(unknown()) { size++; } - * ``` - */ - private predicate validStateImpl(PathNode n, int value) { - // If the dataflow node depends recursively on itself we restrict the range. - (inLoop(n) implies value = [-2 .. 2]) and - ( - // For the dataflow source we have an allocation such as `malloc(size + k)`, - // and the value of the flow-state is then `k`. - hasSize(_, n.getNode(), value) - or - // For a dataflow sink any `value` that is strictly smaller than the delta - // needs to be a valid flow-state. That is, for a snippet like: - // ``` - // p = b ? new char[size] : new char[size + 1]; - // memset(p, 0, size + 2); - // ``` - // the valid flow-states at the `memset` must include the set `{0, 1}` since the - // flow-state at `new char[size]` is `0`, and the flow-state at `new char[size + 1]` - // is `1`. - // - // So we find a valid flow-state at the sink's predecessor, and use the definition - // of our sink predicate to compute the valid flow-states at the sink. - exists(int delta, PathNode n0 | - n0.getASuccessor() = n and - validStateImpl(n0, value) and - isSinkPairImpl(_, _, n.getNode(), delta, _) and - delta > value - ) - or - // For a non-source and non-sink node there is two cases to consider. - // 1. A node where we have to update the flow-state, or - // 2. A node that doesn't update the flow-state. - // - // For case 1, we compute the new flow-state by adding the constant operand of the - // `AddInstruction` to the flow-state of any predecessor node. - // For case 2 we simply propagate the valid flow-states from the predecessor node to - // the next one. - exists(PathNode n0, DataFlow::Node node0, DataFlow::Node node, int value0 | - n0.getASuccessor() = n and - validStateImpl(n0, value0) and - node = n.getNode() and - node0 = n0.getNode() - | - exists(int delta | - isAdditionalFlowStep2(node0, node, delta) and - value0 = value + delta - ) - or - not isAdditionalFlowStep2(node0, node, _) and - value = value0 - ) - ) - } - - predicate validState(DataFlow::Node n, int value) { - validStateImpl(any(PathNode pn | pn.getNode() = n), value) + predicate validState(DataFlow::Node source, DataFlow::Node sink, int value) { + hasSize(_, source, value) and + flow(source, sink) } } import ValidState -/** - * Holds if `node2` is a dataflow node that represents an addition of two operands `op1` - * and `op2` such that: - * 1. `node1` is the dataflow node that represents `op1`, and - * 2. the value of `op2` can be upper bounded by `delta.` - */ -predicate isAdditionalFlowStep2(DataFlow::Node node1, DataFlow::Node node2, int delta) { - exists(AddInstruction add, Operand op | - add.hasOperands(node1.asOperand(), op) and - semBounded(getSemanticExpr(op.getDef()), any(SemZeroBound zero), delta, true, _) and - node2.asInstruction() = add +module SizeBarrierInput implements SizeBarrierInputSig { + int fieldFlowBranchLimit() { result = 2 } + + predicate isSource(DataFlow::Node source) { + exists(int state | + hasSize(_, source, state) and + validState(source, _, state) + ) + } +} + +predicate isSinkPairImpl( + CallInstruction c, DataFlow::Node bufSink, DataFlow::Node sizeSink, int delta, Expr eBuf +) { + exists(Instruction sizeBound, Instruction sizeInstr | + isSinkPairImpl0(c, bufSink, sizeSink, delta, eBuf, sizeBound, sizeInstr) and + not sizeBound = SizeBarrier::getABarrierInstruction(delta) and + not sizeInstr = SizeBarrier::getABarrierInstruction(delta) ) } @@ -198,14 +147,14 @@ module StringSizeConfig implements ProductFlow::StateConfigSig { // to the size of the allocation. This state is then checked in `isSinkPair`. exists(state1) and hasSize(bufSource.asExpr(), sizeSource, state2) and - validState(sizeSource, state2) + validState(sizeSource, _, state2) } predicate isSinkPair( DataFlow::Node bufSink, FlowState1 state1, DataFlow::Node sizeSink, FlowState2 state2 ) { exists(state1) and - validState(sizeSink, state2) and + validState(_, sizeSink, state2) and exists(int delta | isSinkPairImpl(_, bufSink, sizeSink, delta, _) and delta > state2 @@ -214,14 +163,8 @@ module StringSizeConfig implements ProductFlow::StateConfigSig { predicate isBarrierOut2(DataFlow::Node node) { DataFlow::flowsToBackEdge(node) } - predicate isAdditionalFlowStep2( - DataFlow::Node node1, FlowState2 state1, DataFlow::Node node2, FlowState2 state2 - ) { - validState(node2, state2) and - exists(int delta | - isAdditionalFlowStep2(node1, node2, delta) and - state1 = state2 + delta - ) + predicate isBarrier2(DataFlow::Node node, FlowState2 state) { + node = SizeBarrier::getABarrierNode(state) } } diff --git a/cpp/ql/src/Security/CWE/CWE-129/ImproperArrayIndexValidation.ql b/cpp/ql/src/Security/CWE/CWE-129/ImproperArrayIndexValidation.ql index 463d6e583bd3..17c1b09c3e68 100644 --- a/cpp/ql/src/Security/CWE/CWE-129/ImproperArrayIndexValidation.ql +++ b/cpp/ql/src/Security/CWE/CWE-129/ImproperArrayIndexValidation.ql @@ -51,10 +51,7 @@ predicate offsetIsAlwaysInBounds(ArrayExpr arrayExpr, VariableAccess offsetExpr) } module ImproperArrayIndexValidationConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - isFlowSource(source, _) and - not source.getLocation().getFile().getRelativePath().regexpMatch("(.*/)?tests?/.*") - } + predicate isSource(DataFlow::Node source) { isFlowSource(source, _) } predicate isBarrier(DataFlow::Node node) { node = DataFlow::BarrierGuard::getABarrierNode() @@ -76,8 +73,7 @@ module ImproperArrayIndexValidationConfig implements DataFlow::ConfigSig { module ImproperArrayIndexValidation = TaintTracking::Global; from - ImproperArrayIndexValidation::PathNode source, - ImproperArrayIndexValidation::PathNode sink, + ImproperArrayIndexValidation::PathNode source, ImproperArrayIndexValidation::PathNode sink, string sourceType where ImproperArrayIndexValidation::flowPath(source, sink) and diff --git a/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql b/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql index e3f15bd12b5d..6fc91c1d6699 100644 --- a/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql +++ b/cpp/ql/src/Security/CWE/CWE-704/WcharCharConversion.ql @@ -14,6 +14,7 @@ import cpp import semmle.code.cpp.controlflow.Guards +import semmle.code.cpp.ir.IR class WideCharPointerType extends PointerType { WideCharPointerType() { this.getBaseType() instanceof WideCharType } @@ -108,7 +109,9 @@ where // Avoid cases where the cast is guarded by a check to determine if // unicode encoding is enabled in such a way to disallow the dangerous cast // at runtime. - not isLikelyDynamicallyChecked(e1) + not isLikelyDynamicallyChecked(e1) and + // Avoid cases in unreachable blocks. + any(EnterFunctionInstruction e).getASuccessor+().getAst() = e1 select e1, "Conversion from " + e1.getType().toString() + " to " + e2.getType().toString() + ". Use of invalid string can lead to undefined behavior." diff --git a/cpp/ql/src/change-notes/released/1.4.1.md b/cpp/ql/src/change-notes/released/1.4.1.md index 7d1ba66b92ed..d055555fba05 100644 --- a/cpp/ql/src/change-notes/released/1.4.1.md +++ b/cpp/ql/src/change-notes/released/1.4.1.md @@ -2,4 +2,4 @@ ### Minor Analysis Improvements -* Added flow model for the `SQLite` and `OpenSSL` libraries. This may result in more alerts when running queries on codebases that use these libraries. +* Added flow models for the `SQLite` and `OpenSSL` libraries. This may result in more alerts when running queries on codebases that use these libraries. diff --git a/cpp/ql/src/change-notes/released/1.4.3.md b/cpp/ql/src/change-notes/released/1.4.3.md index 2280196429bd..46933b3c4e8b 100644 --- a/cpp/ql/src/change-notes/released/1.4.3.md +++ b/cpp/ql/src/change-notes/released/1.4.3.md @@ -2,4 +2,4 @@ ### Minor Analysis Improvements -* Added flow model for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2/`, `nghttp2/nghttp2`, `libuv/libuv/`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. +* Added flow models for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2`, `nghttp2/nghttp2`, `libuv/libuv`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. diff --git a/cpp/ql/src/change-notes/released/1.4.4.md b/cpp/ql/src/change-notes/released/1.4.4.md new file mode 100644 index 000000000000..87e1b909fbb9 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.4.4.md @@ -0,0 +1,12 @@ +## 1.4.4 + +### Minor Analysis Improvements + +* Due to changes in the `FunctionWithWrappers` library (`semmle.code.cpp.security.FunctionWithWrappers`) the primary alert location generated by the queries `cpp/path-injection`, `cpp/sql-injection`, `cpp/tainted-format-string`, and `cpp/command-line-injection` may have changed. +* Added flow models for the Win32 API functions `CreateThread`, `CreateRemoteThread`, and `CreateRemoteThreadEx`. +* Improved support for dataflow through function objects and lambda expressions. +* Added flow models for `pthread_create` and `std::thread`. +* The `cpp/incorrect-string-type-conversion` query no longer alerts on incorrect type conversions that occur in unreachable code. +* Added flow models for the GNU C Library. +* Fixed a number of false positives and false negatives in `cpp/global-use-before-init`. Note that this query is not part of any of the default query suites. +* The query `cpp/sql-injection` now can be extended using the `sql-injection` Models as Data (MaD) sink kind. diff --git a/cpp/ql/src/change-notes/released/1.4.5.md b/cpp/ql/src/change-notes/released/1.4.5.md new file mode 100644 index 000000000000..2b606677eba6 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.4.5.md @@ -0,0 +1,5 @@ +## 1.4.5 + +### Minor Analysis Improvements + +* The "Initialization code not run" query (`cpp/initialization-not-run`) no longer reports an alert on static global variables that have no dereference. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 08f88b689fb6..a74b6b08d860 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.3 +lastReleaseVersion: 1.4.5 diff --git a/cpp/ql/src/jsf/4.07 Header Files/AV Rule 35.ql b/cpp/ql/src/jsf/4.07 Header Files/AV Rule 35.ql index 704c5baa0672..59a6838c23e3 100644 --- a/cpp/ql/src/jsf/4.07 Header Files/AV Rule 35.ql +++ b/cpp/ql/src/jsf/4.07 Header Files/AV Rule 35.ql @@ -37,7 +37,7 @@ abstract class MaybePreprocessorDirective extends TMaybePreprocessorDirective { class NoPreprocessorDirective extends TNoPreprocessorDirective, MaybePreprocessorDirective { override string toString() { result = "" } - override Location getLocation() { result instanceof UnknownDefaultLocation } + override Location getLocation() { result instanceof UnknownLocation } } class SomePreprocessorDirective extends TSomePreprocessorDirective, MaybePreprocessorDirective { diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 1ea432be220c..541377a41df1 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.4.3 +version: 1.4.5 groups: - cpp - queries diff --git a/cpp/ql/test/experimental/library-tests/quantum/node_edges.expected b/cpp/ql/test/experimental/library-tests/quantum/node_edges.expected index e9e3bf868ae0..27be8e5cfba5 100644 --- a/cpp/ql/test/experimental/library-tests/quantum/node_edges.expected +++ b/cpp/ql/test/experimental/library-tests/quantum/node_edges.expected @@ -30,9 +30,12 @@ | openssl_basic.c:144:13:144:22 | HashOperation | Message | openssl_basic.c:144:24:144:30 | Message | | openssl_basic.c:144:24:144:30 | Message | Source | openssl_basic.c:181:49:181:87 | Constant | | openssl_basic.c:144:46:144:51 | Digest | Source | openssl_basic.c:144:46:144:51 | Digest | +| openssl_basic.c:155:22:155:41 | Key | Algorithm | openssl_basic.c:155:22:155:41 | Key | | openssl_basic.c:155:22:155:41 | KeyGeneration | Algorithm | openssl_basic.c:155:22:155:41 | KeyGeneration | +| openssl_basic.c:155:22:155:41 | KeyGeneration | KeyInput | openssl_basic.c:155:64:155:66 | Key | | openssl_basic.c:155:22:155:41 | KeyGeneration | Output | openssl_basic.c:155:22:155:41 | Key | | openssl_basic.c:155:43:155:55 | MACAlgorithm | H | openssl_basic.c:160:39:160:48 | HashAlgorithm | +| openssl_basic.c:155:64:155:66 | Key | Source | openssl_basic.c:179:43:179:76 | Constant | | openssl_basic.c:160:59:160:62 | Key | Source | openssl_basic.c:155:22:155:41 | Key | | openssl_basic.c:163:35:163:41 | Message | Source | openssl_basic.c:181:49:181:87 | Constant | | openssl_basic.c:167:9:167:27 | SignOperation | Algorithm | openssl_basic.c:167:9:167:27 | SignOperation | @@ -40,8 +43,11 @@ | openssl_basic.c:167:9:167:27 | SignOperation | Input | openssl_basic.c:163:35:163:41 | Message | | openssl_basic.c:167:9:167:27 | SignOperation | Key | openssl_basic.c:160:59:160:62 | Key | | openssl_basic.c:167:9:167:27 | SignOperation | Output | openssl_basic.c:167:34:167:36 | SignatureOutput | +| openssl_pkey.c:21:10:21:28 | KeyGeneration | Algorithm | openssl_pkey.c:21:10:21:28 | KeyGeneration | +| openssl_pkey.c:21:10:21:28 | KeyGeneration | Output | openssl_pkey.c:21:30:21:32 | Key | | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | Mode | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | Padding | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | +| openssl_pkey.c:21:30:21:32 | Key | Algorithm | openssl_pkey.c:21:30:21:32 | Key | | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | Mode | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | Padding | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | | openssl_pkey.c:55:9:55:23 | KeyGeneration | Algorithm | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | @@ -77,6 +83,13 @@ | openssl_signature.c:133:52:133:55 | Key | Source | openssl_signature.c:548:34:548:37 | Key | | openssl_signature.c:133:52:133:55 | Key | Source | openssl_signature.c:578:34:578:37 | Key | | openssl_signature.c:134:38:134:44 | Message | Source | openssl_signature.c:602:37:602:77 | Constant | +| openssl_signature.c:135:9:135:27 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | +| openssl_signature.c:135:9:135:27 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | +| openssl_signature.c:135:9:135:27 | SignOperation | HashAlgorithm | openssl_signature.c:684:24:684:33 | HashAlgorithm | +| openssl_signature.c:135:9:135:27 | SignOperation | HashAlgorithm | openssl_signature.c:740:24:740:33 | HashAlgorithm | +| openssl_signature.c:135:9:135:27 | SignOperation | Input | openssl_signature.c:134:38:134:44 | Message | +| openssl_signature.c:135:9:135:27 | SignOperation | Key | openssl_signature.c:133:52:133:55 | Key | +| openssl_signature.c:135:9:135:27 | SignOperation | Output | openssl_signature.c:135:37:135:40 | SignatureOutput | | openssl_signature.c:142:9:142:27 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | | openssl_signature.c:142:9:142:27 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | | openssl_signature.c:142:9:142:27 | SignOperation | HashAlgorithm | openssl_signature.c:684:24:684:33 | HashAlgorithm | @@ -87,6 +100,13 @@ | openssl_signature.c:190:57:190:60 | Key | Source | openssl_signature.c:548:34:548:37 | Key | | openssl_signature.c:190:57:190:60 | Key | Source | openssl_signature.c:578:34:578:37 | Key | | openssl_signature.c:196:38:196:44 | Message | Source | openssl_signature.c:602:37:602:77 | Constant | +| openssl_signature.c:197:9:197:27 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | +| openssl_signature.c:197:9:197:27 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | +| openssl_signature.c:197:9:197:27 | SignOperation | HashAlgorithm | openssl_signature.c:684:24:684:33 | HashAlgorithm | +| openssl_signature.c:197:9:197:27 | SignOperation | HashAlgorithm | openssl_signature.c:740:24:740:33 | HashAlgorithm | +| openssl_signature.c:197:9:197:27 | SignOperation | Input | openssl_signature.c:196:38:196:44 | Message | +| openssl_signature.c:197:9:197:27 | SignOperation | Key | openssl_signature.c:190:57:190:60 | Key | +| openssl_signature.c:197:9:197:27 | SignOperation | Output | openssl_signature.c:197:37:197:40 | SignatureOutput | | openssl_signature.c:204:9:204:27 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | | openssl_signature.c:204:9:204:27 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | | openssl_signature.c:204:9:204:27 | SignOperation | HashAlgorithm | openssl_signature.c:684:24:684:33 | HashAlgorithm | @@ -96,6 +116,14 @@ | openssl_signature.c:204:9:204:27 | SignOperation | Output | openssl_signature.c:204:37:204:46 | SignatureOutput | | openssl_signature.c:260:39:260:42 | Key | Source | openssl_signature.c:548:34:548:37 | Key | | openssl_signature.c:260:39:260:42 | Key | Source | openssl_signature.c:578:34:578:37 | Key | +| openssl_signature.c:263:9:263:21 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | +| openssl_signature.c:263:9:263:21 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | +| openssl_signature.c:263:9:263:21 | SignOperation | HashAlgorithm | openssl_signature.c:684:24:684:33 | HashAlgorithm | +| openssl_signature.c:263:9:263:21 | SignOperation | HashAlgorithm | openssl_signature.c:740:24:740:33 | HashAlgorithm | +| openssl_signature.c:263:9:263:21 | SignOperation | Input | openssl_signature.c:263:54:263:59 | Message | +| openssl_signature.c:263:9:263:21 | SignOperation | Key | openssl_signature.c:260:39:260:42 | Key | +| openssl_signature.c:263:9:263:21 | SignOperation | Output | openssl_signature.c:263:33:263:36 | SignatureOutput | +| openssl_signature.c:263:54:263:59 | Message | Source | openssl_signature.c:263:54:263:59 | Message | | openssl_signature.c:270:9:270:21 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | | openssl_signature.c:270:9:270:21 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | | openssl_signature.c:270:9:270:21 | SignOperation | HashAlgorithm | openssl_signature.c:684:24:684:33 | HashAlgorithm | @@ -107,6 +135,14 @@ | openssl_signature.c:321:39:321:42 | Key | Source | openssl_signature.c:548:34:548:37 | Key | | openssl_signature.c:321:39:321:42 | Key | Source | openssl_signature.c:578:34:578:37 | Key | | openssl_signature.c:326:48:326:54 | Message | Source | openssl_signature.c:602:37:602:77 | Constant | +| openssl_signature.c:327:9:327:35 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | +| openssl_signature.c:327:9:327:35 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | +| openssl_signature.c:327:9:327:35 | SignOperation | Algorithm | openssl_signature.c:702:60:702:71 | KeyOperationAlgorithm | +| openssl_signature.c:327:9:327:35 | SignOperation | Algorithm | openssl_signature.c:758:60:758:64 | KeyOperationAlgorithm | +| openssl_signature.c:327:9:327:35 | SignOperation | HashAlgorithm | openssl_signature.c:327:9:327:35 | SignOperation | +| openssl_signature.c:327:9:327:35 | SignOperation | Input | openssl_signature.c:326:48:326:54 | Message | +| openssl_signature.c:327:9:327:35 | SignOperation | Key | openssl_signature.c:321:39:321:42 | Key | +| openssl_signature.c:327:9:327:35 | SignOperation | Output | openssl_signature.c:327:47:327:50 | SignatureOutput | | openssl_signature.c:334:9:334:35 | SignOperation | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | | openssl_signature.c:334:9:334:35 | SignOperation | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | | openssl_signature.c:334:9:334:35 | SignOperation | Algorithm | openssl_signature.c:702:60:702:71 | KeyOperationAlgorithm | @@ -120,7 +156,9 @@ | openssl_signature.c:548:9:548:23 | KeyGeneration | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | | openssl_signature.c:548:9:548:23 | KeyGeneration | Output | openssl_signature.c:548:34:548:37 | Key | | openssl_signature.c:548:34:548:37 | Key | Algorithm | openssl_signature.c:543:35:543:46 | KeyOperationAlgorithm | +| openssl_signature.c:575:32:575:37 | Key | Source | openssl_signature.c:575:32:575:37 | Key | | openssl_signature.c:578:9:578:23 | KeyGeneration | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | +| openssl_signature.c:578:9:578:23 | KeyGeneration | KeyInput | openssl_signature.c:575:32:575:37 | Key | | openssl_signature.c:578:9:578:23 | KeyGeneration | Output | openssl_signature.c:578:34:578:37 | Key | | openssl_signature.c:578:34:578:37 | Key | Algorithm | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | | openssl_signature.c:702:60:702:71 | KeyOperationAlgorithm | Padding | openssl_signature.c:702:60:702:71 | KeyOperationAlgorithm | diff --git a/cpp/ql/test/experimental/library-tests/quantum/node_properties.expected b/cpp/ql/test/experimental/library-tests/quantum/node_properties.expected index 1ac047ad334e..52a7c61502bd 100644 --- a/cpp/ql/test/experimental/library-tests/quantum/node_properties.expected +++ b/cpp/ql/test/experimental/library-tests/quantum/node_properties.expected @@ -20,9 +20,10 @@ | openssl_basic.c:144:67:144:73 | HashAlgorithm | DigestSize | 128 | openssl_basic.c:144:67:144:73 | openssl_basic.c:144:67:144:73 | | openssl_basic.c:144:67:144:73 | HashAlgorithm | Name | MD5 | openssl_basic.c:144:67:144:73 | openssl_basic.c:144:67:144:73 | | openssl_basic.c:144:67:144:73 | HashAlgorithm | RawName | EVP_md5 | openssl_basic.c:144:67:144:73 | openssl_basic.c:144:67:144:73 | -| openssl_basic.c:155:22:155:41 | Key | KeyType | Symmetric | openssl_basic.c:155:22:155:41 | openssl_basic.c:155:22:155:41 | +| openssl_basic.c:155:22:155:41 | Key | KeyType | Asymmetric | openssl_basic.c:155:22:155:41 | openssl_basic.c:155:22:155:41 | | openssl_basic.c:155:43:155:55 | MACAlgorithm | Name | HMAC | openssl_basic.c:155:43:155:55 | openssl_basic.c:155:43:155:55 | | openssl_basic.c:155:43:155:55 | MACAlgorithm | RawName | 855 | openssl_basic.c:155:43:155:55 | openssl_basic.c:155:43:155:55 | +| openssl_basic.c:155:64:155:66 | Key | KeyType | Unknown | openssl_basic.c:155:64:155:66 | openssl_basic.c:155:64:155:66 | | openssl_basic.c:160:39:160:48 | HashAlgorithm | DigestSize | 256 | openssl_basic.c:160:39:160:48 | openssl_basic.c:160:39:160:48 | | openssl_basic.c:160:39:160:48 | HashAlgorithm | Name | SHA2 | openssl_basic.c:160:39:160:48 | openssl_basic.c:160:39:160:48 | | openssl_basic.c:160:39:160:48 | HashAlgorithm | RawName | EVP_sha256 | openssl_basic.c:160:39:160:48 | openssl_basic.c:160:39:160:48 | @@ -34,6 +35,7 @@ | openssl_basic.c:218:32:218:33 | Constant | Description | 32 | openssl_basic.c:218:32:218:33 | openssl_basic.c:218:32:218:33 | | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | Name | RSA | openssl_pkey.c:21:10:21:28 | openssl_pkey.c:21:10:21:28 | | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | RawName | RSA_generate_key_ex | openssl_pkey.c:21:10:21:28 | openssl_pkey.c:21:10:21:28 | +| openssl_pkey.c:21:30:21:32 | Key | KeyType | Asymmetric | openssl_pkey.c:21:30:21:32 | openssl_pkey.c:21:30:21:32 | | openssl_pkey.c:45:49:45:65 | Constant | Description | Hello, OpenSSL! | openssl_pkey.c:45:49:45:65 | openssl_pkey.c:45:49:45:65 | | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | Name | RSA | openssl_pkey.c:50:31:50:42 | openssl_pkey.c:50:31:50:42 | | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | RawName | 6 | openssl_pkey.c:50:31:50:42 | openssl_pkey.c:50:31:50:42 | @@ -44,12 +46,16 @@ | openssl_signature.c:80:9:80:21 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:80:9:80:21 | openssl_signature.c:80:9:80:21 | | openssl_signature.c:80:53:80:56 | Key | KeyType | Unknown | openssl_signature.c:80:53:80:56 | openssl_signature.c:80:53:80:56 | | openssl_signature.c:133:52:133:55 | Key | KeyType | Unknown | openssl_signature.c:133:52:133:55 | openssl_signature.c:133:52:133:55 | +| openssl_signature.c:135:9:135:27 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:135:9:135:27 | openssl_signature.c:135:9:135:27 | | openssl_signature.c:142:9:142:27 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:142:9:142:27 | openssl_signature.c:142:9:142:27 | | openssl_signature.c:190:57:190:60 | Key | KeyType | Unknown | openssl_signature.c:190:57:190:60 | openssl_signature.c:190:57:190:60 | +| openssl_signature.c:197:9:197:27 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:197:9:197:27 | openssl_signature.c:197:9:197:27 | | openssl_signature.c:204:9:204:27 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:204:9:204:27 | openssl_signature.c:204:9:204:27 | | openssl_signature.c:260:39:260:42 | Key | KeyType | Unknown | openssl_signature.c:260:39:260:42 | openssl_signature.c:260:39:260:42 | +| openssl_signature.c:263:9:263:21 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:263:9:263:21 | openssl_signature.c:263:9:263:21 | | openssl_signature.c:270:9:270:21 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:270:9:270:21 | openssl_signature.c:270:9:270:21 | | openssl_signature.c:321:39:321:42 | Key | KeyType | Unknown | openssl_signature.c:321:39:321:42 | openssl_signature.c:321:39:321:42 | +| openssl_signature.c:327:9:327:35 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:327:9:327:35 | openssl_signature.c:327:9:327:35 | | openssl_signature.c:334:9:334:35 | SignOperation | KeyOperationSubtype | Sign | openssl_signature.c:334:9:334:35 | openssl_signature.c:334:9:334:35 | | openssl_signature.c:521:46:521:66 | PaddingAlgorithm | Name | PSS | openssl_signature.c:521:46:521:66 | openssl_signature.c:521:46:521:66 | | openssl_signature.c:521:46:521:66 | PaddingAlgorithm | RawName | 6 | openssl_signature.c:521:46:521:66 | openssl_signature.c:521:46:521:66 | @@ -60,6 +66,7 @@ | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | Name | DSA | openssl_signature.c:565:50:565:54 | openssl_signature.c:565:50:565:54 | | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | RawName | dsa | openssl_signature.c:565:50:565:54 | openssl_signature.c:565:50:565:54 | | openssl_signature.c:569:55:569:58 | Constant | Description | 2048 | openssl_signature.c:569:55:569:58 | openssl_signature.c:569:55:569:58 | +| openssl_signature.c:575:32:575:37 | Key | KeyType | Unknown | openssl_signature.c:575:32:575:37 | openssl_signature.c:575:32:575:37 | | openssl_signature.c:578:34:578:37 | Key | KeyType | Asymmetric | openssl_signature.c:578:34:578:37 | openssl_signature.c:578:34:578:37 | | openssl_signature.c:602:37:602:77 | Constant | Description | Test message for OpenSSL signature APIs | openssl_signature.c:602:37:602:77 | openssl_signature.c:602:37:602:77 | | openssl_signature.c:684:24:684:33 | HashAlgorithm | DigestSize | 256 | openssl_signature.c:684:24:684:33 | openssl_signature.c:684:24:684:33 | diff --git a/cpp/ql/test/experimental/library-tests/quantum/nodes.expected b/cpp/ql/test/experimental/library-tests/quantum/nodes.expected index 5c3b212b0804..223f7bfca6c5 100644 --- a/cpp/ql/test/experimental/library-tests/quantum/nodes.expected +++ b/cpp/ql/test/experimental/library-tests/quantum/nodes.expected @@ -25,6 +25,7 @@ | openssl_basic.c:155:22:155:41 | Key | | openssl_basic.c:155:22:155:41 | KeyGeneration | | openssl_basic.c:155:43:155:55 | MACAlgorithm | +| openssl_basic.c:155:64:155:66 | Key | | openssl_basic.c:160:39:160:48 | HashAlgorithm | | openssl_basic.c:160:59:160:62 | Key | | openssl_basic.c:163:35:163:41 | Message | @@ -34,7 +35,9 @@ | openssl_basic.c:180:42:180:59 | Constant | | openssl_basic.c:181:49:181:87 | Constant | | openssl_basic.c:218:32:218:33 | Constant | +| openssl_pkey.c:21:10:21:28 | KeyGeneration | | openssl_pkey.c:21:10:21:28 | KeyOperationAlgorithm | +| openssl_pkey.c:21:30:21:32 | Key | | openssl_pkey.c:45:49:45:65 | Constant | | openssl_pkey.c:50:31:50:42 | KeyOperationAlgorithm | | openssl_pkey.c:54:47:54:50 | Constant | @@ -54,18 +57,27 @@ | openssl_signature.c:80:53:80:56 | Key | | openssl_signature.c:133:52:133:55 | Key | | openssl_signature.c:134:38:134:44 | Message | +| openssl_signature.c:135:9:135:27 | SignOperation | +| openssl_signature.c:135:37:135:40 | SignatureOutput | | openssl_signature.c:142:9:142:27 | SignOperation | | openssl_signature.c:142:37:142:46 | SignatureOutput | | openssl_signature.c:190:57:190:60 | Key | | openssl_signature.c:196:38:196:44 | Message | +| openssl_signature.c:197:9:197:27 | SignOperation | +| openssl_signature.c:197:37:197:40 | SignatureOutput | | openssl_signature.c:204:9:204:27 | SignOperation | | openssl_signature.c:204:37:204:46 | SignatureOutput | | openssl_signature.c:260:39:260:42 | Key | +| openssl_signature.c:263:9:263:21 | SignOperation | +| openssl_signature.c:263:33:263:36 | SignatureOutput | +| openssl_signature.c:263:54:263:59 | Message | | openssl_signature.c:270:9:270:21 | SignOperation | | openssl_signature.c:270:33:270:42 | SignatureOutput | | openssl_signature.c:270:60:270:65 | Message | | openssl_signature.c:321:39:321:42 | Key | | openssl_signature.c:326:48:326:54 | Message | +| openssl_signature.c:327:9:327:35 | SignOperation | +| openssl_signature.c:327:47:327:50 | SignatureOutput | | openssl_signature.c:334:9:334:35 | SignOperation | | openssl_signature.c:334:47:334:56 | SignatureOutput | | openssl_signature.c:521:46:521:66 | PaddingAlgorithm | @@ -75,6 +87,7 @@ | openssl_signature.c:548:34:548:37 | Key | | openssl_signature.c:565:50:565:54 | KeyOperationAlgorithm | | openssl_signature.c:569:55:569:58 | Constant | +| openssl_signature.c:575:32:575:37 | Key | | openssl_signature.c:578:9:578:23 | KeyGeneration | | openssl_signature.c:578:34:578:37 | Key | | openssl_signature.c:602:37:602:77 | Constant | diff --git a/cpp/ql/test/experimental/library-tests/rangeanalysis/rangeanalysis/RangeAnalysis.ql b/cpp/ql/test/experimental/library-tests/rangeanalysis/rangeanalysis/RangeAnalysis.ql index 1b77763682ad..240567b536c2 100644 --- a/cpp/ql/test/experimental/library-tests/rangeanalysis/rangeanalysis/RangeAnalysis.ql +++ b/cpp/ql/test/experimental/library-tests/rangeanalysis/rangeanalysis/RangeAnalysis.ql @@ -15,5 +15,5 @@ query predicate instructionBounds( not valueNumber(b.getInstruction()) = valueNumber(i) and if reason instanceof CondReason then reasonLoc = reason.(CondReason).getCond().getLocation() - else reasonLoc instanceof UnknownDefaultLocation + else reasonLoc instanceof UnknownLocation } diff --git a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp index fc9a4e6be082..8df12588fa59 100644 --- a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp @@ -37,4 +37,21 @@ void test_aggregate_literal() { int xs[] = {1, 2, 3}; // $ asExpr=1 asExpr=2 asExpr=3 asExpr={...} const int ys[] = {[0] = 4, [1] = 5, [0] = 6}; // $ asExpr=4 asExpr=5 asExpr=6 asExpr={...} -} \ No newline at end of file +} + +void test_postfix_crement(int *p, int q) { + p++; // $ asExpr="... ++" asIndirectExpr="... ++" asExpr=p asIndirectExpr=p + q++; // $ asExpr="... ++" asExpr=q + (p++); // $ asExpr="... ++" asIndirectExpr="... ++" asExpr="p(... ++)" asIndirectExpr="p(*... ++)" + (q++); // $ asExpr="... ++" asExpr="q(... ++)" + (void)(p++); // $ asExpr="p(... ++)" asIndirectExpr="p(*... ++)" + (void)(q++); // $ asExpr="q(... ++)" + (void)p++; // $ asExpr="p(... ++)" asIndirectExpr="p(*... ++)" + (void)q++; // $ asExpr="q(... ++)" + int *p1 = p++; // $ asExpr="... ++" asIndirectExpr="... ++" asExpr="p(... ++)" asIndirectExpr="p(*... ++)" + int q1 = q++; // $ asExpr="... ++" asExpr="q(... ++)" + (int*)(p++); // $ asExpr="... ++" asIndirectExpr="... ++" asExpr="p(... ++)" asIndirectExpr="p(*... ++)" + (int)(q++); // $ asExpr="... ++" asExpr="q(... ++)" + int *p2 = (int*)(p++); // $ asExpr="... ++" asIndirectExpr="... ++" asExpr="p(... ++)" asIndirectExpr="p(*... ++)" + int q2 = (int)(q++); // $ asExpr="... ++" asExpr="q(... ++)" +} diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected index 9492b7dd2760..9abcd6eeee78 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-consistency.expected @@ -6,9 +6,15 @@ uniqueEnclosingCallable | test.cpp:1126:33:1129:1 | {...} | Node should have one enclosing callable but has 0. | | test.cpp:1127:3:1127:13 | reads_input | Node should have one enclosing callable but has 0. | | test.cpp:1128:3:1128:21 | not_does_read_input | Node should have one enclosing callable but has 0. | +| test.cpp:1158:18:1158:21 | call to sink | Node should have one enclosing callable but has 0. | +| test.cpp:1158:18:1158:42 | ... , ... | Node should have one enclosing callable but has 0. | +| test.cpp:1158:23:1158:31 | recursion | Node should have one enclosing callable but has 0. | +| test.cpp:1158:35:1158:40 | call to source | Node should have one enclosing callable but has 0. | uniqueCallEnclosingCallable | test.cpp:864:47:864:54 | call to source | Call should have one enclosing callable but has 0. | | test.cpp:872:46:872:51 | call to source | Call should have one enclosing callable but has 0. | +| test.cpp:1158:18:1158:21 | call to sink | Call should have one enclosing callable but has 0. | +| test.cpp:1158:35:1158:40 | call to source | Call should have one enclosing callable but has 0. | uniqueType uniqueNodeLocation missingLocation diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/has-parameter-flow-out.ql b/cpp/ql/test/library-tests/dataflow/dataflow-tests/has-parameter-flow-out.ql index 34afffd8e589..8f534be558d7 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/has-parameter-flow-out.ql +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/has-parameter-flow-out.ql @@ -24,10 +24,9 @@ module AstTest { module IRTest { private import semmle.code.cpp.ir.dataflow.DataFlow - private import semmle.code.cpp.ir.dataflow.internal.DataFlowUtil private string stars(int k) { - k = [0 .. max(FinalParameterNode n | | n.getIndirectionIndex())] and + k = [0 .. max(DataFlow::Node n, int i | n.isFinalValueOfParameter(_, i) | i)] and (if k = 0 then result = "" else result = "*" + stars(k - 1)) } @@ -35,14 +34,14 @@ module IRTest { string getARelevantTag() { result = "ir-def" } predicate hasActualResult(Location location, string element, string tag, string value) { - exists(Function f, Parameter p, FinalParameterNode n | + exists(Function f, Parameter p, DataFlow::Node n, int i | p.isNamed() and - n.getParameter() = p and + n.isFinalValueOfParameter(p, i) and n.getFunction() = f and location = f.getLocation() and element = p.toString() and tag = "ir-def" and - value = stars(n.getIndirectionIndex()) + p.getName() + value = stars(i) + p.getName() ) } } diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp index a65659191fb8..b804159d8583 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp @@ -1153,4 +1153,6 @@ namespace conflation_regression { *p = source(0); read_deref_deref(p); } -} \ No newline at end of file +} + +int recursion = (sink(recursion), source()); // clean \ No newline at end of file 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 385af7a4e2c3..b1f984680ad6 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -1,57 +1,123 @@ -testFailures +models +| 1 | Sink: ; ; false; ymlSink; ; ; Argument[0]; test-sink; manual | +| 2 | Sink: boost::asio; ; false; write; ; ; Argument[*1]; remote-sink; manual | +| 3 | Source: ; ; false; GetCommandLineA; ; ; ReturnValue[*]; local; manual | +| 4 | Source: ; ; false; GetEnvironmentStringsA; ; ; ReturnValue[*]; local; manual | +| 5 | Source: ; ; false; GetEnvironmentVariableA; ; ; Argument[*1]; local; manual | +| 6 | Source: ; ; false; MapViewOfFile2; ; ; ReturnValue[*]; local; manual | +| 7 | Source: ; ; false; MapViewOfFile3; ; ; ReturnValue[*]; local; manual | +| 8 | Source: ; ; false; MapViewOfFile3FromApp; ; ; ReturnValue[*]; local; manual | +| 9 | Source: ; ; false; MapViewOfFile; ; ; ReturnValue[*]; local; manual | +| 10 | Source: ; ; false; MapViewOfFileEx; ; ; ReturnValue[*]; local; manual | +| 11 | Source: ; ; false; MapViewOfFileFromApp; ; ; ReturnValue[*]; local; manual | +| 12 | Source: ; ; false; MapViewOfFileNuma2; ; ; ReturnValue[*]; local; manual | +| 13 | Source: ; ; false; NtReadFile; ; ; Argument[*5]; local; manual | +| 14 | Source: ; ; false; ReadFile; ; ; Argument[*1]; local; manual | +| 15 | Source: ; ; false; ReadFileEx; ; ; Argument[*1]; local; manual | +| 16 | Source: ; ; false; ymlSource; ; ; ReturnValue; local; manual | +| 17 | Source: boost::asio; ; false; read_until; ; ; Argument[*1]; remote; manual | +| 18 | Summary: ; ; false; CommandLineToArgvA; ; ; Argument[*0]; ReturnValue[**]; taint; manual | +| 19 | Summary: ; ; false; CreateRemoteThread; ; ; Argument[@4]; Argument[3].Parameter[@0]; value; manual | +| 20 | Summary: ; ; false; CreateRemoteThreadEx; ; ; Argument[@4]; Argument[3].Parameter[@0]; value; manual | +| 21 | Summary: ; ; false; CreateThread; ; ; Argument[@3]; Argument[2].Parameter[@0]; value; manual | +| 22 | Summary: ; ; false; ReadFileEx; ; ; Argument[*3].Field[@hEvent]; Argument[4].Parameter[*2].Field[@hEvent]; value; manual | +| 23 | Summary: ; ; false; RtlCopyDeviceMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 24 | Summary: ; ; false; RtlCopyMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 25 | Summary: ; ; false; RtlCopyMemoryNonTemporal; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 26 | Summary: ; ; false; RtlCopyUnicodeString; ; ; Argument[*1].Field[*Buffer]; Argument[*0].Field[*Buffer]; value; manual | +| 27 | Summary: ; ; false; RtlCopyVolatileMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 28 | Summary: ; ; false; RtlInitUnicodeString; ; ; Argument[*1]; Argument[*0].Field[*Buffer]; value; manual | +| 29 | Summary: ; ; false; RtlMoveMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 30 | Summary: ; ; false; RtlMoveVolatileMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 31 | Summary: ; ; false; callWithArgument; ; ; Argument[1]; Argument[0].Parameter[0]; value; manual | +| 32 | Summary: ; ; false; pthread_create; ; ; Argument[@3]; Argument[2].Parameter[@0]; value; manual | +| 33 | Summary: ; ; false; ymlStepGenerated; ; ; Argument[0]; ReturnValue; taint; df-generated | +| 34 | Summary: ; ; false; ymlStepManual; ; ; Argument[0]; ReturnValue; taint; manual | +| 35 | Summary: ; ; false; ymlStepManual_with_body; ; ; Argument[0]; ReturnValue; taint; manual | +| 36 | Summary: boost::asio; ; false; buffer; ; ; Argument[*0]; ReturnValue; taint; manual | edges -| asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | provenance | MaD:10 | -| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:91:7:91:17 | recv_buffer | provenance | Src:MaD:2 | -| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:93:29:93:39 | *recv_buffer | provenance | Src:MaD:2 Sink:MaD:6 | +| asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | provenance | MaD:36 | +| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:91:7:91:17 | recv_buffer | provenance | Src:MaD:17 | +| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:93:29:93:39 | *recv_buffer | provenance | Src:MaD:17 Sink:MaD:2 | | asio_streams.cpp:97:37:97:44 | call to source | asio_streams.cpp:98:7:98:14 | send_str | provenance | TaintFunction | | asio_streams.cpp:97:37:97:44 | call to source | asio_streams.cpp:100:64:100:71 | *send_str | provenance | TaintFunction | | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | | | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:101:7:101:17 | send_buffer | provenance | | -| asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | +| asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:2 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | -| asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:26955 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:26956 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:26957 | +| asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:36 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:34 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:33 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:35 | | 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:26953 | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:26954 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:16 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:1 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | -| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:26954 | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:1 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:26955 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:34 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | -| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:26954 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:1 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:26956 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:33 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | -| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:26954 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:1 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:26957 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:35 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:26954 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:1 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:341 | -| windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:22:15:22:29 | *call to GetCommandLineA | provenance | Src:MaD:325 | +| test.cpp:46:30:46:32 | *arg [x] | test.cpp:47:12:47:19 | *arg [x] | provenance | | +| test.cpp:47:12:47:19 | *arg [x] | test.cpp:48:13:48:13 | *s [x] | provenance | | +| test.cpp:48:13:48:13 | *s [x] | test.cpp:48:16:48:16 | x | provenance | Sink:MaD:1 | +| test.cpp:52:5:52:18 | [summary param] *3 in pthread_create [x] | test.cpp:52:5:52:18 | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | provenance | MaD:32 | +| test.cpp:52:5:52:18 | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | test.cpp:46:30:46:32 | *arg [x] | provenance | | +| test.cpp:56:2:56:2 | *s [post update] [x] | test.cpp:59:55:59:64 | *& ... [x] | provenance | | +| test.cpp:56:2:56:18 | ... = ... | test.cpp:56:2:56:2 | *s [post update] [x] | provenance | | +| test.cpp:56:8:56:16 | call to ymlSource | test.cpp:56:2:56:18 | ... = ... | provenance | Src:MaD:16 | +| test.cpp:59:55:59:64 | *& ... [x] | test.cpp:52:5:52:18 | [summary param] *3 in pthread_create [x] | provenance | | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:68:22:68:22 | y | provenance | | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:74:22:74:22 | y | provenance | | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:82:22:82:22 | y | provenance | | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:88:22:88:22 | y | provenance | | +| test.cpp:68:22:68:22 | y | test.cpp:69:11:69:11 | y | provenance | Sink:MaD:1 | +| test.cpp:74:22:74:22 | y | test.cpp:75:11:75:11 | y | provenance | Sink:MaD:1 | +| test.cpp:82:22:82:22 | y | test.cpp:83:11:83:11 | y | provenance | Sink:MaD:1 | +| test.cpp:88:22:88:22 | y | test.cpp:89:11:89:11 | y | provenance | Sink:MaD:1 | +| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:94:10:94:18 | call to ymlSource | provenance | Src:MaD:16 | +| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:97:26:97:26 | x | provenance | | +| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:101:26:101:26 | x | provenance | | +| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:103:63:103:63 | x | provenance | | +| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:104:62:104:62 | x | provenance | | +| test.cpp:97:26:97:26 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | +| test.cpp:101:26:101:26 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | +| test.cpp:103:63:103:63 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | +| test.cpp:104:62:104:62 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | +| windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:18 | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:22:15:22:29 | *call to GetCommandLineA | provenance | Src: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:27:17:27:34 | **call to CommandLineToArgvA | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | | | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | windows.cpp:30:8:30:15 | * ... | provenance | | | windows.cpp:27:36:27:38 | *cmd | windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | provenance | | -| windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | MaD:341 | -| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | +| windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | MaD:18 | +| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:4 | | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:36:10:36:13 | * ... | provenance | | -| windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | windows.cpp:41:10:41:13 | * ... | provenance | Src:MaD:329 | +| windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | windows.cpp:41:10:41:13 | * ... | provenance | Src:MaD:5 | | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [*hEvent] | windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | provenance | | | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [hEvent] | windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | provenance | | -| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:343 | -| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:343 | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:22 | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:22 | | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | windows.cpp:147:16:147:27 | *lpOverlapped [*hEvent] | provenance | | | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | windows.cpp:157:16:157:27 | *lpOverlapped [hEvent] | provenance | | | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | provenance | | @@ -67,38 +133,114 @@ edges | windows.cpp:159:12:159:55 | hEvent | windows.cpp:160:8:160:8 | c | provenance | | | windows.cpp:159:35:159:46 | *lpOverlapped [hEvent] | windows.cpp:159:12:159:55 | hEvent | provenance | | | windows.cpp:159:35:159:46 | *lpOverlapped [hEvent] | windows.cpp:159:12:159:55 | hEvent | provenance | | -| windows.cpp:168:35:168:40 | ReadFile output argument | windows.cpp:170:10:170:16 | * ... | provenance | Src:MaD:331 | -| windows.cpp:177:23:177:28 | ReadFileEx output argument | windows.cpp:179:10:179:16 | * ... | provenance | Src:MaD:332 | -| windows.cpp:189:21:189:26 | ReadFile output argument | windows.cpp:190:5:190:56 | *... = ... | provenance | Src:MaD:331 | +| windows.cpp:168:35:168:40 | ReadFile output argument | windows.cpp:170:10:170:16 | * ... | provenance | Src:MaD:14 | +| windows.cpp:177:23:177:28 | ReadFileEx output argument | windows.cpp:179:10:179:16 | * ... | provenance | Src:MaD:15 | +| windows.cpp:189:21:189:26 | ReadFile output argument | windows.cpp:190:5:190:56 | *... = ... | provenance | Src:MaD:14 | | windows.cpp:190:5:190:14 | *overlapped [post update] [*hEvent] | windows.cpp:192:53:192:63 | *& ... [*hEvent] | provenance | | | windows.cpp:190:5:190:56 | *... = ... | windows.cpp:190:5:190:14 | *overlapped [post update] [*hEvent] | provenance | | | windows.cpp:192:53:192:63 | *& ... [*hEvent] | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [*hEvent] | provenance | | -| windows.cpp:198:21:198:26 | ReadFile output argument | windows.cpp:199:5:199:57 | ... = ... | provenance | Src:MaD:331 | +| windows.cpp:198:21:198:26 | ReadFile output argument | windows.cpp:199:5:199:57 | ... = ... | provenance | Src:MaD:14 | | windows.cpp:199:5:199:14 | *overlapped [post update] [hEvent] | windows.cpp:201:53:201:63 | *& ... [hEvent] | provenance | | | windows.cpp:199:5:199:57 | ... = ... | windows.cpp:199:5:199:14 | *overlapped [post update] [hEvent] | provenance | | | windows.cpp:201:53:201:63 | *& ... [hEvent] | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [hEvent] | provenance | | -| windows.cpp:209:84:209:89 | NtReadFile output argument | windows.cpp:211:10:211:16 | * ... | provenance | Src:MaD:340 | -| windows.cpp:286:23:286:35 | *call to MapViewOfFile | windows.cpp:286:23:286:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | +| windows.cpp:209:84:209:89 | NtReadFile output argument | windows.cpp:211:10:211:16 | * ... | provenance | Src:MaD:13 | +| windows.cpp:286:23:286:35 | *call to MapViewOfFile | windows.cpp:286:23:286:35 | *call to MapViewOfFile | provenance | Src:MaD:9 | | windows.cpp:286:23:286:35 | *call to MapViewOfFile | windows.cpp:287:20:287:52 | *pMapView | provenance | | | windows.cpp:287:20:287:52 | *pMapView | windows.cpp:289:10:289:16 | * ... | provenance | | -| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | provenance | Src:MaD:334 | +| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | provenance | Src:MaD:6 | | windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | windows.cpp:294:20:294:52 | *pMapView | provenance | | | windows.cpp:294:20:294:52 | *pMapView | windows.cpp:296:10:296:16 | * ... | provenance | | -| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | provenance | Src:MaD:335 | +| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | provenance | Src:MaD:7 | | windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | windows.cpp:303:20:303:52 | *pMapView | provenance | | | windows.cpp:303:20:303:52 | *pMapView | windows.cpp:305:10:305:16 | * ... | provenance | | -| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:336 | +| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:8 | | windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | windows.cpp:312:20:312:52 | *pMapView | provenance | | | windows.cpp:312:20:312:52 | *pMapView | windows.cpp:314:10:314:16 | * ... | provenance | | -| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | provenance | Src:MaD:337 | +| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | provenance | Src:MaD:10 | | windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | windows.cpp:319:20:319:52 | *pMapView | provenance | | | windows.cpp:319:20:319:52 | *pMapView | windows.cpp:321:10:321:16 | * ... | provenance | | -| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:338 | +| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:11 | | windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | windows.cpp:326:20:326:52 | *pMapView | provenance | | | windows.cpp:326:20:326:52 | *pMapView | windows.cpp:328:10:328:16 | * ... | provenance | | -| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:339 | +| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:12 | | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:333:20:333:52 | *pMapView | provenance | | | windows.cpp:333:20:333:52 | *pMapView | windows.cpp:335:10:335:16 | * ... | provenance | | +| windows.cpp:349:8:349:19 | [summary param] *3 in CreateThread [x] | windows.cpp:349:8:349:19 | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | provenance | MaD:21 | +| windows.cpp:349:8:349:19 | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | windows.cpp:403:26:403:36 | *lpParameter [x] | provenance | | +| windows.cpp:357:8:357:25 | [summary param] *4 in CreateRemoteThread [x] | windows.cpp:357:8:357:25 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | provenance | MaD:19 | +| windows.cpp:357:8:357:25 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | windows.cpp:410:26:410:36 | *lpParameter [x] | provenance | | +| windows.cpp:387:8:387:27 | [summary param] *4 in CreateRemoteThreadEx [x] | windows.cpp:387:8:387:27 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | provenance | MaD:20 | +| windows.cpp:387:8:387:27 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | windows.cpp:417:26:417:36 | *lpParameter [x] | provenance | | +| windows.cpp:403:26:403:36 | *lpParameter [x] | windows.cpp:405:10:405:25 | *lpParameter [x] | provenance | | +| windows.cpp:405:10:405:25 | *lpParameter [x] | windows.cpp:406:8:406:8 | *s [x] | provenance | | +| windows.cpp:406:8:406:8 | *s [x] | windows.cpp:406:8:406:11 | x | provenance | | +| windows.cpp:410:26:410:36 | *lpParameter [x] | windows.cpp:412:10:412:25 | *lpParameter [x] | provenance | | +| windows.cpp:412:10:412:25 | *lpParameter [x] | windows.cpp:413:8:413:8 | *s [x] | provenance | | +| windows.cpp:413:8:413:8 | *s [x] | windows.cpp:413:8:413:11 | x | provenance | | +| windows.cpp:417:26:417:36 | *lpParameter [x] | windows.cpp:419:10:419:25 | *lpParameter [x] | provenance | | +| windows.cpp:419:10:419:25 | *lpParameter [x] | windows.cpp:420:8:420:8 | *s [x] | provenance | | +| windows.cpp:420:8:420:8 | *s [x] | windows.cpp:420:8:420:11 | x | provenance | | +| windows.cpp:431:3:431:3 | *s [post update] [x] | windows.cpp:439:7:439:8 | *& ... [x] | provenance | | +| windows.cpp:431:3:431:3 | *s [post update] [x] | windows.cpp:451:7:451:8 | *& ... [x] | provenance | | +| windows.cpp:431:3:431:3 | *s [post update] [x] | windows.cpp:464:7:464:8 | *& ... [x] | provenance | | +| windows.cpp:431:3:431:16 | ... = ... | windows.cpp:431:3:431:3 | *s [post update] [x] | provenance | | +| windows.cpp:431:9:431:14 | call to source | windows.cpp:431:3:431:16 | ... = ... | provenance | | +| windows.cpp:439:7:439:8 | *& ... [x] | windows.cpp:349:8:349:19 | [summary param] *3 in CreateThread [x] | provenance | | +| windows.cpp:451:7:451:8 | *& ... [x] | windows.cpp:357:8:357:25 | [summary param] *4 in CreateRemoteThread [x] | provenance | | +| windows.cpp:464:7:464:8 | *& ... [x] | windows.cpp:387:8:387:27 | [summary param] *4 in CreateRemoteThreadEx [x] | provenance | | +| windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | windows.cpp:473:17:473:37 | [summary param] *0 in RtlCopyVolatileMemory [Return] | provenance | MaD:27 | +| windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | windows.cpp:479:17:479:35 | [summary param] *0 in RtlCopyDeviceMemory [Return] | provenance | MaD:23 | +| windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | windows.cpp:485:6:485:18 | [summary param] *0 in RtlCopyMemory [Return] | provenance | MaD:24 | +| windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | windows.cpp:493:6:493:29 | [summary param] *0 in RtlCopyMemoryNonTemporal [Return] | provenance | MaD:25 | +| windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | windows.cpp:510:6:510:25 | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | provenance | | +| windows.cpp:510:6:510:25 | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | provenance | MaD:26 | +| windows.cpp:510:6:510:25 | [summary] to write: Argument[*0] in RtlCopyUnicodeString [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *0 in RtlCopyUnicodeString [Return] [*Buffer] | provenance | | +| windows.cpp:510:6:510:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0] in RtlCopyUnicodeString [*Buffer] | provenance | | +| windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | windows.cpp:515:6:515:18 | [summary param] *0 in RtlMoveMemory [Return] | provenance | MaD:29 | +| windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | windows.cpp:521:17:521:37 | [summary param] *0 in RtlMoveVolatileMemory [Return] | provenance | MaD:30 | +| windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | provenance | MaD:28 | +| windows.cpp:527:6:527:25 | [summary] to write: Argument[*0] in RtlInitUnicodeString [*Buffer] | windows.cpp:527:6:527:25 | [summary param] *0 in RtlInitUnicodeString [Return] [*Buffer] | provenance | | +| windows.cpp:527:6:527:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0] in RtlInitUnicodeString [*Buffer] | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:533:11:533:16 | call to source | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:537:40:537:41 | *& ... | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:542:38:542:39 | *& ... | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:547:32:547:33 | *& ... | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:552:43:552:44 | *& ... | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:568:32:568:33 | *& ... | provenance | | +| windows.cpp:533:11:533:16 | call to source | windows.cpp:573:40:573:41 | *& ... | provenance | | +| windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | windows.cpp:538:10:538:23 | access to array | provenance | | +| windows.cpp:537:40:537:41 | *& ... | windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | provenance | | +| windows.cpp:537:40:537:41 | *& ... | windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | provenance | MaD:27 | +| windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | windows.cpp:543:10:543:23 | access to array | provenance | | +| windows.cpp:542:38:542:39 | *& ... | windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | provenance | | +| windows.cpp:542:38:542:39 | *& ... | windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | provenance | MaD:23 | +| windows.cpp:547:19:547:29 | RtlCopyMemory output argument | windows.cpp:548:10:548:23 | access to array | provenance | | +| windows.cpp:547:32:547:33 | *& ... | windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | provenance | | +| windows.cpp:547:32:547:33 | *& ... | windows.cpp:547:19:547:29 | RtlCopyMemory output argument | provenance | MaD:24 | +| windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | windows.cpp:553:10:553:23 | access to array | provenance | | +| windows.cpp:552:43:552:44 | *& ... | windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | provenance | | +| windows.cpp:552:43:552:44 | *& ... | windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | provenance | MaD:25 | +| windows.cpp:559:5:559:24 | ... = ... | windows.cpp:561:39:561:44 | *buffer | provenance | | +| windows.cpp:559:17:559:24 | call to source | windows.cpp:559:5:559:24 | ... = ... | provenance | | +| windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | windows.cpp:562:10:562:19 | *src_string [*Buffer] | provenance | | +| windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | windows.cpp:563:40:563:50 | *& ... [*Buffer] | provenance | | +| windows.cpp:561:39:561:44 | *buffer | windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | provenance | | +| windows.cpp:561:39:561:44 | *buffer | windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | provenance | MaD:28 | +| windows.cpp:562:10:562:19 | *src_string [*Buffer] | windows.cpp:562:10:562:29 | access to array | provenance | | +| windows.cpp:562:10:562:19 | *src_string [*Buffer] | windows.cpp:562:21:562:26 | *Buffer | provenance | | +| windows.cpp:562:21:562:26 | *Buffer | windows.cpp:562:10:562:29 | access to array | provenance | | +| windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | windows.cpp:564:10:564:20 | *dest_string [*Buffer] | provenance | | +| windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | provenance | | +| windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | provenance | MaD:26 | +| windows.cpp:564:10:564:20 | *dest_string [*Buffer] | windows.cpp:564:10:564:30 | access to array | provenance | | +| windows.cpp:564:10:564:20 | *dest_string [*Buffer] | windows.cpp:564:22:564:27 | *Buffer | provenance | | +| windows.cpp:564:22:564:27 | *Buffer | windows.cpp:564:10:564:30 | access to array | provenance | | +| windows.cpp:568:19:568:29 | RtlMoveMemory output argument | windows.cpp:569:10:569:23 | access to array | provenance | | +| windows.cpp:568:32:568:33 | *& ... | windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | provenance | | +| windows.cpp:568:32:568:33 | *& ... | windows.cpp:568:19:568:29 | RtlMoveMemory output argument | provenance | MaD:29 | +| windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | windows.cpp:574:10:574:23 | access to array | provenance | | +| windows.cpp:573:40:573:41 | *& ... | windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | provenance | | +| windows.cpp:573:40:573:41 | *& ... | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | provenance | MaD:30 | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -140,6 +282,38 @@ nodes | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | | test.cpp:32:41:32:41 | x | semmle.label | x | | test.cpp:33:10:33:11 | z2 | semmle.label | z2 | +| test.cpp:46:30:46:32 | *arg [x] | semmle.label | *arg [x] | +| test.cpp:47:12:47:19 | *arg [x] | semmle.label | *arg [x] | +| test.cpp:48:13:48:13 | *s [x] | semmle.label | *s [x] | +| test.cpp:48:16:48:16 | x | semmle.label | x | +| test.cpp:52:5:52:18 | [summary param] *3 in pthread_create [x] | semmle.label | [summary param] *3 in pthread_create [x] | +| test.cpp:52:5:52:18 | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | semmle.label | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | +| test.cpp:56:2:56:2 | *s [post update] [x] | semmle.label | *s [post update] [x] | +| test.cpp:56:2:56:18 | ... = ... | semmle.label | ... = ... | +| test.cpp:56:8:56:16 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:59:55:59:64 | *& ... [x] | semmle.label | *& ... [x] | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | semmle.label | [summary param] 1 in callWithArgument | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | semmle.label | [summary param] 1 in callWithArgument | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | semmle.label | [summary param] 1 in callWithArgument | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | semmle.label | [summary param] 1 in callWithArgument | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | semmle.label | [summary] to write: Argument[0].Parameter[0] in callWithArgument | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | semmle.label | [summary] to write: Argument[0].Parameter[0] in callWithArgument | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | semmle.label | [summary] to write: Argument[0].Parameter[0] in callWithArgument | +| test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | semmle.label | [summary] to write: Argument[0].Parameter[0] in callWithArgument | +| test.cpp:68:22:68:22 | y | semmle.label | y | +| test.cpp:69:11:69:11 | y | semmle.label | y | +| test.cpp:74:22:74:22 | y | semmle.label | y | +| test.cpp:75:11:75:11 | y | semmle.label | y | +| test.cpp:82:22:82:22 | y | semmle.label | y | +| test.cpp:83:11:83:11 | y | semmle.label | y | +| test.cpp:88:22:88:22 | y | semmle.label | y | +| test.cpp:89:11:89:11 | y | semmle.label | y | +| test.cpp:94:10:94:18 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:94:10:94:18 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:97:26:97:26 | x | semmle.label | x | +| test.cpp:101:26:101:26 | x | semmle.label | x | +| test.cpp:103:63:103:63 | x | semmle.label | x | +| test.cpp:104:62:104:62 | x | semmle.label | x | | windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | semmle.label | [summary param] *0 in CommandLineToArgvA | | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | semmle.label | [summary] to write: ReturnValue[**] in CommandLineToArgvA | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | @@ -215,6 +389,83 @@ nodes | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | | windows.cpp:333:20:333:52 | *pMapView | semmle.label | *pMapView | | windows.cpp:335:10:335:16 | * ... | semmle.label | * ... | +| windows.cpp:349:8:349:19 | [summary param] *3 in CreateThread [x] | semmle.label | [summary param] *3 in CreateThread [x] | +| windows.cpp:349:8:349:19 | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | semmle.label | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | +| windows.cpp:357:8:357:25 | [summary param] *4 in CreateRemoteThread [x] | semmle.label | [summary param] *4 in CreateRemoteThread [x] | +| windows.cpp:357:8:357:25 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | semmle.label | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | +| windows.cpp:387:8:387:27 | [summary param] *4 in CreateRemoteThreadEx [x] | semmle.label | [summary param] *4 in CreateRemoteThreadEx [x] | +| windows.cpp:387:8:387:27 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | semmle.label | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | +| windows.cpp:403:26:403:36 | *lpParameter [x] | semmle.label | *lpParameter [x] | +| windows.cpp:405:10:405:25 | *lpParameter [x] | semmle.label | *lpParameter [x] | +| windows.cpp:406:8:406:8 | *s [x] | semmle.label | *s [x] | +| windows.cpp:406:8:406:11 | x | semmle.label | x | +| windows.cpp:410:26:410:36 | *lpParameter [x] | semmle.label | *lpParameter [x] | +| windows.cpp:412:10:412:25 | *lpParameter [x] | semmle.label | *lpParameter [x] | +| windows.cpp:413:8:413:8 | *s [x] | semmle.label | *s [x] | +| windows.cpp:413:8:413:11 | x | semmle.label | x | +| windows.cpp:417:26:417:36 | *lpParameter [x] | semmle.label | *lpParameter [x] | +| windows.cpp:419:10:419:25 | *lpParameter [x] | semmle.label | *lpParameter [x] | +| windows.cpp:420:8:420:8 | *s [x] | semmle.label | *s [x] | +| windows.cpp:420:8:420:11 | x | semmle.label | x | +| windows.cpp:431:3:431:3 | *s [post update] [x] | semmle.label | *s [post update] [x] | +| windows.cpp:431:3:431:16 | ... = ... | semmle.label | ... = ... | +| windows.cpp:431:9:431:14 | call to source | semmle.label | call to source | +| windows.cpp:439:7:439:8 | *& ... [x] | semmle.label | *& ... [x] | +| windows.cpp:451:7:451:8 | *& ... [x] | semmle.label | *& ... [x] | +| windows.cpp:464:7:464:8 | *& ... [x] | semmle.label | *& ... [x] | +| windows.cpp:473:17:473:37 | [summary param] *0 in RtlCopyVolatileMemory [Return] | semmle.label | [summary param] *0 in RtlCopyVolatileMemory [Return] | +| windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | semmle.label | [summary param] *1 in RtlCopyVolatileMemory | +| windows.cpp:479:17:479:35 | [summary param] *0 in RtlCopyDeviceMemory [Return] | semmle.label | [summary param] *0 in RtlCopyDeviceMemory [Return] | +| windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | semmle.label | [summary param] *1 in RtlCopyDeviceMemory | +| windows.cpp:485:6:485:18 | [summary param] *0 in RtlCopyMemory [Return] | semmle.label | [summary param] *0 in RtlCopyMemory [Return] | +| windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | semmle.label | [summary param] *1 in RtlCopyMemory | +| windows.cpp:493:6:493:29 | [summary param] *0 in RtlCopyMemoryNonTemporal [Return] | semmle.label | [summary param] *0 in RtlCopyMemoryNonTemporal [Return] | +| windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | semmle.label | [summary param] *1 in RtlCopyMemoryNonTemporal | +| windows.cpp:510:6:510:25 | [summary param] *0 in RtlCopyUnicodeString [Return] [*Buffer] | semmle.label | [summary param] *0 in RtlCopyUnicodeString [Return] [*Buffer] | +| windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | semmle.label | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | +| windows.cpp:510:6:510:25 | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | semmle.label | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | +| windows.cpp:510:6:510:25 | [summary] to write: Argument[*0] in RtlCopyUnicodeString [*Buffer] | semmle.label | [summary] to write: Argument[*0] in RtlCopyUnicodeString [*Buffer] | +| windows.cpp:510:6:510:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | semmle.label | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | +| windows.cpp:515:6:515:18 | [summary param] *0 in RtlMoveMemory [Return] | semmle.label | [summary param] *0 in RtlMoveMemory [Return] | +| windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | semmle.label | [summary param] *1 in RtlMoveMemory | +| windows.cpp:521:17:521:37 | [summary param] *0 in RtlMoveVolatileMemory [Return] | semmle.label | [summary param] *0 in RtlMoveVolatileMemory [Return] | +| windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | semmle.label | [summary param] *1 in RtlMoveVolatileMemory | +| windows.cpp:527:6:527:25 | [summary param] *0 in RtlInitUnicodeString [Return] [*Buffer] | semmle.label | [summary param] *0 in RtlInitUnicodeString [Return] [*Buffer] | +| windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | semmle.label | [summary param] *1 in RtlInitUnicodeString | +| windows.cpp:527:6:527:25 | [summary] to write: Argument[*0] in RtlInitUnicodeString [*Buffer] | semmle.label | [summary] to write: Argument[*0] in RtlInitUnicodeString [*Buffer] | +| windows.cpp:527:6:527:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | semmle.label | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | +| windows.cpp:533:11:533:16 | call to source | semmle.label | call to source | +| windows.cpp:533:11:533:16 | call to source | semmle.label | call to source | +| windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | semmle.label | RtlCopyVolatileMemory output argument | +| windows.cpp:537:40:537:41 | *& ... | semmle.label | *& ... | +| windows.cpp:538:10:538:23 | access to array | semmle.label | access to array | +| windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | semmle.label | RtlCopyDeviceMemory output argument | +| windows.cpp:542:38:542:39 | *& ... | semmle.label | *& ... | +| windows.cpp:543:10:543:23 | access to array | semmle.label | access to array | +| windows.cpp:547:19:547:29 | RtlCopyMemory output argument | semmle.label | RtlCopyMemory output argument | +| windows.cpp:547:32:547:33 | *& ... | semmle.label | *& ... | +| windows.cpp:548:10:548:23 | access to array | semmle.label | access to array | +| windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | semmle.label | RtlCopyMemoryNonTemporal output argument | +| windows.cpp:552:43:552:44 | *& ... | semmle.label | *& ... | +| windows.cpp:553:10:553:23 | access to array | semmle.label | access to array | +| windows.cpp:559:5:559:24 | ... = ... | semmle.label | ... = ... | +| windows.cpp:559:17:559:24 | call to source | semmle.label | call to source | +| windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | semmle.label | RtlInitUnicodeString output argument [*Buffer] | +| windows.cpp:561:39:561:44 | *buffer | semmle.label | *buffer | +| windows.cpp:562:10:562:19 | *src_string [*Buffer] | semmle.label | *src_string [*Buffer] | +| windows.cpp:562:10:562:29 | access to array | semmle.label | access to array | +| windows.cpp:562:21:562:26 | *Buffer | semmle.label | *Buffer | +| windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | semmle.label | RtlCopyUnicodeString output argument [*Buffer] | +| windows.cpp:563:40:563:50 | *& ... [*Buffer] | semmle.label | *& ... [*Buffer] | +| windows.cpp:564:10:564:20 | *dest_string [*Buffer] | semmle.label | *dest_string [*Buffer] | +| windows.cpp:564:10:564:30 | access to array | semmle.label | access to array | +| windows.cpp:564:22:564:27 | *Buffer | semmle.label | *Buffer | +| windows.cpp:568:19:568:29 | RtlMoveMemory output argument | semmle.label | RtlMoveMemory output argument | +| windows.cpp:568:32:568:33 | *& ... | semmle.label | *& ... | +| windows.cpp:569:10:569:23 | access to array | semmle.label | access to array | +| windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | semmle.label | RtlMoveVolatileMemory output argument | +| windows.cpp:573:40:573:41 | *& ... | semmle.label | *& ... | +| windows.cpp:574:10:574:23 | access to array | semmle.label | access to array | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | @@ -222,3 +473,12 @@ subpaths | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | | windows.cpp:27:36:27:38 | *cmd | windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | +| windows.cpp:537:40:537:41 | *& ... | windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | windows.cpp:473:17:473:37 | [summary param] *0 in RtlCopyVolatileMemory [Return] | windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | +| windows.cpp:542:38:542:39 | *& ... | windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | windows.cpp:479:17:479:35 | [summary param] *0 in RtlCopyDeviceMemory [Return] | windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | +| windows.cpp:547:32:547:33 | *& ... | windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | windows.cpp:485:6:485:18 | [summary param] *0 in RtlCopyMemory [Return] | windows.cpp:547:19:547:29 | RtlCopyMemory output argument | +| windows.cpp:552:43:552:44 | *& ... | windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | windows.cpp:493:6:493:29 | [summary param] *0 in RtlCopyMemoryNonTemporal [Return] | windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | +| windows.cpp:561:39:561:44 | *buffer | windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | windows.cpp:527:6:527:25 | [summary param] *0 in RtlInitUnicodeString [Return] [*Buffer] | windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | +| windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *0 in RtlCopyUnicodeString [Return] [*Buffer] | windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | +| windows.cpp:568:32:568:33 | *& ... | windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | windows.cpp:515:6:515:18 | [summary param] *0 in RtlMoveMemory [Return] | windows.cpp:568:19:568:29 | RtlMoveMemory output argument | +| windows.cpp:573:40:573:41 | *& ... | windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | windows.cpp:521:17:521:37 | [summary param] *0 in RtlMoveVolatileMemory [Return] | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | +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 12dbf7d4cd23..f0df3e749e69 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 @@ -16,4 +16,5 @@ extensions: - ["", "", False, "ymlStepManual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["", "", False, "ymlStepGenerated", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["", "", False, "ymlStepManual_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["", "", False, "ymlStepGenerated_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] \ No newline at end of file + - ["", "", False, "ymlStepGenerated_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", False, "callWithArgument", "", "", "Argument[1]", "Argument[0].Parameter[0]", "value", "manual"] \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.ql b/cpp/ql/test/library-tests/dataflow/external-models/flow.ql index 7d41597c3b8e..8419248c70dc 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.ql +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.ql @@ -1,7 +1,7 @@ import utils.test.dataflow.FlowTestCommon import cpp import semmle.code.cpp.security.FlowSources -import IRTest::IRFlow::PathGraph +import codeql.dataflow.test.ProvenancePathGraph module IRTest { private import semmle.code.cpp.ir.IR @@ -33,3 +33,4 @@ module IRTest { } import MakeTest> +import ShowProvenance 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 2c2338a7dcc6..0cc01c8165e1 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected @@ -8,3 +8,8 @@ | test.cpp:29:10:29:11 | y3 | test-sink | | test.cpp:33:10:33:11 | z2 | test-sink | | test.cpp:36:10:36:11 | z3 | test-sink | +| test.cpp:48:16:48:16 | x | test-sink | +| test.cpp:69:11:69:11 | y | test-sink | +| test.cpp:75:11:75:11 | y | test-sink | +| test.cpp:83:11:83:11 | y | test-sink | +| test.cpp:89:11:89:11 | y | 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 8730083d0161..401fffdbd594 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -1,5 +1,7 @@ | asio_streams.cpp:87:34:87:44 | read_until output argument | 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 | | 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/test.cpp b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp index a0b12004074b..f357b934b2fb 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp @@ -35,3 +35,71 @@ void test() { int z3 = ymlStepGenerated_with_body(x, 0); ymlSink(z3); // clean } + +struct S { + int x; +}; + +using pthread_t = unsigned long; +using pthread_attr_t = void*; + +void *myThreadFunction(void *arg) { + S* s = (S *)arg; + ymlSink(s->x); // $ ir + return nullptr; +} + +int pthread_create(pthread_t *thread, const pthread_attr_t * attr, void *(*start_routine)(void*), void *arg); + +int test_pthread_create() { + S s; + s.x = ymlSource(); + + pthread_t threadId; + pthread_create(&threadId, nullptr, myThreadFunction, (void *)&s); +} + +template +void callWithArgument(F f, int x); + +struct StructWithOperatorCall_has_constructor { + StructWithOperatorCall_has_constructor(); + + void operator()(int y) { + ymlSink(y); // $ ir + } +}; + +struct StructWithOperatorCall_no_constructor { + void operator()(int y) { + ymlSink(y); // $ ir + } +}; + +struct StructWithOperatorCall_has_constructor_2 { + StructWithOperatorCall_has_constructor_2(); + + void operator()(int y) { + ymlSink(y); // $ ir + } +}; + +struct StructWithOperatorCall_no_constructor_2 { + void operator()(int y) { + ymlSink(y); // $ ir + } +}; + +void test_callWithArgument() { + int x = ymlSource(); + { + StructWithOperatorCall_has_constructor func; + callWithArgument(func, x); + } + { + StructWithOperatorCall_no_constructor func; + callWithArgument(func, x); + } + callWithArgument(StructWithOperatorCall_has_constructor_2(), x); + callWithArgument(StructWithOperatorCall_no_constructor_2(), x); +} \ No newline at end of file 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 8f06adc1826f..aeb2362ef339 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected @@ -16,10 +16,13 @@ | Dubious signature "(..(*)(..))" in summary model. | | Dubious signature "(..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | | Dubious signature "(..(*)(..),..(*)(..),..(*)(..),void *)" in summary model. | +| Dubious signature "(..(*)(..),const void *,unsigned int)" in summary model. | | Dubious signature "(..(*)(..),d2i_of_void *,BIO *,void **)" in summary model. | | Dubious signature "(..(*)(..),d2i_of_void *,FILE *,void **)" in summary model. | +| Dubious signature "(..(*)(..),int,char **,..(*)(..),..(*)(..),void *)" in summary model. | | Dubious signature "(..(*)(..),void *)" in summary model. | | Dubious signature "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)" in summary model. | +| Dubious signature "(..(*)(..),void *,void *,exit_function_list **)" in summary model. | | Dubious signature "(ACCESS_DESCRIPTION *)" in summary model. | | Dubious signature "(ACCESS_DESCRIPTION **,const unsigned char **,long)" in summary model. | | Dubious signature "(ADMISSIONS *)" in summary model. | @@ -401,6 +404,7 @@ | Dubious signature "(CERT *,const uint16_t *,size_t,int)" in summary model. | | Dubious signature "(CERTIFICATEPOLICIES *)" in summary model. | | Dubious signature "(CERTIFICATEPOLICIES **,const unsigned char **,long)" in summary model. | +| Dubious signature "(CHARMAP_DIR *)" in summary model. | | Dubious signature "(CMAC_CTX *)" in summary model. | | Dubious signature "(CMAC_CTX *,const CMAC_CTX *)" in summary model. | | Dubious signature "(CMAC_CTX *,const void *,size_t)" in summary model. | @@ -635,6 +639,10 @@ | Dubious signature "(DH_METHOD *,const char *)" in summary model. | | Dubious signature "(DH_METHOD *,int)" in summary model. | | Dubious signature "(DH_METHOD *,void *)" in summary model. | +| Dubious signature "(DIR *)" in summary model. | +| Dubious signature "(DIR *,dirent64 ***,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(DIR *,dirent64 *,dirent64 **)" in summary model. | +| Dubious signature "(DIR *,long)" in summary model. | | Dubious signature "(DIST_POINT *)" in summary model. | | Dubious signature "(DIST_POINT **,const unsigned char **,long)" in summary model. | | Dubious signature "(DIST_POINT_NAME *)" in summary model. | @@ -730,6 +738,7 @@ | Dubious signature "(ENGINE_TABLE **,ENGINE *)" in summary model. | | Dubious signature "(ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int)" in summary model. | | Dubious signature "(ENGINE_TABLE **,int,const char *,int)" in summary model. | +| Dubious signature "(ENTRY,ACTION,ENTRY **,hsearch_data *)" in summary model. | | Dubious signature "(ESS_CERT_ID *)" in summary model. | | Dubious signature "(ESS_CERT_ID **,const unsigned char **,long)" in summary model. | | Dubious signature "(ESS_CERT_ID_V2 *)" in summary model. | @@ -898,6 +907,10 @@ | Dubious signature "(EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *)" in summary model. | | Dubious signature "(EXTENDED_KEY_USAGE *)" in summary model. | | Dubious signature "(EXTENDED_KEY_USAGE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *)" in summary model. | +| Dubious signature "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *)" in summary model. | +| Dubious signature "(Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *)" in summary model. | +| Dubious signature "(Elf64_auxv_t *)" in summary model. | | Dubious signature "(FFC_PARAMS *,BIGNUM *)" in summary model. | | Dubious signature "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)" in summary model. | | Dubious signature "(FFC_PARAMS *,const DH_NAMED_GROUP *)" in summary model. | @@ -909,6 +922,7 @@ | Dubious signature "(FFC_PARAMS *,int)" in summary model. | | Dubious signature "(FFC_PARAMS *,unsigned int)" in summary model. | | Dubious signature "(FFC_PARAMS *,unsigned int,int)" in summary model. | +| Dubious signature "(FILE *)" in summary model. | | Dubious signature "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(FILE *,DH **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(FILE *,DSA **)" in summary model. | @@ -920,6 +934,8 @@ | Dubious signature "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(FILE *,EVP_PKEY **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)" in summary model. | | Dubious signature "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(FILE *,PKCS7 **)" in summary model. | | Dubious signature "(FILE *,PKCS7 **,pem_password_cb *,void *)" in summary model. | @@ -945,7 +961,16 @@ | Dubious signature "(FILE *,X509_REQ **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(FILE *,X509_SIG **)" in summary model. | | Dubious signature "(FILE *,X509_SIG **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,_IO_marker *,int)" in summary model. | +| Dubious signature "(FILE *,__FILE *,int)" in summary model. | +| Dubious signature "(FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(FILE *,__fpos_t *)" in summary model. | | Dubious signature "(FILE *,char **,char **,unsigned char **,long *)" in summary model. | +| Dubious signature "(FILE *,char *,char *,int)" in summary model. | +| Dubious signature "(FILE *,char *,size_t,int,int)" in summary model. | +| Dubious signature "(FILE *,char *,size_t,int,int,int *)" in summary model. | +| Dubious signature "(FILE *,char *,size_t,off64_t *)" in summary model. | +| Dubious signature "(FILE *,char *,ssize_t)" in summary model. | | Dubious signature "(FILE *,const ASN1_STRING *,unsigned long)" in summary model. | | Dubious signature "(FILE *,const CMS_ContentInfo *)" in summary model. | | Dubious signature "(FILE *,const DH *)" in summary model. | @@ -976,21 +1001,58 @@ | Dubious signature "(FILE *,const X509_PUBKEY *)" in summary model. | | Dubious signature "(FILE *,const X509_REQ *)" in summary model. | | Dubious signature "(FILE *,const X509_SIG *)" in summary model. | +| Dubious signature "(FILE *,const __fpos_t *)" in summary model. | +| Dubious signature "(FILE *,const char *,__gnuc_va_list,va_list,unsigned int)" in summary model. | +| Dubious signature "(FILE *,const char *,const char *)" in summary model. | | Dubious signature "(FILE *,const char *,const char *,const char *,...)" in summary model. | | Dubious signature "(FILE *,const char *,const char *,const char *,const char *const *)" in summary model. | | Dubious signature "(FILE *,const char *,const char *,const char *,const char *const *,size_t)" in summary model. | | Dubious signature "(FILE *,const char *,const char *,const char *,va_list)" in summary model. | +| Dubious signature "(FILE *,const char *,const char *,int)" in summary model. | +| Dubious signature "(FILE *,const char *,int,int,int,int)" in summary model. | +| Dubious signature "(FILE *,const char *,kw_hash_fct_t)" in summary model. | +| Dubious signature "(FILE *,const char *,size_t)" in summary model. | | Dubious signature "(FILE *,const char *,va_list)" in summary model. | +| Dubious signature "(FILE *,const char *,va_list,int *)" in summary model. | +| Dubious signature "(FILE *,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(FILE *,const mntent *)" in summary model. | +| Dubious signature "(FILE *,const printf_info *,const void *const *)" in summary model. | +| Dubious signature "(FILE *,const void *,size_t)" in summary model. | +| Dubious signature "(FILE *,const void *,ssize_t)" in summary model. | +| Dubious signature "(FILE *,const wchar_t *,va_list)" in summary model. | +| Dubious signature "(FILE *,const wchar_t *,va_list,unsigned int)" in summary model. | +| Dubious signature "(FILE *,group *,char *,size_t,group **)" in summary model. | | Dubious signature "(FILE *,int *)" in summary model. | +| Dubious signature "(FILE *,int)" in summary model. | | Dubious signature "(FILE *,int,char *)" in summary model. | +| Dubious signature "(FILE *,int,const char *,va_list)" in summary model. | +| Dubious signature "(FILE *,int,int,_IO_wide_data *,const _IO_jump_t *)" in summary model. | | Dubious signature "(FILE *,lemon *,char *,int *)" in summary model. | | Dubious signature "(FILE *,lemon *,int *,int)" in summary model. | +| Dubious signature "(FILE *,mntent *,char *,int)" in summary model. | +| Dubious signature "(FILE *,off64_t,int)" in summary model. | +| Dubious signature "(FILE *,off64_t,int,int)" in summary model. | +| Dubious signature "(FILE *,passwd *,char *,size_t,passwd **)" in summary model. | | Dubious signature "(FILE *,rule *)" in summary model. | | Dubious signature "(FILE *,rule *,int)" in summary model. | | Dubious signature "(FILE *,rule *,lemon *,int *)" in summary model. | +| Dubious signature "(FILE *,sgrp *,char *,size_t,sgrp **)" in summary model. | +| Dubious signature "(FILE *,size_t,size_t,ssize_t)" in summary model. | +| Dubious signature "(FILE *,spwd *,char *,size_t,spwd **)" in summary model. | | Dubious signature "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *)" in summary model. | | Dubious signature "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(FILE *,symbol *,lemon *,int *)" in summary model. | +| Dubious signature "(FILE *,void *,char *,size_t,nss_files_parse_line)" in summary model. | +| Dubious signature "(FILE *,void *,size_t)" in summary model. | +| Dubious signature "(FILE *,wchar_t *)" in summary model. | +| Dubious signature "(FILE *,wchar_t *,size_t,wchar_t *)" in summary model. | +| Dubious signature "(FILE *,wchar_t *,size_t,wint_t,int)" in summary model. | +| Dubious signature "(FILE *,wchar_t *,size_t,wint_t,int,wint_t *)" in summary model. | +| Dubious signature "(FILE *,wchar_t *,wchar_t *,int)" in summary model. | +| Dubious signature "(FILE *,wint_t)" in summary model. | +| Dubious signature "(FTS *)" in summary model. | +| Dubious signature "(FTS *,FTSENT *,int)" in summary model. | +| Dubious signature "(FTS *,int)" in summary model. | | Dubious signature "(FUNCTION *,DISPLAY_COLUMNS *)" in summary model. | | Dubious signature "(GCM128_CONTEXT *,const unsigned char *,size_t)" in summary model. | | Dubious signature "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)" in summary model. | @@ -1204,6 +1266,7 @@ | Dubious signature "(LPCTSTR,DWORD *,void *,ULONG *)" in summary model. | | Dubious signature "(LPCWSTR,IAtlStringMgr *)" in summary model. | | Dubious signature "(LPTSTR,LPCTSTR,DWORD *)" in summary model. | +| Dubious signature "(Lmid_t,const char *)" in summary model. | | Dubious signature "(MD4_CTX *,const unsigned char *)" in summary model. | | Dubious signature "(MD4_CTX *,const void *,size_t)" in summary model. | | Dubious signature "(MD5_CTX *,const void *,size_t)" in summary model. | @@ -2365,6 +2428,9 @@ | Dubious signature "(SharedEncoderDictionary *)" in summary model. | | Dubious signature "(SingleRequest *,Curl_easy *)" in summary model. | | Dubious signature "(StrAccum *,sqlite3_str *,const char *,...)" in summary model. | +| Dubious signature "(Strent *)" in summary model. | +| Dubious signature "(Strtab *,const char *,size_t)" in summary model. | +| Dubious signature "(Strtab *,size_t *)" in summary model. | | Dubious signature "(TLS_FEATURE *)" in summary model. | | Dubious signature "(TLS_RL_RECORD *,const unsigned char *)" in summary model. | | Dubious signature "(TS_ACCURACY *)" in summary model. | @@ -2679,14 +2745,122 @@ | Dubious signature "(X509_VERIFY_PARAM *,unsigned long)" in summary model. | | Dubious signature "(XCHAR *,const XCHAR *,int)" in summary model. | | Dubious signature "(XCHAR *,size_t,const XCHAR *,int)" in summary model. | +| Dubious signature "(XDR *,FILE *,xdr_op)" in summary model. | +| Dubious signature "(XDR *,bool_t *)" in summary model. | +| Dubious signature "(XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t)" in summary model. | +| Dubious signature "(XDR *,caddr_t *,u_int,xdrproc_t)" in summary model. | +| Dubious signature "(XDR *,char *)" in summary model. | +| Dubious signature "(XDR *,char **)" in summary model. | +| Dubious signature "(XDR *,char **,u_int *,u_int)" in summary model. | +| Dubious signature "(XDR *,char **,u_int)" in summary model. | +| Dubious signature "(XDR *,char **,u_int,xdrproc_t)" in summary model. | +| Dubious signature "(XDR *,const caddr_t,u_int,xdr_op)" in summary model. | +| Dubious signature "(XDR *,domainname *)" in summary model. | +| Dubious signature "(XDR *,enum_t *)" in summary model. | +| Dubious signature "(XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t)" in summary model. | +| Dubious signature "(XDR *,float *)" in summary model. | +| Dubious signature "(XDR *,int8_t *)" in summary model. | +| Dubious signature "(XDR *,int16_t *)" in summary model. | +| Dubious signature "(XDR *,int64_t *)" in summary model. | +| Dubious signature "(XDR *,int *)" in summary model. | +| Dubious signature "(XDR *,keystatus *)" in summary model. | +| Dubious signature "(XDR *,long *)" in summary model. | +| Dubious signature "(XDR *,mapname *)" in summary model. | +| Dubious signature "(XDR *,netnamestr *)" in summary model. | +| Dubious signature "(XDR *,nis_error *)" in summary model. | +| Dubious signature "(XDR *,nis_name *)" in summary model. | +| Dubious signature "(XDR *,obj_p *)" in summary model. | +| Dubious signature "(XDR *,peername *)" in summary model. | +| Dubious signature "(XDR *,pmaplist **)" in summary model. | +| Dubious signature "(XDR *,quad_t *)" in summary model. | +| Dubious signature "(XDR *,short *)" in summary model. | +| Dubious signature "(XDR *,u_char *)" in summary model. | +| Dubious signature "(XDR *,u_int *)" in summary model. | +| Dubious signature "(XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(XDR *,u_long *)" in summary model. | +| Dubious signature "(XDR *,u_quad_t *)" in summary model. | +| Dubious signature "(XDR *,u_short *)" in summary model. | +| Dubious signature "(XDR *,uint8_t *)" in summary model. | +| Dubious signature "(XDR *,uint16_t *)" in summary model. | +| Dubious signature "(XDR *,uint64_t *)" in summary model. | +| Dubious signature "(XDR *,ypbind_resptype *)" in summary model. | +| Dubious signature "(XDR *,yppush_status *)" in summary model. | +| Dubious signature "(XDR *,ypstat *)" in summary model. | +| Dubious signature "(XDR *,ypxfrstat *)" in summary model. | +| Dubious signature "(_Float128 *,_Float128)" in summary model. | +| Dubious signature "(_Float128 *,const _Float128 *)" in summary model. | +| Dubious signature "(_Float128,_Float128 *)" in summary model. | +| Dubious signature "(_Float128,_Float128 *,_Float128 *)" in summary model. | +| Dubious signature "(_Float128,_Float128,_Float128 *,_Float128 *,int)" in summary model. | +| Dubious signature "(_Float128,_Float128,int *)" in summary model. | +| Dubious signature "(_Float128,_Float128,int,_Float128 *)" in summary model. | +| Dubious signature "(_Float128,int *)" in summary model. | +| Dubious signature "(_Float128,int,unsigned int)" in summary model. | +| Dubious signature "(_Float128,long double)" in summary model. | +| Dubious signature "(_Float128,long long)" in summary model. | +| Dubious signature "(_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **)" in summary model. | +| Dubious signature "(_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t)" in summary model. | +| Dubious signature "(_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **)" in summary model. | +| Dubious signature "(_IO_cookie_file *,int,void *,cookie_io_functions_t)" in summary model. | +| Dubious signature "(_IO_marker *)" in summary model. | +| Dubious signature "(_IO_marker *,FILE *)" in summary model. | +| Dubious signature "(_IO_marker *,_IO_marker *)" in summary model. | +| Dubious signature "(_IO_strfile *,_IO_strfile_ *,char *,size_t,char *)" in summary model. | +| Dubious signature "(_IO_strfile *,char *,int,char *)" in summary model. | +| Dubious signature "(_IO_strfile *,const char *,int)" in summary model. | +| Dubious signature "(__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int)" in summary model. | +| Dubious signature "(__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(__gconv_step *,size_t)" in summary model. | +| Dubious signature "(__gconv_step *,unsigned char)" in summary model. | +| Dubious signature "(__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *)" in summary model. | +| Dubious signature "(__gid_t,gid_t,group *,char *,size_t,group **)" in summary model. | +| Dubious signature "(__gid_t,gid_t,group *,char *,size_t,int *)" in summary model. | +| Dubious signature "(__netgrent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(__printf_buffer *,char)" in summary model. | +| Dubious signature "(__printf_buffer *,char,size_t)" in summary model. | +| Dubious signature "(__printf_buffer *,const char *)" in summary model. | +| Dubious signature "(__printf_buffer *,const char *,size_t)" in summary model. | +| Dubious signature "(__printf_buffer *,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(__printf_buffer *,locale_t,const printf_info *,const void *const *)" in summary model. | +| Dubious signature "(__printf_buffer_as_file *)" in summary model. | +| Dubious signature "(__printf_buffer_as_file *,__printf_buffer *)" in summary model. | +| Dubious signature "(__printf_buffer_snprintf *,char *,size_t)" in summary model. | +| Dubious signature "(__printf_buffer_to_file *,FILE *)" in summary model. | +| Dubious signature "(__res_state *)" in summary model. | +| Dubious signature "(__res_state *,file_change_detection *)" in summary model. | +| Dubious signature "(__res_state *,resolv_conf *)" in summary model. | +| Dubious signature "(__sigset_t *,int)" in summary model. | +| Dubious signature "(__uid_t,uid_t,passwd *,char *,size_t,int *)" in summary model. | +| Dubious signature "(__uid_t,uid_t,passwd *,char *,size_t,passwd **)" in summary model. | +| Dubious signature "(__wprintf_buffer *,const wchar_t *)" in summary model. | +| Dubious signature "(__wprintf_buffer *,const wchar_t *,size_t)" in summary model. | +| Dubious signature "(__wprintf_buffer *,const wchar_t *,va_list,unsigned int)" in summary model. | +| Dubious signature "(__wprintf_buffer *,wchar_t)" in summary model. | +| Dubious signature "(__wprintf_buffer *,wchar_t,size_t)" in summary model. | +| Dubious signature "(__wprintf_buffer_as_file *)" in summary model. | +| Dubious signature "(__wprintf_buffer_as_file *,__wprintf_buffer *)" in summary model. | +| Dubious signature "(__wprintf_buffer_to_file *,FILE *)" in summary model. | +| Dubious signature "(_pthread_cleanup_buffer *,..(*)(..),void *)" in summary model. | | Dubious signature "(action **,e_action,symbol *,char *)" in summary model. | | Dubious signature "(action *,FILE *,int)" in summary model. | | Dubious signature "(acttab *)" in summary model. | | Dubious signature "(acttab *,int)" in summary model. | | Dubious signature "(acttab *,int,int)" in summary model. | +| Dubious signature "(addrinfo *)" in summary model. | +| Dubious signature "(addrinfo *,int)" in summary model. | +| Dubious signature "(aiocb *)" in summary model. | +| Dubious signature "(aiocb_union *,int)" in summary model. | +| Dubious signature "(aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)" in summary model. | +| Dubious signature "(aliasent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(alloc_buffer *,size_t,size_t,size_t)" in summary model. | +| Dubious signature "(alloc_buffer,const char *)" in summary model. | +| Dubious signature "(alloc_buffer,const void *,size_t)" in summary model. | | Dubious signature "(alpn_proto_buf *,const alpn_spec *)" in summary model. | | Dubious signature "(altsvcinfo **)" in summary model. | | Dubious signature "(altsvcinfo *,const long)" in summary model. | +| Dubious signature "(argp_fmtstream *,argp_fmtstream_t,size_t)" in summary model. | +| Dubious signature "(argp_fmtstream_t,const char *)" in summary model. | +| Dubious signature "(argp_fmtstream_t,const char *,size_t)" in summary model. | | Dubious signature "(brotli_alloc_func,brotli_free_func,void *)" in summary model. | | Dubious signature "(bufc_pool *,size_t,size_t)" in summary model. | | Dubious signature "(bufq *,Curl_bufq_reader *,void *,CURLcode *)" in summary model. | @@ -2711,38 +2885,114 @@ | Dubious signature "(chachapoly_ctx *,const u_char *,u_int)" in summary model. | | Dubious signature "(chachapoly_ctx *,u_int,u_char *,const u_char *,u_int,u_int,int)" in summary model. | | Dubious signature "(chachapoly_ctx *,unsigned int *,unsigned int,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)" in summary model. | +| Dubious signature "(char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)" in summary model. | | Dubious signature "(char *)" in summary model. | | Dubious signature "(char **)" in summary model. | +| Dubious signature "(char ***)" in summary model. | | Dubious signature "(char **,Curl_str *,const size_t)" in summary model. | | Dubious signature "(char **,Curl_str *,const size_t,char)" in summary model. | | Dubious signature "(char **,URLGlob *)" in summary model. | +| Dubious signature "(char **,__netgrent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(char **,char **,char **,__netgrent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(char **,char **,ib_request *,dir_binding *)" in summary model. | +| Dubious signature "(char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int)" in summary model. | +| Dubious signature "(char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t)" in summary model. | +| Dubious signature "(char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t)" in summary model. | | Dubious signature "(char **,char *,URLGlob *)" in summary model. | | Dubious signature "(char **,char)" in summary model. | +| Dubious signature "(char **,char,char)" in summary model. | +| Dubious signature "(char **,char,char,char)" in summary model. | | Dubious signature "(char **,const char *)" in summary model. | +| Dubious signature "(char **,const char *,...)" in summary model. | +| Dubious signature "(char **,const char *,va_list)" in summary model. | +| Dubious signature "(char **,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(char **,int)" in summary model. | +| Dubious signature "(char **,int,const char *,...)" in summary model. | +| Dubious signature "(char **,int,const char *,__gnuc_va_list,va_list)" in summary model. | | Dubious signature "(char **,s_options *,FILE *)" in summary model. | +| Dubious signature "(char **,size_t *)" in summary model. | +| Dubious signature "(char **,size_t *,FILE *)" in summary model. | +| Dubious signature "(char **,size_t *,const char *)" in summary model. | +| Dubious signature "(char **,size_t *,const char *,const char *)" in summary model. | +| Dubious signature "(char **,size_t *,const char *,size_t,int)" in summary model. | | Dubious signature "(char **,size_t *,size_t)" in summary model. | | Dubious signature "(char *,EVP_CIPHER_INFO *)" in summary model. | | Dubious signature "(char *,FILE *,FILE *,int *)" in summary model. | +| Dubious signature "(char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)" in summary model. | +| Dubious signature "(char *,char16_t,mbstate_t *)" in summary model. | +| Dubious signature "(char *,char *)" in summary model. | +| Dubious signature "(char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__)" in summary model. | +| Dubious signature "(char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__)" in summary model. | +| Dubious signature "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)" in summary model. | +| Dubious signature "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)" in summary model. | +| Dubious signature "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *)" in summary model. | +| Dubious signature "(char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)" in summary model. | +| Dubious signature "(char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)" in summary model. | +| Dubious signature "(char *,char *__restrict__,int,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t)" in summary model. | +| Dubious signature "(char *,char,char **)" in summary model. | +| Dubious signature "(char *,const char *)" in summary model. | +| Dubious signature "(char *,const char **,const char **,const char **,const char **,const char **)" in summary model. | | Dubious signature "(char *,const char *,char **)" in summary model. | | Dubious signature "(char *,const char *,const char *,X509_VERIFY_PARAM *)" in summary model. | | Dubious signature "(char *,const char *,int,const char *)" in summary model. | +| Dubious signature "(char *,const char *,int,link_map *,int,Lmid_t)" in summary model. | | Dubious signature "(char *,const char *,size_t)" in summary model. | +| Dubious signature "(char *,const char *,size_t,locale_t)" in summary model. | | Dubious signature "(char *,const char *,va_list)" in summary model. | +| Dubious signature "(char *,const wchar_t *,size_t,size_t)" in summary model. | +| Dubious signature "(char *,des_block *)" in summary model. | | Dubious signature "(char *,int)" in summary model. | +| Dubious signature "(char *,int,FILE *)" in summary model. | | Dubious signature "(char *,int,const ASN1_OBJECT *)" in summary model. | | Dubious signature "(char *,int,const ASN1_OBJECT *,int)" in summary model. | | Dubious signature "(char *,int,int,void *)" in summary model. | +| Dubious signature "(char *,int,size_t,const char *,va_list)" in summary model. | +| Dubious signature "(char *,netobj *,des_block *)" in summary model. | +| Dubious signature "(char *,random_data *)" in summary model. | | Dubious signature "(char *,size_t *)" in summary model. | | Dubious signature "(char *,size_t)" in summary model. | | Dubious signature "(char *,size_t,const char *,...)" in summary model. | +| Dubious signature "(char *,size_t,const char *,_Float128)" in summary model. | +| Dubious signature "(char *,size_t,const char *,const char *,bool)" in summary model. | +| Dubious signature "(char *,size_t,const char *,double)" in summary model. | +| Dubious signature "(char *,size_t,const char *,float)" in summary model. | +| Dubious signature "(char *,size_t,const char *,long double)" in summary model. | | Dubious signature "(char *,size_t,const char *,va_list)" in summary model. | +| Dubious signature "(char *,size_t,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(char *,size_t,int)" in summary model. | +| Dubious signature "(char *,size_t,int,FILE *)" in summary model. | +| Dubious signature "(char *,size_t,int,size_t,const char *,...)" in summary model. | +| Dubious signature "(char *,size_t,int,size_t,const char *,va_list)" in summary model. | +| Dubious signature "(char *,size_t,locale_t,const char *,...)" in summary model. | +| Dubious signature "(char *,size_t,locale_t,const char *,va_list,unsigned int)" in summary model. | | Dubious signature "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)" in summary model. | | Dubious signature "(char *,size_t,size_t *,const OSSL_PARAM[],void *)" in summary model. | | Dubious signature "(char *,size_t,size_t *,const unsigned char *,size_t,const char)" in summary model. | +| Dubious signature "(char *,size_t,size_t)" in summary model. | | Dubious signature "(char *,size_t,size_t,void *)" in summary model. | | Dubious signature "(char *,uint8_t)" in summary model. | | Dubious signature "(char *,unsigned int)" in summary model. | +| Dubious signature "(char *,void *,parser_data *,size_t,int *)" in summary model. | +| Dubious signature "(char *__restrict__,const char *__restrict__,size_t)" in summary model. | +| Dubious signature "(char *__restrict__,const char *__restrict__,size_t,size_t)" in summary model. | +| Dubious signature "(char *const *,int,..(*)(..))" in summary model. | +| Dubious signature "(char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__)" in summary model. | | Dubious signature "(char,const CStringT &)" in summary model. | +| Dubious signature "(char[256],const char *,const char *)" in summary model. | +| Dubious signature "(char[256],const uid_t,const char *)" in summary model. | +| Dubious signature "(cmsghdr *,const uint8_t *,int,int)" in summary model. | +| Dubious signature "(cmsghdr *,int,int,int)" in summary model. | | Dubious signature "(codetype,unsigned short *,unsigned int,code **,unsigned int *,unsigned short *)" in summary model. | | Dubious signature "(config *)" in summary model. | | Dubious signature "(config *,config *)" in summary model. | @@ -3551,12 +3801,19 @@ | Dubious signature "(const YCHAR *)" in summary model. | | Dubious signature "(const YCHAR *,int)" in summary model. | | Dubious signature "(const YCHAR *,int,IAtlStringMgr *)" in summary model. | +| Dubious signature "(const _Float128 *)" in summary model. | +| Dubious signature "(const aiocb *)" in summary model. | +| Dubious signature "(const aiocb *const[],int,const timespec *)" in summary model. | +| Dubious signature "(const argp_state *,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(const argp_state *,int,int,const char *,va_list,unsigned int)" in summary model. | | Dubious signature "(const bufq *)" in summary model. | | Dubious signature "(const bufref *)" in summary model. | | Dubious signature "(const char *)" in summary model. | | Dubious signature "(const char **)" in summary model. | +| Dubious signature "(const char **,__locale_data *)" in summary model. | | Dubious signature "(const char **,char **,const char *)" in summary model. | | Dubious signature "(const char **,const char *)" in summary model. | +| Dubious signature "(const char **,const char **,bool *,..(*)(..),void *)" in summary model. | | Dubious signature "(const char **,int *)" in summary model. | | Dubious signature "(const char **,int *,const char **,const char **,int *)" in summary model. | | Dubious signature "(const char **,int *,const char **,int *)" in summary model. | @@ -3573,36 +3830,54 @@ | Dubious signature "(const char *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)" in summary model. | | Dubious signature "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *)" in summary model. | +| Dubious signature "(const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *)" in summary model. | +| Dubious signature "(const char *,__gnuc_va_list)" in summary model. | +| Dubious signature "(const char *,__gnuc_va_list,unsigned int)" in summary model. | +| Dubious signature "(const char *,__netgrent *)" in summary model. | +| Dubious signature "(const char *,addrinfo *,int,const char *)" in summary model. | +| Dubious signature "(const char *,aliasent *,char *,size_t,int *)" in summary model. | | Dubious signature "(const char *,bufref *)" in summary model. | | Dubious signature "(const char *,char *)" in summary model. | +| Dubious signature "(const char *,char **)" in summary model. | | Dubious signature "(const char *,char **,char **,BIO_hostserv_priorities)" in summary model. | | Dubious signature "(const char *,char **,char **,char **)" in summary model. | | Dubious signature "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)" in summary model. | +| Dubious signature "(const char *,char **,char)" in summary model. | | Dubious signature "(const char *,char **,int)" in summary model. | | Dubious signature "(const char *,char **,int,curl_off_t *)" in summary model. | | Dubious signature "(const char *,char **,int,unsigned long *)" in summary model. | | Dubious signature "(const char *,char **,size_t)" in summary model. | | Dubious signature "(const char *,char *,char *,bool *,GlobalConfig *,OperationConfig *)" in summary model. | | Dubious signature "(const char *,char *,char *,const char **)" in summary model. | +| Dubious signature "(const char *,char *,const char *,binding *)" in summary model. | +| Dubious signature "(const char *,char *,const int)" in summary model. | | Dubious signature "(const char *,char *,size_t *)" in summary model. | | Dubious signature "(const char *,char *,size_t)" in summary model. | | Dubious signature "(const char *,char *,size_t,bool)" in summary model. | +| Dubious signature "(const char *,char *,size_t,char **,int *,int *)" in summary model. | | Dubious signature "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)" in summary model. | | Dubious signature "(const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *)" in summary model. | | Dubious signature "(const char *,const OPT_PAIR *,int *)" in summary model. | | Dubious signature "(const char *,const OSSL_PARAM *,int)" in summary model. | | Dubious signature "(const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *)" in summary model. | | Dubious signature "(const char *,const char *)" in summary model. | +| Dubious signature "(const char *,const char **,const char **)" in summary model. | | Dubious signature "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *)" in summary model. | | Dubious signature "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)" in summary model. | | Dubious signature "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int)" in summary model. | | Dubious signature "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *)" in summary model. | +| Dubious signature "(const char *,const char *,FILE *)" in summary model. | +| Dubious signature "(const char *,const char *,__gconv_step **,size_t *,int)" in summary model. | +| Dubious signature "(const char *,const char *,__gnuc_va_list,va_list)" in summary model. | | Dubious signature "(const char *,const char *,char *)" in summary model. | +| Dubious signature "(const char *,const char *,char **)" in summary model. | | Dubious signature "(const char *,const char *,char **,char **)" in summary model. | | Dubious signature "(const char *,const char *,char **,char **,const char *,const char *)" in summary model. | | Dubious signature "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,const char *,char **,int *,char **,int *)" in summary model. | | Dubious signature "(const char *,const char *,char **,int)" in summary model. | | Dubious signature "(const char *,const char *,char *,char *)" in summary model. | | Dubious signature "(const char *,const char *,const BIGNUM *,ASN1_INTEGER **)" in summary model. | @@ -3610,49 +3885,131 @@ | Dubious signature "(const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *)" in summary model. | | Dubious signature "(const char *,const char *,const char *,bool,iconv_ilseq_handler)" in summary model. | | Dubious signature "(const char *,const char *,const char *,bufref *)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,const char *)" in summary model. | | Dubious signature "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)" in summary model. | | Dubious signature "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,const int,char **,int *)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,const int,char **,int *,char **,int *)" in summary model. | | Dubious signature "(const char *,const char *,const char *,iconv_ilseq_handler)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *)" in summary model. | | Dubious signature "(const char *,const char *,const char *,int)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,int,unsigned long,int)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,unsigned long)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,unsigned long,int)" in summary model. | +| Dubious signature "(const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *)" in summary model. | +| Dubious signature "(const char *,const char *,int *)" in summary model. | +| Dubious signature "(const char *,const char *,int *,unsigned int *,char **,void *,size_t)" in summary model. | | Dubious signature "(const char *,const char *,int)" in summary model. | | Dubious signature "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)" in summary model. | +| Dubious signature "(const char *,const char *,int,int,unsigned char *,int)" in summary model. | +| Dubious signature "(const char *,const char *,locale_t)" in summary model. | +| Dubious signature "(const char *,const char *,servent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,const char *,servent *,char *,size_t,servent **)" in summary model. | +| Dubious signature "(const char *,const char *,size_t *)" in summary model. | +| Dubious signature "(const char *,const char *,size_t *,size_t *)" in summary model. | | Dubious signature "(const char *,const char *,size_t)" in summary model. | +| Dubious signature "(const char *,const char *,size_t,locale_t)" in summary model. | | Dubious signature "(const char *,const char *,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,const char *,tm *,void *,locale_t)" in summary model. | | Dubious signature "(const char *,const char *,unsigned int)" in summary model. | +| Dubious signature "(const char *,const char *,unsigned long)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,char **,char **__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,char **,char **__restrict__,int)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,char **,char **__restrict__,int,int)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,char **,char **__restrict__,locale_t)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,size_t,char **,char **__restrict__)" in summary model. | +| Dubious signature "(const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__)" in summary model. | +| Dubious signature "(const char *,const expression **,unsigned long *)" in summary model. | | Dubious signature "(const char *,const size_t,char **,char **,char **)" in summary model. | | Dubious signature "(const char *,const size_t,unsigned int *,unsigned int *)" in summary model. | | Dubious signature "(const char *,const time_t *)" in summary model. | | Dubious signature "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)" in summary model. | | Dubious signature "(const char *,const unsigned char *,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,database_dyn[5])" in summary model. | +| Dubious signature "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int)" in summary model. | +| Dubious signature "(const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int)" in summary model. | | Dubious signature "(const char *,digestdata *)" in summary model. | | Dubious signature "(const char *,double *)" in summary model. | +| Dubious signature "(const char *,ether_addr *)" in summary model. | +| Dubious signature "(const char *,ether_addr *,char *)" in summary model. | +| Dubious signature "(const char *,etherent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *)" in summary model. | +| Dubious signature "(const char *,gid_t,long *,gid_t **,long)" in summary model. | +| Dubious signature "(const char *,group *,char *,size_t,group **)" in summary model. | +| Dubious signature "(const char *,group *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)" in summary model. | +| Dubious signature "(const char *,hostent *,char *,size_t,hostent **,int *)" in summary model. | +| Dubious signature "(const char *,hostent *,char *,size_t,int *,int *)" in summary model. | | Dubious signature "(const char *,int32_t *)" in summary model. | | Dubious signature "(const char *,int64_t *)" in summary model. | | Dubious signature "(const char *,int *)" in summary model. | | Dubious signature "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)" in summary model. | | Dubious signature "(const char *,int)" in summary model. | +| Dubious signature "(const char *,int,..(*)(..),glob_t *)" in summary model. | | Dubious signature "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *)" in summary model. | | Dubious signature "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,int,const void *,Lmid_t,int,char *[],char *[])" in summary model. | +| Dubious signature "(const char *,int,hostent *,char *,size_t,hostent **,int *)" in summary model. | +| Dubious signature "(const char *,int,hostent *,char *,size_t,int *,int *)" in summary model. | +| Dubious signature "(const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **)" in summary model. | +| Dubious signature "(const char *,int,int)" in summary model. | | Dubious signature "(const char *,int,int,..(*)(..),void *)" in summary model. | | Dubious signature "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)" in summary model. | | Dubious signature "(const char *,int,int,int)" in summary model. | +| Dubious signature "(const char *,int,int,unsigned char *,int)" in summary model. | | Dubious signature "(const char *,int,long)" in summary model. | +| Dubious signature "(const char *,int,sem_t *)" in summary model. | | Dubious signature "(const char *,int,stack_st_CONF_VALUE **)" in summary model. | | Dubious signature "(const char *,int,stack_st_OPENSSL_STRING *,const char *)" in summary model. | | Dubious signature "(const char *,int,stack_st_X509 **,const char *,const char *)" in summary model. | | Dubious signature "(const char *,int,unsigned char **,int *)" in summary model. | +| Dubious signature "(const char *,int,void *,void *)" in summary model. | +| Dubious signature "(const char *,kw_hash_fct_t)" in summary model. | +| Dubious signature "(const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *)" in summary model. | +| Dubious signature "(const char *,link_map *,unsigned int)" in summary model. | | Dubious signature "(const char *,long *)" in summary model. | | Dubious signature "(const char *,long *,char *)" in summary model. | | Dubious signature "(const char *,long *,int)" in summary model. | +| Dubious signature "(const char *,netent *,char *,size_t,int *,int *)" in summary model. | +| Dubious signature "(const char *,netobj *,u_int,sockaddr *,des_block *)" in summary model. | +| Dubious signature "(const char *,passwd *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,passwd *,char *,size_t,passwd **)" in summary model. | +| Dubious signature "(const char *,protoent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,rpcent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,rpcent *,char *,size_t,rpcent **)" in summary model. | +| Dubious signature "(const char *,sgrp *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,sgrp *,char *,size_t,sgrp **)" in summary model. | | Dubious signature "(const char *,size_t *)" in summary model. | +| Dubious signature "(const char *,size_t *,int)" in summary model. | | Dubious signature "(const char *,size_t)" in summary model. | | Dubious signature "(const char *,size_t,char **,size_t *,urlreject)" in summary model. | +| Dubious signature "(const char *,size_t,const char *)" in summary model. | | Dubious signature "(const char *,size_t,const char *,const char *,bool,iconv_ilseq_handler,size_t *,char **,size_t *)" in summary model. | | Dubious signature "(const char *,size_t,const char *,const char *,iconv_ilseq_handler,size_t *,char **,size_t *)" in summary model. | | Dubious signature "(const char *,size_t,const char *,int)" in summary model. | | Dubious signature "(const char *,size_t,const iconveh_t *,iconv_ilseq_handler,size_t *,char **,size_t *)" in summary model. | | Dubious signature "(const char *,size_t,dynbuf *,bool)" in summary model. | +| Dubious signature "(const char *,size_t,int,const char **)" in summary model. | | Dubious signature "(const char *,size_t,uint32_t *,size_t *)" in summary model. | +| Dubious signature "(const char *,size_t,void *)" in summary model. | +| Dubious signature "(const char *,sockaddr_in *)" in summary model. | +| Dubious signature "(const char *,spwd *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const char *,spwd *,char *,size_t,spwd **)" in summary model. | | Dubious signature "(const char *,sqlite3 **,int,const char *)" in summary model. | | Dubious signature "(const char *,sqlite3_filename)" in summary model. | | Dubious signature "(const char *,sqlite3_filename,const char *)" in summary model. | @@ -3660,9 +4017,17 @@ | Dubious signature "(const char *,sqlite3_filename,const char *,sqlite3_int64)" in summary model. | | Dubious signature "(const char *,sqlite3_filename,int)" in summary model. | | Dubious signature "(const char *,stack_st_X509_CRL **,const char *,const char *)" in summary model. | +| Dubious signature "(const char *,statvfs64 *)" in summary model. | | Dubious signature "(const char *,time_t *)" in summary model. | +| Dubious signature "(const char *,tm *)" in summary model. | +| Dubious signature "(const char *,u_char *,unsigned char *)" in summary model. | +| Dubious signature "(const char *,u_char *,unsigned char *,int)" in summary model. | +| Dubious signature "(const char *,u_char *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(const char *,u_int,sockaddr *,des_block *)" in summary model. | +| Dubious signature "(const char *,u_long *,unsigned long *)" in summary model. | | Dubious signature "(const char *,uint16_t *,size_t)" in summary model. | | Dubious signature "(const char *,uint32_t *)" in summary model. | +| Dubious signature "(const char *,uint32_t)" in summary model. | | Dubious signature "(const char *,uint64_t *)" in summary model. | | Dubious signature "(const char *,unsigned char *)" in summary model. | | Dubious signature "(const char *,unsigned char *,size_t)" in summary model. | @@ -3671,32 +4036,98 @@ | Dubious signature "(const char *,va_list)" in summary model. | | Dubious signature "(const char *,void *)" in summary model. | | Dubious signature "(const char *,void **,size_t)" in summary model. | +| Dubious signature "(const char *,void *,int)" in summary model. | | Dubious signature "(const char *,void *,size_t)" in summary model. | +| Dubious signature "(const char *,wordexp_t *,int)" in summary model. | +| Dubious signature "(const char *__restrict__,size_t,mbstate_t *__restrict__)" in summary model. | | Dubious signature "(const char *const *,const char *const *)" in summary model. | +| Dubious signature "(const charmap_t *,const char *,size_t)" in summary model. | +| Dubious signature "(const cmsghdr *,uint8_t **)" in summary model. | +| Dubious signature "(const cmsghdr *,uint8_t **,int)" in summary model. | | Dubious signature "(const curl_easyoption *)" in summary model. | | Dubious signature "(const curve448_point_t)" in summary model. | | Dubious signature "(const custom_ext_methods *,ENDPOINT,unsigned int,size_t *)" in summary model. | | Dubious signature "(const deque &)" in summary model. | | Dubious signature "(const deque &,const Allocator &)" in summary model. | +| Dubious signature "(const directory_obj *,directory_obj *)" in summary model. | +| Dubious signature "(const dirent64 **,const dirent64 **)" in summary model. | +| Dubious signature "(const double *)" in summary model. | | Dubious signature "(const dynbuf *)" in summary model. | +| Dubious signature "(const ether_addr *)" in summary model. | +| Dubious signature "(const ether_addr *,char *)" in summary model. | +| Dubious signature "(const ether_addr *,etherent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const float *)" in summary model. | | Dubious signature "(const forward_list &)" in summary model. | | Dubious signature "(const forward_list &,const Allocator &)" in summary model. | +| Dubious signature "(const gaicb *const[],int,const timespec *)" in summary model. | | Dubious signature "(const gf)" in summary model. | | Dubious signature "(const gf,const gf)" in summary model. | +| Dubious signature "(const glibc_hwcaps_subdirectory *)" in summary model. | +| Dubious signature "(const group *,const group *__restrict__,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(const group,const size_t,group *,char *,char **)" in summary model. | +| Dubious signature "(const hash_table *,const void *,size_t,void **)" in summary model. | +| Dubious signature "(const hash_table *,void **,const void **,size_t *,void **)" in summary model. | +| Dubious signature "(const int)" in summary model. | +| Dubious signature "(const int,int,const char *,servent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(const int,int,protoent *,char *,size_t,int *)" in summary model. | | Dubious signature "(const int[],BIGNUM *)" in summary model. | | Dubious signature "(const int_dhx942_dh *,unsigned char **)" in summary model. | | Dubious signature "(const list &)" in summary model. | | Dubious signature "(const list &,const Allocator &)" in summary model. | +| Dubious signature "(const long double *)" in summary model. | +| Dubious signature "(const md5_ctx *,void *)" in summary model. | +| Dubious signature "(const mntent *,const char *)" in summary model. | | Dubious signature "(const nghttp2_extpri *)" in summary model. | | Dubious signature "(const nghttp2_map *)" in summary model. | | Dubious signature "(const nghttp2_map *,..(*)(..),void *)" in summary model. | | Dubious signature "(const nghttp2_map *,nghttp2_map_key_type)" in summary model. | | Dubious signature "(const nghttp2_nv *,const nghttp2_nv *)" in summary model. | | Dubious signature "(const nghttp2_settings_entry *,size_t,nghttp2_mem *)" in summary model. | +| Dubious signature "(const nis_error)" in summary model. | +| Dubious signature "(const nis_error,const char *)" in summary model. | +| Dubious signature "(const nis_error,const char *,char *,size_t)" in summary model. | +| Dubious signature "(const nis_object *,nis_object *)" in summary model. | +| Dubious signature "(const nis_result *)" in summary model. | +| Dubious signature "(const nis_result *,nis_result *)" in summary model. | +| Dubious signature "(const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t)" in summary model. | +| Dubious signature "(const old_termios_t *)" in summary model. | +| Dubious signature "(const passwd *,const passwd *__restrict__,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,pid_t *,pid_t *__restrict__)" in summary model. | +| Dubious signature "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sched_param *,sched_param *__restrict__)" in summary model. | +| Dubious signature "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,short *,short *__restrict__)" in summary model. | +| Dubious signature "(const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__)" in summary model. | +| Dubious signature "(const pthread_attr_t *)" in summary model. | +| Dubious signature "(const pthread_attr_t *,__sigset_t *,sigset_t *)" in summary model. | +| Dubious signature "(const pthread_attr_t *,const pthread_attr_t *__restrict__,size_t *,size_t *__restrict__)" in summary model. | +| Dubious signature "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__)" in summary model. | +| Dubious signature "(const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__)" in summary model. | +| Dubious signature "(const pthread_attr_t *,cpu_set_t *)" in summary model. | +| Dubious signature "(const pthread_attr_t *,int *)" in summary model. | +| Dubious signature "(const pthread_attr_t *,sched_param *)" in summary model. | +| Dubious signature "(const pthread_attr_t *,size_t *)" in summary model. | +| Dubious signature "(const pthread_attr_t *,size_t,cpu_set_t *)" in summary model. | +| Dubious signature "(const pthread_barrierattr_t *,int *)" in summary model. | +| Dubious signature "(const pthread_condattr_t *,clockid_t *)" in summary model. | +| Dubious signature "(const pthread_mutex_t *,int *)" in summary model. | +| Dubious signature "(const pthread_mutexattr_t *,int *)" in summary model. | +| Dubious signature "(const pthread_rwlockattr_t *,int *)" in summary model. | +| Dubious signature "(const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int)" in summary model. | +| Dubious signature "(const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int)" in summary model. | +| Dubious signature "(const repertoire_t *,const char *,size_t)" in summary model. | +| Dubious signature "(const repertoire_t *,uint32_t)" in summary model. | +| Dubious signature "(const res_state,res_state,const char *,char *,size_t)" in summary model. | +| Dubious signature "(const res_sym *,const char *,int *)" in summary model. | +| Dubious signature "(const res_sym *,int,int *)" in summary model. | +| Dubious signature "(const resolv_conf *)" in summary model. | +| Dubious signature "(const resolv_response_context *)" in summary model. | +| Dubious signature "(const sgrp *,FILE *)" in summary model. | | Dubious signature "(const size_t,const size_t,const ZopfliNode *,int *,size_t *,const BrotliEncoderParams *,Command *,size_t *)" in summary model. | | Dubious signature "(const sockaddr *,char *,size_t)" in summary model. | +| Dubious signature "(const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int)" in summary model. | | Dubious signature "(const sockaddr_in6 *,char *,size_t)" in summary model. | | Dubious signature "(const sockaddr_in *,char *,size_t)" in summary model. | +| Dubious signature "(const spwd *,FILE *)" in summary model. | | Dubious signature "(const sqlite3_value *)" in summary model. | | Dubious signature "(const stack_st_SCT *,unsigned char **)" in summary model. | | Dubious signature "(const stack_st_X509 *)" in summary model. | @@ -3711,8 +4142,37 @@ | Dubious signature "(const stack_st_X509_EXTENSION *,int,int)" in summary model. | | Dubious signature "(const stack_st_X509_NAME *)" in summary model. | | Dubious signature "(const stat *)" in summary model. | +| Dubious signature "(const td_thragent_t *,lwpid_t,td_thrhandle_t *)" in summary model. | +| Dubious signature "(const td_thragent_t *,ps_prochandle **)" in summary model. | +| Dubious signature "(const td_thragent_t *,pthread_t,td_thrhandle_t *)" in summary model. | +| Dubious signature "(const td_thragent_t *,td_event_e,td_notify_t *)" in summary model. | +| Dubious signature "(const td_thragent_t *,td_event_msg_t *)" in summary model. | +| Dubious signature "(const td_thrhandle_t *,const thread_key_t,void **)" in summary model. | +| Dubious signature "(const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *)" in summary model. | +| Dubious signature "(const td_thrhandle_t *,td_event_msg_t *)" in summary model. | +| Dubious signature "(const td_thrhandle_t *,td_thrinfo_t *)" in summary model. | +| Dubious signature "(const td_thrhandle_t *,unsigned long,psaddr_t *)" in summary model. | +| Dubious signature "(const termios *)" in summary model. | +| Dubious signature "(const time_t *)" in summary model. | +| Dubious signature "(const time_t *,const time_t *__restrict__,char *,char *__restrict__)" in summary model. | +| Dubious signature "(const time_t *,const time_t *__restrict__,tm *,tm *__restrict__)" in summary model. | | Dubious signature "(const time_t *,tm *)" in summary model. | +| Dubious signature "(const timeval *,const timezone *)" in summary model. | +| Dubious signature "(const timeval *,timeval *)" in summary model. | +| Dubious signature "(const tm *,__locale_data *)" in summary model. | +| Dubious signature "(const tm *,char *)" in summary model. | | Dubious signature "(const u128[16],uint8_t *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,char *)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,int,ns_msg *)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,size_t,char *,size_t)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t)" in summary model. | +| Dubious signature "(const u_char *,const unsigned char *,u_char *,unsigned char *,size_t)" in summary model. | | Dubious signature "(const uint8_t *,SM4_KEY *)" in summary model. | | Dubious signature "(const uint8_t *,const uint8_t *,uint8_t **,int)" in summary model. | | Dubious signature "(const uint8_t *,int,int,PROV_CTX *,const char *)" in summary model. | @@ -3728,9 +4188,11 @@ | Dubious signature "(const uint32_t *,size_t,char *,size_t *)" in summary model. | | Dubious signature "(const uint32_t *,size_t,uint32_t *,size_t *,int)" in summary model. | | Dubious signature "(const unsigned char *)" in summary model. | +| Dubious signature "(const unsigned char **,const unsigned char *)" in summary model. | | Dubious signature "(const unsigned char **,long *,int *,int *,long)" in summary model. | | Dubious signature "(const unsigned char **,long)" in summary model. | | Dubious signature "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const unsigned char **,printf_info *)" in summary model. | | Dubious signature "(const unsigned char **,unsigned char *,const unsigned char *,unsigned int)" in summary model. | | Dubious signature "(const unsigned char **,unsigned int,int *)" in summary model. | | Dubious signature "(const unsigned char **,unsigned int,int)" in summary model. | @@ -3738,22 +4200,29 @@ | Dubious signature "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)" in summary model. | | Dubious signature "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)" in summary model. | | Dubious signature "(const unsigned char *,DES_cblock[],long,int,DES_cblock *)" in summary model. | +| Dubious signature "(const unsigned char *,FILE *)" in summary model. | | Dubious signature "(const unsigned char *,IAtlStringMgr *)" in summary model. | +| Dubious signature "(const unsigned char *,char *,size_t)" in summary model. | | Dubious signature "(const unsigned char *,const int,ARIA_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,const unsigned char *)" in summary model. | +| Dubious signature "(const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t)" in summary model. | | Dubious signature "(const unsigned char *,hm_header_st *)" in summary model. | | Dubious signature "(const unsigned char *,int)" in summary model. | | Dubious signature "(const unsigned char *,int,BIGNUM *)" in summary model. | | Dubious signature "(const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const unsigned char *,int,FILE *)" in summary model. | | Dubious signature "(const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *)" in summary model. | | Dubious signature "(const unsigned char *,int,const ECDSA_SIG *,EC_KEY *)" in summary model. | | Dubious signature "(const unsigned char *,int,const unsigned char *,int,EC_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,int,unsigned char *,int)" in summary model. | | Dubious signature "(const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *)" in summary model. | | Dubious signature "(const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(const unsigned char *,int,unsigned long *)" in summary model. | | Dubious signature "(const unsigned char *,long)" in summary model. | | Dubious signature "(const unsigned char *,long,char)" in summary model. | | Dubious signature "(const unsigned char *,size_t,QUIC_PN,QUIC_PN *)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,printf_spec *,size_t *,bool *)" in summary model. | | Dubious signature "(const unsigned char *,size_t,size_t *)" in summary model. | | Dubious signature "(const unsigned char *,size_t,size_t)" in summary model. | | Dubious signature "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)" in summary model. | @@ -3766,6 +4235,7 @@ | Dubious signature "(const unsigned char *,unsigned char *,const BF_KEY *,int)" in summary model. | | Dubious signature "(const unsigned char *,unsigned char *,const CAST_KEY *,int)" in summary model. | | Dubious signature "(const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **)" in summary model. | | Dubious signature "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)" in summary model. | | Dubious signature "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)" in summary model. | | Dubious signature "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)" in summary model. | @@ -3805,6 +4275,13 @@ | Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)" in summary model. | | Dubious signature "(const unsigned char[16],SEED_KEY_SCHEDULE *)" in summary model. | | Dubious signature "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)" in summary model. | +| Dubious signature "(const unsigned int *)" in summary model. | +| Dubious signature "(const unsigned int **,printf_info *)" in summary model. | +| Dubious signature "(const unsigned int *,size_t,printf_spec *,size_t *,bool *)" in summary model. | +| Dubious signature "(const utmp *)" in summary model. | +| Dubious signature "(const utmp *,utmp *,utmp **)" in summary model. | +| Dubious signature "(const utmpx *)" in summary model. | +| Dubious signature "(const utmpx *,utmp *)" in summary model. | | Dubious signature "(const uv__io_t *,unsigned int)" in summary model. | | Dubious signature "(const uv__statx *,uv_stat_t *)" in summary model. | | Dubious signature "(const uv_buf_t[],unsigned int)" in summary model. | @@ -3824,20 +4301,69 @@ | Dubious signature "(const uv_udp_t *,sockaddr *,int *)" in summary model. | | Dubious signature "(const vector &)" in summary model. | | Dubious signature "(const vector &,const Allocator &)" in summary model. | +| Dubious signature "(const void *)" in summary model. | +| Dubious signature "(const void *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const void *,VISIT,void *)" in summary model. | +| Dubious signature "(const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *)" in summary model. | +| Dubious signature "(const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *)" in summary model. | | Dubious signature "(const void *,const void *)" in summary model. | | Dubious signature "(const void *,const void *,int)" in summary model. | | Dubious signature "(const void *,const void *,int,int,..(*)(..))" in summary model. | | Dubious signature "(const void *,const void *,int,int,..(*)(..),int)" in summary model. | +| Dubious signature "(const void *,const void *,size_t *,size_t,__compar_fn_t)" in summary model. | | Dubious signature "(const void *,const void *,size_t)" in summary model. | +| Dubious signature "(const void *,const void *,size_t,size_t,__compar_fn_t)" in summary model. | +| Dubious signature "(const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *)" in summary model. | +| Dubious signature "(const void *,int)" in summary model. | | Dubious signature "(const void *,size_t)" in summary model. | | Dubious signature "(const void *,size_t,const char *,int)" in summary model. | +| Dubious signature "(const void *,size_t,const void *,size_t)" in summary model. | +| Dubious signature "(const void *,size_t,md5_ctx *)" in summary model. | +| Dubious signature "(const void *,size_t,size_t)" in summary model. | +| Dubious signature "(const void *,size_t,size_t,FILE *)" in summary model. | +| Dubious signature "(const void *,size_t,size_t,bool)" in summary model. | | Dubious signature "(const void *,size_t,unsigned char *)" in summary model. | | Dubious signature "(const void *,size_t,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const void *,socklen_t,int)" in summary model. | +| Dubious signature "(const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *)" in summary model. | +| Dubious signature "(const void *,socklen_t,int,hostent *,char *,size_t,int *,int *)" in summary model. | | Dubious signature "(const void *,sqlite3 **)" in summary model. | +| Dubious signature "(const void *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const void *,void *)" in summary model. | +| Dubious signature "(const void *,void **,__compar_fn_t)" in summary model. | +| Dubious signature "(const void *,void *,size_t *,size_t,__compar_fn_t)" in summary model. | +| Dubious signature "(const void *,void *const *,__compar_fn_t)" in summary model. | +| Dubious signature "(const wchar_t *,__gnuc_va_list)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *,locale_t)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *,size_t,locale_t)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *,va_list)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *,wchar_t,const char *)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t)" in summary model. | +| Dubious signature "(const wchar_t *,const wchar_t,wchar_t)" in summary model. | +| Dubious signature "(const wchar_t *,size_t)" in summary model. | +| Dubious signature "(const wchar_t *,va_list)" in summary model. | +| Dubious signature "(const wchar_t *,wchar_t **,int)" in summary model. | +| Dubious signature "(const wchar_t *,wchar_t **,int,int,bool,locale_t)" in summary model. | +| Dubious signature "(const wchar_t *,wchar_t **,int,locale_t)" in summary model. | +| Dubious signature "(const wchar_t *,wchar_t **,wchar_t)" in summary model. | | Dubious signature "(const_DES_cblock *)" in summary model. | | Dubious signature "(const_iterator,T &&)" in summary model. | | Dubious signature "(const_iterator,const T &)" in summary model. | | Dubious signature "(const_iterator,size_type,const T &)" in summary model. | +| Dubious signature "(const_nis_name,char *,size_t)" in summary model. | +| Dubious signature "(const_nis_name,const unsigned int,unsigned int)" in summary model. | +| Dubious signature "(const_nis_name,directory_obj **,dir_binding *,unsigned int)" in summary model. | +| Dubious signature "(const_nis_name,int,directory_obj **,dir_binding *,unsigned int)" in summary model. | +| Dubious signature "(const_nis_name,unsigned int)" in summary model. | | Dubious signature "(cpool *,Curl_cpool_disconnect_cb *,Curl_multi *,Curl_share *,size_t)" in summary model. | | Dubious signature "(cpool *,fd_set *,fd_set *,int *)" in summary model. | | Dubious signature "(curl_blob **,const curl_blob *)" in summary model. | @@ -3874,10 +4400,38 @@ | Dubious signature "(custom_ext_methods *,const custom_ext_methods *)" in summary model. | | Dubious signature "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(database_dyn *)" in summary model. | +| Dubious signature "(database_dyn *,hashentry *,datahead *)" in summary model. | +| Dubious signature "(database_dyn *,int,request_header *,void *,uid_t)" in summary model. | +| Dubious signature "(database_dyn *,size_t,int)" in summary model. | +| Dubious signature "(database_dyn *,time_t,int)" in summary model. | | Dubious signature "(deflate_state *,charf *,ulg,int)" in summary model. | | Dubious signature "(deflate_state *,unsigned int,unsigned int)" in summary model. | | Dubious signature "(deque &&)" in summary model. | | Dubious signature "(deque &&,const Allocator &)" in summary model. | +| Dubious signature "(dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int)" in summary model. | +| Dubious signature "(dir_binding *,netobj *,nis_cb *)" in summary model. | +| Dubious signature "(dl_exception *,..(*)(..),void *)" in summary model. | +| Dubious signature "(dl_exception *,const char *,const char *)" in summary model. | +| Dubious signature "(dl_find_object_internal *,size_t)" in summary model. | +| Dubious signature "(double *,const double *)" in summary model. | +| Dubious signature "(double *,double *,int,int,int,const int32_t *)" in summary model. | +| Dubious signature "(double *,double)" in summary model. | +| Dubious signature "(double,double *)" in summary model. | +| Dubious signature "(double,double *,double *)" in summary model. | +| Dubious signature "(double,double,int *)" in summary model. | +| Dubious signature "(double,double,int,double *)" in summary model. | +| Dubious signature "(double,int *)" in summary model. | +| Dubious signature "(double,int,char *)" in summary model. | +| Dubious signature "(double,int,int *,int *__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)" in summary model. | +| Dubious signature "(double,int,unsigned int)" in summary model. | +| Dubious signature "(double,long double)" in summary model. | +| Dubious signature "(double,long long)" in summary model. | +| Dubious signature "(drand48_data *,drand48_data *__restrict__,double *,double *__restrict__)" in summary model. | +| Dubious signature "(drand48_data *,drand48_data *__restrict__,long *,long *__restrict__)" in summary model. | +| Dubious signature "(dynarray_header *,size_t,void *,size_t)" in summary model. | +| Dubious signature "(dynarray_header *,void *,size_t,dynarray_finalize_result *)" in summary model. | | Dubious signature "(dynbuf *)" in summary model. | | Dubious signature "(dynbuf *,Curl_easy *)" in summary model. | | Dubious signature "(dynbuf *,FILE *)" in summary model. | @@ -3895,14 +4449,40 @@ | Dubious signature "(dynhds *,size_t *)" in summary model. | | Dubious signature "(dynhds *,size_t)" in summary model. | | Dubious signature "(dynhds *,size_t,size_t)" in summary model. | +| Dubious signature "(etherent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(exit_function_list **)" in summary model. | +| Dubious signature "(fexcept_t *,int)" in summary model. | +| Dubious signature "(file_change_detection *,const stat64 *)" in summary model. | | Dubious signature "(fileinfo *)" in summary model. | +| Dubious signature "(float *,const float *)" in summary model. | +| Dubious signature "(float *,float)" in summary model. | +| Dubious signature "(float,float *)" in summary model. | +| Dubious signature "(float,float *,float *)" in summary model. | +| Dubious signature "(float,float,int *)" in summary model. | +| Dubious signature "(float,int *)" in summary model. | +| Dubious signature "(float,int,unsigned int)" in summary model. | +| Dubious signature "(float,long double)" in summary model. | +| Dubious signature "(float,long long)" in summary model. | | Dubious signature "(format_string,Args &&)" in summary model. | | Dubious signature "(forward_list &&)" in summary model. | | Dubious signature "(forward_list &&,const Allocator &)" in summary model. | | Dubious signature "(ftp_parselist_data *)" in summary model. | | Dubious signature "(ftp_parselist_data **)" in summary model. | +| Dubious signature "(fuse_in_header *,uint32_t)" in summary model. | +| Dubious signature "(fuse_in_header *,uint32_t,size_t,char **)" in summary model. | +| Dubious signature "(gaicb *)" in summary model. | +| Dubious signature "(gconv_fcts *,const char *)" in summary model. | +| Dubious signature "(gconv_spec *,__gconv_t *,int)" in summary model. | +| Dubious signature "(gconv_spec *,const char *,const char *)" in summary model. | +| Dubious signature "(getent_r_function,void **,char **,size_t,size_t *,int *)" in summary model. | | Dubious signature "(gf,const gf,const gf)" in summary model. | | Dubious signature "(gf,const uint8_t[56],int,uint8_t)" in summary model. | +| Dubious signature "(gid_t,group *,char *,size_t,group **)" in summary model. | +| Dubious signature "(group *,char *,char *,size_t,group *,char *)" in summary model. | +| Dubious signature "(group *,char *,size_t,group **)" in summary model. | +| Dubious signature "(group *,char *,size_t,int *)" in summary model. | +| Dubious signature "(grouping_iterator *,int,locale_t,unsigned int)" in summary model. | +| Dubious signature "(grouping_iterator *,unsigned int)" in summary model. | | Dubious signature "(gzFile,char *,int)" in summary model. | | Dubious signature "(gzFile,const char *)" in summary model. | | Dubious signature "(gzFile,const char *,va_list)" in summary model. | @@ -3913,6 +4493,10 @@ | Dubious signature "(gz_statep,int,const char *)" in summary model. | | Dubious signature "(h1_req_parser *,const char *,size_t,const char *,int,CURLcode *)" in summary model. | | Dubious signature "(h1_req_parser *,size_t)" in summary model. | +| Dubious signature "(hash_table *,const void *,size_t,void *)" in summary model. | +| Dubious signature "(hash_table *,unsigned long)" in summary model. | +| Dubious signature "(hostent *,char *,size_t,int *,int *)" in summary model. | +| Dubious signature "(hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__)" in summary model. | | Dubious signature "(hsts **)" in summary model. | | Dubious signature "(http_resp **,int,const char *)" in summary model. | | Dubious signature "(httpreq **,const char *,size_t,CURLU *,const char *)" in summary model. | @@ -3923,9 +4507,12 @@ | Dubious signature "(i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | | Dubious signature "(i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | | Dubious signature "(i2d_of_void *,d2i_of_void *,const void *)" in summary model. | +| Dubious signature "(iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__)" in summary model. | +| Dubious signature "(in_addr_t,uint32_t,char *,size_t)" in summary model. | | Dubious signature "(int32_t *,int32_t *,int32_t *,int32_t *)" in summary model. | | Dubious signature "(int64_t *,const ASN1_ENUMERATED *)" in summary model. | | Dubious signature "(int64_t *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(int *)" in summary model. | | Dubious signature "(int *,ASN1_TIME **,const ASN1_TIME *)" in summary model. | | Dubious signature "(int *,X509 *,stack_st_X509 *,unsigned long)" in summary model. | | Dubious signature "(int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **)" in summary model. | @@ -3936,6 +4523,10 @@ | Dubious signature "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)" in summary model. | | Dubious signature "(int *,int *,size_t)" in summary model. | | Dubious signature "(int *,int)" in summary model. | +| Dubious signature "(int *,sa_family_t)" in summary model. | +| Dubious signature "(int *,short *)" in summary model. | +| Dubious signature "(int *,short *,clockid_t,const timespec *,int)" in summary model. | +| Dubious signature "(int *,short *,int)" in summary model. | | Dubious signature "(int *,sqlite3_stmt *)" in summary model. | | Dubious signature "(int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *)" in summary model. | | Dubious signature "(int,BIO_ADDR *,int)" in summary model. | @@ -3947,6 +4538,7 @@ | Dubious signature "(int,EVP_PKEY **,BIO *)" in summary model. | | Dubious signature "(int,EVP_PKEY **,const unsigned char **,long)" in summary model. | | Dubious signature "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,FILE *)" in summary model. | | Dubious signature "(int,OCSP_BASICRESP *)" in summary model. | | Dubious signature "(int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)" in summary model. | @@ -3956,26 +4548,56 @@ | Dubious signature "(int,SSL_CTX *,const unsigned char *,long)" in summary model. | | Dubious signature "(int,SSL_EXCERT **)" in summary model. | | Dubious signature "(int,X509_STORE_CTX *)" in summary model. | +| Dubious signature "(int,__locale_data *)" in summary model. | +| Dubious signature "(int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int)" in summary model. | +| Dubious signature "(int,aiocb *)" in summary model. | +| Dubious signature "(int,aiocb *const[],int,sigevent *)" in summary model. | +| Dubious signature "(int,bool,int,const stat64 *)" in summary model. | | Dubious signature "(int,char **)" in summary model. | | Dubious signature "(int,char **,char *[])" in summary model. | | Dubious signature "(int,char **,const OPTIONS *)" in summary model. | +| Dubious signature "(int,char **,const char *,const option *,int *,_getopt_data *)" in summary model. | +| Dubious signature "(int,char **,const char *,const option *,int *,int,_getopt_data *,int)" in summary model. | +| Dubious signature "(int,char **,const char *,const option *,int *,int,int)" in summary model. | | Dubious signature "(int,char **,gengetopt_args_info *)" in summary model. | | Dubious signature "(int,char **,gengetopt_args_info *,cmdline_parser_params *)" in summary model. | | Dubious signature "(int,char **,gengetopt_args_info *,int,int,int)" in summary model. | | Dubious signature "(int,char *,const char *,...)" in summary model. | | Dubious signature "(int,char *,const char *,va_list)" in summary model. | | Dubious signature "(int,char *,size_t)" in summary model. | +| Dubious signature "(int,char *,size_t,size_t)" in summary model. | +| Dubious signature "(int,char *const *,const char *)" in summary model. | +| Dubious signature "(int,char *const *,const char *,const option *,int *)" in summary model. | | Dubious signature "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)" in summary model. | | Dubious signature "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(int,const OSSL_ALGORITHM *,OSSL_PROVIDER *)" in summary model. | | Dubious signature "(int,const OSSL_STORE_INFO *)" in summary model. | | Dubious signature "(int,const char *)" in summary model. | +| Dubious signature "(int,const char **)" in summary model. | | Dubious signature "(int,const char **,int *)" in summary model. | +| Dubious signature "(int,const char *,__gnuc_va_list)" in summary model. | +| Dubious signature "(int,const char *,__gnuc_va_list,va_list,unsigned int)" in summary model. | +| Dubious signature "(int,const char *,__mode_t,mode_t,__dev_t *,dev_t *)" in summary model. | +| Dubious signature "(int,const char *,const char *,const charmap_t *)" in summary model. | +| Dubious signature "(int,const char *,const char *,const charmap_t *,localedef_t *)" in summary model. | +| Dubious signature "(int,const char *,const char *,int,localedef_t *)" in summary model. | +| Dubious signature "(int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)" in summary model. | +| Dubious signature "(int,const char *,const timespec[2],int)" in summary model. | +| Dubious signature "(int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int)" in summary model. | | Dubious signature "(int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)" in summary model. | | Dubious signature "(int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *)" in summary model. | | Dubious signature "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,const char *,locale_t)" in summary model. | +| Dubious signature "(int,const char *,servent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(int,const char *,servent *,char *,size_t,servent **)" in summary model. | +| Dubious signature "(int,const char *,va_list)" in summary model. | +| Dubious signature "(int,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(int,const char *,void *,size_t)" in summary model. | | Dubious signature "(int,const regex_t *,char *,size_t)" in summary model. | +| Dubious signature "(int,const sigset_t *,sigset_t *)" in summary model. | +| Dubious signature "(int,const timespec[2])" in summary model. | +| Dubious signature "(int,const u_char *,const unsigned char *,char *)" in summary model. | | Dubious signature "(int,const uint8_t *__restrict__,size_t,size_t,size_t,size_t *__restrict__,uint8_t *__restrict__)" in summary model. | | Dubious signature "(int,const unsigned char *,int,const unsigned char *,int,DSA *)" in summary model. | | Dubious signature "(int,const unsigned char *,int,const unsigned char *,int,EC_KEY *)" in summary model. | @@ -3984,25 +4606,53 @@ | Dubious signature "(int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *)" in summary model. | | Dubious signature "(int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *)" in summary model. | | Dubious signature "(int,const void *,char *,size_t)" in summary model. | +| Dubious signature "(int,const void *,char *,socklen_t,size_t)" in summary model. | | Dubious signature "(int,const void *,const char *,int)" in summary model. | +| Dubious signature "(int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t)" in summary model. | +| Dubious signature "(int,const void *,int,char *,size_t)" in summary model. | +| Dubious signature "(int,const void *,size_t)" in summary model. | +| Dubious signature "(int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool)" in summary model. | +| Dubious signature "(int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(int,dl_exception *,const char *)" in summary model. | +| Dubious signature "(int,exit_function_list **,bool,bool)" in summary model. | +| Dubious signature "(int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *)" in summary model. | +| Dubious signature "(int,fd_to_filename *)" in summary model. | +| Dubious signature "(int,gaicb *[],int,sigevent *)" in summary model. | +| Dubious signature "(int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *)" in summary model. | | Dubious signature "(int,int *,int *,int)" in summary model. | | Dubious signature "(int,int,BrotliEncoderMode,size_t,const uint8_t[],size_t *,uint8_t[])" in summary model. | | Dubious signature "(int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *)" in summary model. | | Dubious signature "(int,int,const char *)" in summary model. | +| Dubious signature "(int,int,const char *,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *)" in summary model. | | Dubious signature "(int,int,const char *,const char *)" in summary model. | +| Dubious signature "(int,int,const char *,unsigned int,const char *,va_list,unsigned int)" in summary model. | | Dubious signature "(int,int,const char *,va_list)" in summary model. | +| Dubious signature "(int,int,const char *,va_list,unsigned int)" in summary model. | | Dubious signature "(int,int,const unsigned char *,int)" in summary model. | | Dubious signature "(int,int,const unsigned char *,int,OSSL_LIB_CTX *)" in summary model. | | Dubious signature "(int,int,int *)" in summary model. | | Dubious signature "(int,int,int,const void *,size_t,SSL *,void *)" in summary model. | | Dubious signature "(int,int,void *)" in summary model. | +| Dubious signature "(int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int)" in summary model. | +| Dubious signature "(int,long double)" in summary model. | | Dubious signature "(int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *)" in summary model. | +| Dubious signature "(int,protoent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)" in summary model. | +| Dubious signature "(int,rpcent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(int,rpcent *,char *,size_t,rpcent **)" in summary model. | +| Dubious signature "(int,sockaddr *,socklen_t *)" in summary model. | +| Dubious signature "(int,sockaddr *,socklen_t *,int)" in summary model. | | Dubious signature "(int,sqlite3_int64 *,sqlite3_int64 *,int)" in summary model. | | Dubious signature "(int,stat *)" in summary model. | +| Dubious signature "(int,statvfs64 *)" in summary model. | +| Dubious signature "(int,u_int,u_int,char *)" in summary model. | +| Dubious signature "(int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *)" in summary model. | | Dubious signature "(int,unsigned char *,int,const char *,const char *)" in summary model. | | Dubious signature "(int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *)" in summary model. | | Dubious signature "(int,unsigned long,..(*)(..),void *)" in summary model. | | Dubious signature "(int,void *)" in summary model. | +| Dubious signature "(int,void *,size_t)" in summary model. | | Dubious signature "(int_dhx942_dh **,const unsigned char **,long)" in summary model. | | Dubious signature "(lemon *)" in summary model. | | Dubious signature "(lemon *,action *)" in summary model. | @@ -4012,14 +4662,74 @@ | Dubious signature "(lhash_st_CONF_VALUE *,FILE *,long *)" in summary model. | | Dubious signature "(lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *)" in summary model. | | Dubious signature "(lhash_st_CONF_VALUE *,const char *,long *)" in summary model. | +| Dubious signature "(linereader *)" in summary model. | +| Dubious signature "(linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int)" in summary model. | +| Dubious signature "(linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int)" in summary model. | +| Dubious signature "(linereader *,localedef_t *,const charmap_t *,const char *,int)" in summary model. | +| Dubious signature "(link_map *)" in summary model. | +| Dubious signature "(link_map **,unsigned int,bool,bool)" in summary model. | +| Dubious signature "(link_map *,Dl_serinfo *,bool)" in summary model. | +| Dubious signature "(link_map *,Elf64_Word)" in summary model. | +| Dubious signature "(link_map *,Elf64_Word,Elf64_Addr,void *,long *)" in summary model. | +| Dubious signature "(link_map *,Lmid_t)" in summary model. | +| Dubious signature "(link_map *,Lmid_t,uintptr_t *)" in summary model. | +| Dubious signature "(link_map *,const Elf64_Sym *,void **,lookup_t)" in summary model. | +| Dubious signature "(link_map *,const char *,char *)" in summary model. | +| Dubious signature "(link_map *,const char *,int,int,int,Lmid_t)" in summary model. | +| Dubious signature "(link_map *,const char *,uint32_t,const char *,uint32_t)" in summary model. | +| Dubious signature "(link_map *,int,char **,char **)" in summary model. | +| Dubious signature "(link_map *,int,const Elf64_Phdr *)" in summary model. | +| Dubious signature "(link_map *,link_map **,unsigned int,int,int)" in summary model. | +| Dubious signature "(link_map *,link_map_public *,bool)" in summary model. | +| Dubious signature "(link_map *,r_scope_elem *[],int,int)" in summary model. | +| Dubious signature "(link_map *,reloc_result *,Elf64_Addr *,void *,long *)" in summary model. | +| Dubious signature "(link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool)" in summary model. | +| Dubious signature "(link_map *,size_t)" in summary model. | | Dubious signature "(list &&)" in summary model. | | Dubious signature "(list &&,const Allocator &)" in summary model. | | Dubious signature "(list_head *)" in summary model. | | Dubious signature "(list_head *,list_node *)" in summary model. | | Dubious signature "(list_node *)" in summary model. | +| Dubious signature "(list_t *,list_t *)" in summary model. | +| Dubious signature "(loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int)" in summary model. | +| Dubious signature "(loaded_l10nfile *,binding *,const char *,int,size_t *)" in summary model. | +| Dubious signature "(locale_file *,const uint32_t *,size_t)" in summary model. | +| Dubious signature "(locale_file *,size_t)" in summary model. | +| Dubious signature "(locale_t,const char *,const char *)" in summary model. | +| Dubious signature "(locarhandle *,const char *,locale_data_t,bool)" in summary model. | | Dubious signature "(long *,const char *)" in summary model. | | Dubious signature "(long *,const char *,long)" in summary model. | +| Dubious signature "(long double *,const long double *)" in summary model. | +| Dubious signature "(long double *,long double)" in summary model. | +| Dubious signature "(long double)" in summary model. | +| Dubious signature "(long double,int *)" in summary model. | +| Dubious signature "(long double,int)" in summary model. | +| Dubious signature "(long double,int,char *)" in summary model. | +| Dubious signature "(long double,int,int *,int *__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t)" in summary model. | +| Dubious signature "(long double,int,unsigned int)" in summary model. | +| Dubious signature "(long double,long double *)" in summary model. | +| Dubious signature "(long double,long double *,long double *)" in summary model. | +| Dubious signature "(long double,long double)" in summary model. | +| Dubious signature "(long double,long double,int *)" in summary model. | +| Dubious signature "(long double,long double,int)" in summary model. | +| Dubious signature "(long double,long double,int,long double *)" in summary model. | +| Dubious signature "(long double,long double,long double)" in summary model. | +| Dubious signature "(long double,long double,long double,int)" in summary model. | +| Dubious signature "(long double,long long)" in summary model. | +| Dubious signature "(long double,long)" in summary model. | | Dubious signature "(long long *)" in summary model. | +| Dubious signature "(long long)" in summary model. | +| Dubious signature "(long long,long long)" in summary model. | +| Dubious signature "(long,drand48_data *)" in summary model. | +| Dubious signature "(md5_ctx *,void *)" in summary model. | +| Dubious signature "(mp_ptr,mp_size_t,int *,int *,_Float128)" in summary model. | +| Dubious signature "(mp_ptr,mp_size_t,int *,int *,double)" in summary model. | +| Dubious signature "(mp_ptr,mp_size_t,int *,int *,long double)" in summary model. | +| Dubious signature "(msghdr *,cmsghdr *)" in summary model. | +| Dubious signature "(netent *,char *,size_t,int *,int *)" in summary model. | +| Dubious signature "(netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)" in summary model. | +| Dubious signature "(netlink_handle *,int)" in summary model. | | Dubious signature "(nghttp2_buf *,size_t,nghttp2_mem *)" in summary model. | | Dubious signature "(nghttp2_buf *,uint8_t *,size_t)" in summary model. | | Dubious signature "(nghttp2_bufs *,const nghttp2_vec *,size_t,nghttp2_mem *)" in summary model. | @@ -4171,44 +4881,150 @@ | Dubious signature "(nghttp2_stream *,size_t)" in summary model. | | Dubious signature "(nghttp2_stream *,uint8_t)" in summary model. | | Dubious signature "(nghttp2_window_update *,uint8_t,int32_t,int32_t)" in summary model. | +| Dubious signature "(nis_server **)" in summary model. | +| Dubious signature "(nl_catd,int,int,const char *)" in summary model. | +| Dubious signature "(ns_msg *,ns_sect,int,ns_rr *)" in summary model. | +| Dubious signature "(ns_rr_cursor *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(ns_rr_cursor *,ns_rr_wire *)" in summary model. | +| Dubious signature "(nss_action **,nss_action_list *,const char *,const char *,void **)" in summary model. | +| Dubious signature "(nss_action **,nss_action_list *,const char *,const char *,void **,int,int)" in summary model. | +| Dubious signature "(nss_action *,size_t)" in summary model. | +| Dubious signature "(nss_database,nss_action_list *)" in summary model. | +| Dubious signature "(nss_database_data *)" in summary model. | +| Dubious signature "(nss_files_per_file_data **,nss_files_file,const char *,int *,int *)" in summary model. | +| Dubious signature "(nss_module *,const char *)" in summary model. | +| Dubious signature "(obstack *)" in summary model. | +| Dubious signature "(obstack *,const char *,va_list)" in summary model. | +| Dubious signature "(obstack *,const char *,va_list,unsigned int)" in summary model. | +| Dubious signature "(obstack *,int)" in summary model. | +| Dubious signature "(obstack *,int,const char *,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(obstack *,int,int,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(obstack *,int,int,..(*)(..),..(*)(..),void *)" in summary model. | +| Dubious signature "(obstack *,void *)" in summary model. | +| Dubious signature "(old_termios_t *,speed_t)" in summary model. | +| Dubious signature "(passwd *,char *,size_t,int *)" in summary model. | +| Dubious signature "(passwd *,char *,size_t,passwd **)" in summary model. | | Dubious signature "(pgrs_dir *,curl_off_t,curltime)" in summary model. | +| Dubious signature "(pid_t,clockid_t *)" in summary model. | | Dubious signature "(piterator *)" in summary model. | | Dubious signature "(plink *)" in summary model. | | Dubious signature "(plink **,config *)" in summary model. | | Dubious signature "(plink **,plink *)" in summary model. | +| Dubious signature "(pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *)" in summary model. | +| Dubious signature "(pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long)" in summary model. | | Dubious signature "(pollfd[],unsigned int,timediff_t)" in summary model. | +| Dubious signature "(posix_spawnattr_t *,int)" in summary model. | +| Dubious signature "(posix_spawnattr_t *,pid_t)" in summary model. | +| Dubious signature "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__)" in summary model. | +| Dubious signature "(posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__)" in summary model. | +| Dubious signature "(posix_spawnattr_t *,short)" in summary model. | | Dubious signature "(pqueue *)" in summary model. | | Dubious signature "(pqueue *,pitem *)" in summary model. | | Dubious signature "(pqueue *,unsigned char *)" in summary model. | +| Dubious signature "(prof *,int,timeval *,unsigned int)" in summary model. | +| Dubious signature "(protoent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__)" in summary model. | +| Dubious signature "(ps_prochandle *,td_thragent_t **)" in summary model. | +| Dubious signature "(pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *)" in summary model. | +| Dubious signature "(pthread_attr_t *,const pthread_attr_t *)" in summary model. | +| Dubious signature "(pthread_attr_t *,const sched_param *)" in summary model. | +| Dubious signature "(pthread_attr_t *,const sigset_t *)" in summary model. | +| Dubious signature "(pthread_attr_t *,cpu_set_t *)" in summary model. | +| Dubious signature "(pthread_attr_t *,int)" in summary model. | +| Dubious signature "(pthread_attr_t *,size_t)" in summary model. | +| Dubious signature "(pthread_attr_t *,size_t,const cpu_set_t *)" in summary model. | +| Dubious signature "(pthread_attr_t *,void *)" in summary model. | +| Dubious signature "(pthread_attr_t *,void *,size_t)" in summary model. | +| Dubious signature "(pthread_barrier_t *,const pthread_barrierattr_t *,unsigned int)" in summary model. | +| Dubious signature "(pthread_barrierattr_t *,int)" in summary model. | +| Dubious signature "(pthread_mutex_t *,const pthread_mutexattr_t *)" in summary model. | +| Dubious signature "(pthread_mutex_t *,int,int *)" in summary model. | +| Dubious signature "(pthread_mutexattr_t *,int)" in summary model. | +| Dubious signature "(pthread_rwlock_t *,const pthread_rwlockattr_t *)" in summary model. | +| Dubious signature "(pthread_rwlockattr_t *,int)" in summary model. | | Dubious signature "(pthread_t *)" in summary model. | | Dubious signature "(pthread_t **)" in summary model. | +| Dubious signature "(pthread_t,int,const sched_param *)" in summary model. | +| Dubious signature "(random_data *,int32_t *)" in summary model. | +| Dubious signature "(re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *)" in summary model. | +| Dubious signature "(re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *)" in summary model. | +| Dubious signature "(re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t)" in summary model. | +| Dubious signature "(re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t)" in summary model. | +| Dubious signature "(re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *)" in summary model. | | Dubious signature "(regex_t *,const char *,int)" in summary model. | | Dubious signature "(regex_t *,const char *,size_t,regmatch_t[],int)" in summary model. | +| Dubious signature "(request_type,const char *,mapped_database **)" in summary model. | +| Dubious signature "(request_type,const char *,size_t,const mapped_database *,size_t)" in summary model. | +| Dubious signature "(request_type,const char *,volatile locked_map_ptr *,int *)" in summary model. | +| Dubious signature "(request_type,const void *,size_t,database_dyn *,uid_t)" in summary model. | +| Dubious signature "(requestlist *,requestlist *,int)" in summary model. | +| Dubious signature "(res_state,const char *,const char *,int,int,unsigned char *,int)" in summary model. | +| Dubious signature "(res_state,const char *,int,int,unsigned char *,int)" in summary model. | +| Dubious signature "(res_state,const unsigned char *,int,unsigned char *,int)" in summary model. | +| Dubious signature "(res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int)" in summary model. | +| Dubious signature "(res_state,unsigned int)" in summary model. | +| Dubious signature "(resolv_context *,const char *,char *,size_t)" in summary model. | +| Dubious signature "(resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *)" in summary model. | +| Dubious signature "(resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)" in summary model. | +| Dubious signature "(resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *)" in summary model. | +| Dubious signature "(resolv_context *,const unsigned char *,int,unsigned char *,int,int *)" in summary model. | +| Dubious signature "(resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int)" in summary model. | +| Dubious signature "(resolv_context *,int,unsigned char *,int,int)" in summary model. | +| Dubious signature "(rpcent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(rpcent *,char *,size_t,rpcent **)" in summary model. | | Dubious signature "(rule *,int)" in summary model. | | Dubious signature "(scan_ctx *,const char *,const char *,const char *)" in summary model. | +| Dubious signature "(scratch_buffer *,size_t,size_t)" in summary model. | +| Dubious signature "(sem_t *,int,unsigned int)" in summary model. | +| Dubious signature "(servent *,char *,size_t,int *)" in summary model. | +| Dubious signature "(servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__)" in summary model. | | Dubious signature "(sfparse_parser *,const uint8_t *,size_t)" in summary model. | | Dubious signature "(sfparse_parser *,sfparse_value *)" in summary model. | | Dubious signature "(sfparse_parser *,sfparse_vec *,sfparse_value *)" in summary model. | | Dubious signature "(sfparse_vec *,const sfparse_vec *)" in summary model. | +| Dubious signature "(sgrp *,char *,size_t,int *)" in summary model. | +| Dubious signature "(sgrp *,char *,size_t,sgrp **)" in summary model. | +| Dubious signature "(sigset_t *,const sigset_t *,const sigset_t *)" in summary model. | +| Dubious signature "(sigset_t *,int)" in summary model. | | Dubious signature "(size_t *,const char *)" in summary model. | | Dubious signature "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)" in summary model. | | Dubious signature "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)" in summary model. | | Dubious signature "(size_t,OSSL_QTX_IOVEC *,size_t)" in summary model. | | Dubious signature "(size_t,SSL_CTX *)" in summary model. | +| Dubious signature "(size_t,char *[])" in summary model. | +| Dubious signature "(size_t,char *[],bool)" in summary model. | | Dubious signature "(size_t,const QUIC_PKT_HDR *)" in summary model. | | Dubious signature "(size_t,const char **,size_t *)" in summary model. | | Dubious signature "(size_t,const char[],size_t *,uint32_t[])" in summary model. | | Dubious signature "(size_t,const uint8_t[],size_t *,uint8_t[])" in summary model. | | Dubious signature "(size_t,const uint32_t[],size_t *,char[])" in summary model. | +| Dubious signature "(size_t,hsearch_data *)" in summary model. | +| Dubious signature "(size_t,shadow_stack_size_t *)" in summary model. | +| Dubious signature "(size_t,size_t *,int *)" in summary model. | | Dubious signature "(size_t,size_t,Curl_ssl_scache **)" in summary model. | | Dubious signature "(size_t,size_t,const uint8_t *,size_t,ContextLut,const BrotliEncoderParams *,Hasher *,int *,size_t *,Command *,size_t *,size_t *)" in summary model. | | Dubious signature "(size_t,size_t,size_t,const uint8_t *,size_t *,float *)" in summary model. | | Dubious signature "(size_t,size_t,void **,const char *,int)" in summary model. | +| Dubious signature "(size_t,traced_file *)" in summary model. | | Dubious signature "(size_t,uint32_t *,uint8_t *)" in summary model. | +| Dubious signature "(size_t,void **)" in summary model. | | Dubious signature "(size_type,const T &)" in summary model. | | Dubious signature "(size_type,const T &,const Allocator &)" in summary model. | | Dubious signature "(slist_wc **,const char *)" in summary model. | | Dubious signature "(slist_wc *,const char *)" in summary model. | +| Dubious signature "(sockaddr_in *)" in summary model. | +| Dubious signature "(sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *)" in summary model. | +| Dubious signature "(sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int)" in summary model. | +| Dubious signature "(sockaddr_in *,u_long,u_long,int *,u_int,u_int)" in summary model. | +| Dubious signature "(sockaddr_in *,u_long,u_long,timeval,int *)" in summary model. | +| Dubious signature "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int)" in summary model. | +| Dubious signature "(sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int)" in summary model. | +| Dubious signature "(sockaddr_in *,u_long,u_long,u_int)" in summary model. | +| Dubious signature "(sockaddr_in *,u_long,u_long,u_int,time_t,time_t)" in summary model. | +| Dubious signature "(sockaddr_un *,const char *)" in summary model. | +| Dubious signature "(sockaddr_un *,u_long,u_long,int *,u_int,u_int)" in summary model. | +| Dubious signature "(spwd *,char *,size_t,int *)" in summary model. | +| Dubious signature "(spwd *,char *,size_t,spwd **)" in summary model. | | Dubious signature "(sqlite3 *)" in summary model. | | Dubious signature "(sqlite3 *,..(*)(..),void *)" in summary model. | | Dubious signature "(sqlite3 *,..(*)(..),void *,..(*)(..))" in summary model. | @@ -4346,27 +5162,60 @@ | Dubious signature "(stack_st_X509_OBJECT *,X509_OBJECT *)" in summary model. | | Dubious signature "(stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *)" in summary model. | | Dubious signature "(state *,config *)" in summary model. | +| Dubious signature "(statvfs64 *,const statfs64 *)" in summary model. | | Dubious signature "(store_netrc *)" in summary model. | | Dubious signature "(store_netrc *,const char *,char **,char **,char *)" in summary model. | | Dubious signature "(string_buf *,libssh2_uint64_t *)" in summary model. | | Dubious signature "(string_buf *,uint32_t *)" in summary model. | | Dubious signature "(string_buf *,unsigned char *)" in summary model. | | Dubious signature "(string_buf *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(stringtable *,const char *)" in summary model. | +| Dubious signature "(stringtable *,stringtable_finalized *)" in summary model. | +| Dubious signature "(support_descriptors *,const char *,FILE *)" in summary model. | +| Dubious signature "(support_fuse *)" in summary model. | +| Dubious signature "(support_fuse *,bool)" in summary model. | +| Dubious signature "(support_fuse *,uint64_t)" in summary model. | +| Dubious signature "(support_fuse *,uint64_t,fuse_entry_out **,fuse_open_out **)" in summary model. | +| Dubious signature "(support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *)" in summary model. | | Dubious signature "(symbol *,lemon *)" in summary model. | +| Dubious signature "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *)" in summary model. | +| Dubious signature "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *)" in summary model. | +| Dubious signature "(td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t)" in summary model. | +| Dubious signature "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *)" in summary model. | +| Dubious signature "(td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t)" in summary model. | +| Dubious signature "(td_thragent_t *,psaddr_t *)" in summary model. | +| Dubious signature "(td_thragent_t *,uint32_t *,int)" in summary model. | +| Dubious signature "(termios *,baud_t)" in summary model. | +| Dubious signature "(termios *,speed_t)" in summary model. | +| Dubious signature "(time_t,int,long *,int *,tm *)" in summary model. | +| Dubious signature "(time_t,int,tm *)" in summary model. | +| Dubious signature "(time_t,long,tm *)" in summary model. | +| Dubious signature "(timespec *,int)" in summary model. | | Dubious signature "(timeval *)" in summary model. | | Dubious signature "(timeval *,timediff_t)" in summary model. | +| Dubious signature "(tls_index *)" in summary model. | +| Dubious signature "(tm *)" in summary model. | +| Dubious signature "(tm *,..(*)(..),mktime_offset_t *)" in summary model. | | Dubious signature "(tm *,const ASN1_TIME *)" in summary model. | | Dubious signature "(tm *,const ASN1_UTCTIME *)" in summary model. | | Dubious signature "(tm *,int,long)" in summary model. | +| Dubious signature "(tunable_id_t,void *)" in summary model. | +| Dubious signature "(tunable_id_t,void *,tunable_callback_t)" in summary model. | | Dubious signature "(u64[2],const u128[16],const u8 *,size_t)" in summary model. | | Dubious signature "(uLong,const Bytef *,uInt)" in summary model. | | Dubious signature "(uLong,const Bytef *,z_size_t)" in summary model. | | Dubious signature "(uLong,unsigned long,const Bytef *,const unsigned char *,uInt)" in summary model. | | Dubious signature "(uLong,unsigned long,const Bytef *,const unsigned char *,z_size_t)" in summary model. | | Dubious signature "(u_char[16],unsigned char[16],const u_char *,const unsigned char *,size_t,const u_char[32],const unsigned char[32])" in summary model. | +| Dubious signature "(u_int,unsigned int,u_char *,unsigned char *)" in summary model. | +| Dubious signature "(u_long,unsigned long)" in summary model. | +| Dubious signature "(u_long,unsigned long,char *,size_t)" in summary model. | +| Dubious signature "(u_long,unsigned long,u_char *,unsigned char *)" in summary model. | +| Dubious signature "(ucontext_t *,..(*)(..),int,...)" in summary model. | | Dubious signature "(ucs4_t *,const uint8_t *,size_t)" in summary model. | | Dubious signature "(ucs4_t,ucs4_t *)" in summary model. | | Dubious signature "(ucs4_with_ccc *,size_t,ucs4_with_ccc *)" in summary model. | +| Dubious signature "(uid_t,passwd *,char *,size_t,passwd **)" in summary model. | | Dubious signature "(uint8_t *,const nghttp2_frame_hd *)" in summary model. | | Dubious signature "(uint8_t *,const nghttp2_priority_spec *)" in summary model. | | Dubious signature "(uint8_t *,const nghttp2_settings_entry *,size_t)" in summary model. | @@ -4390,11 +5239,15 @@ | Dubious signature "(uint8_t[57],const curve448_point_t)" in summary model. | | Dubious signature "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)" in summary model. | | Dubious signature "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *)" in summary model. | +| Dubious signature "(uint16_t,unsigned char *)" in summary model. | | Dubious signature "(uint32_t *,SSL_CONNECTION *,int)" in summary model. | | Dubious signature "(uint32_t *,const IDNAMap *)" in summary model. | | Dubious signature "(uint32_t *,size_t *,int *,uint32_t,size_t,uint8_t *,uint8_t *,size_t)" in summary model. | +| Dubious signature "(uint32_t,int,netent *,char *,size_t,int *,int *)" in summary model. | +| Dubious signature "(uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__)" in summary model. | | Dubious signature "(uint32_t,uint32_t *,uint32_t *)" in summary model. | | Dubious signature "(uint32_t,uint32_t,uint32_t *,int32_t *)" in summary model. | +| Dubious signature "(uint32_t,unsigned char *)" in summary model. | | Dubious signature "(uint64_t *,const ASN1_INTEGER *)" in summary model. | | Dubious signature "(uint64_t *,int *,const unsigned char **,long)" in summary model. | | Dubious signature "(uint64_t *,uint64_t *,CRYPTO_RWLOCK *)" in summary model. | @@ -4431,6 +5284,7 @@ | Dubious signature "(unsigned char *,WHIRLPOOL_CTX *)" in summary model. | | Dubious signature "(unsigned char *,const BIGNUM *,DH *)" in summary model. | | Dubious signature "(unsigned char *,const char *)" in summary model. | +| Dubious signature "(unsigned char *,const char *,int)" in summary model. | | Dubious signature "(unsigned char *,const unsigned char *,const unsigned char *,size_t)" in summary model. | | Dubious signature "(unsigned char *,const unsigned char *,int)" in summary model. | | Dubious signature "(unsigned char *,const unsigned char *,size_t)" in summary model. | @@ -4461,11 +5315,20 @@ | Dubious signature "(unsigned char)" in summary model. | | Dubious signature "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)" in summary model. | | Dubious signature "(unsigned char[56],const curve448_scalar_t)" in summary model. | +| Dubious signature "(unsigned int *)" in summary model. | | Dubious signature "(unsigned int *,const BF_KEY *)" in summary model. | | Dubious signature "(unsigned int *,const CAST_KEY *)" in summary model. | | Dubious signature "(unsigned int)" in summary model. | +| Dubious signature "(unsigned int,__locale_data *)" in summary model. | | Dubious signature "(unsigned int,char *,size_t *)" in summary model. | +| Dubious signature "(unsigned int,char *,size_t)" in summary model. | +| Dubious signature "(unsigned int,char *,size_t,random_data *)" in summary model. | +| Dubious signature "(unsigned int,char[16])" in summary model. | +| Dubious signature "(unsigned int,const char *,int)" in summary model. | +| Dubious signature "(unsigned int,const wchar_t *,int)" in summary model. | | Dubious signature "(unsigned int,int,int)" in summary model. | +| Dubious signature "(unsigned int,random_data *)" in summary model. | +| Dubious signature "(unsigned int,unsigned int)" in summary model. | | Dubious signature "(unsigned int[5],const unsigned char[64])" in summary model. | | Dubious signature "(unsigned long *,IDEA_KEY_SCHEDULE *)" in summary model. | | Dubious signature "(unsigned long *,RC2_KEY *)" in summary model. | @@ -4480,12 +5343,20 @@ | Dubious signature "(unsigned long *,unsigned long *,unsigned long *,int)" in summary model. | | Dubious signature "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)" in summary model. | | Dubious signature "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)" in summary model. | +| Dubious signature "(unsigned long long,char *,unsigned int,int)" in summary model. | | Dubious signature "(unsigned long)" in summary model. | | Dubious signature "(unsigned long,BIGNUM *,BIGNUM *,int)" in summary model. | | Dubious signature "(unsigned long,char *)" in summary model. | +| Dubious signature "(unsigned long,char *,unsigned int,int)" in summary model. | | Dubious signature "(unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8])" in summary model. | | Dubious signature "(unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long)" in summary model. | | Dubious signature "(unsigned short,int)" in summary model. | +| Dubious signature "(unsigned short[3])" in summary model. | +| Dubious signature "(unsigned short[3],drand48_data *)" in summary model. | +| Dubious signature "(unsigned short[3],drand48_data *,double *)" in summary model. | +| Dubious signature "(unsigned short[3],drand48_data *,long *)" in summary model. | +| Dubious signature "(unsigned short[7],drand48_data *)" in summary model. | +| Dubious signature "(utmp *,utmp **)" in summary model. | | Dubious signature "(uv__io_t *,uv__io_cb,int)" in summary model. | | Dubious signature "(uv_async_t *)" in summary model. | | Dubious signature "(uv_check_t *,uv_check_cb)" in summary model. | @@ -4600,45 +5471,110 @@ | Dubious signature "(vector &&)" in summary model. | | Dubious signature "(vector &&,const Allocator &)" in summary model. | | Dubious signature "(void *)" in summary model. | +| Dubious signature "(void **,..(*)(..))" in summary model. | +| Dubious signature "(void **,size_t,size_t)" in summary model. | | Dubious signature "(void *,CRYPTO_THREAD_RETVAL *)" in summary model. | | Dubious signature "(void *,OSSL_PARAM[])" in summary model. | | Dubious signature "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)" in summary model. | | Dubious signature "(void *,block128_f)" in summary model. | +| Dubious signature "(void *,bool)" in summary model. | +| Dubious signature "(void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t)" in summary model. | +| Dubious signature "(void *,cmsghdr **,int)" in summary model. | | Dubious signature "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)" in summary model. | | Dubious signature "(void *,const ASN1_ITEM *,int,int)" in summary model. | | Dubious signature "(void *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,const char *,const char *,void *)" in summary model. | | Dubious signature "(void *,const char *,int)" in summary model. | +| Dubious signature "(void *,const char *,void *)" in summary model. | +| Dubious signature "(void *,const in6_addr *)" in summary model. | | Dubious signature "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])" in summary model. | | Dubious signature "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)" in summary model. | +| Dubious signature "(void *,const void *,int,size_t)" in summary model. | | Dubious signature "(void *,curl_off_t,curl_off_t,curl_off_t,curl_off_t)" in summary model. | | Dubious signature "(void *,curl_off_t,int)" in summary model. | | Dubious signature "(void *,int)" in summary model. | | Dubious signature "(void *,int,const OSSL_PARAM[])" in summary model. | | Dubious signature "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)" in summary model. | +| Dubious signature "(void *,int,void *,socklen_t)" in summary model. | | Dubious signature "(void *,size_t)" in summary model. | | Dubious signature "(void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..))" in summary model. | | Dubious signature "(void *,size_t,const char *,int)" in summary model. | | Dubious signature "(void *,size_t,size_t)" in summary model. | +| Dubious signature "(void *,size_t,size_t,FILE *)" in summary model. | +| Dubious signature "(void *,size_t,size_t,__compar_fn_t)" in summary model. | | Dubious signature "(void *,size_t,size_t,const char *,int)" in summary model. | | Dubious signature "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)" in summary model. | +| Dubious signature "(void *,socklen_t)" in summary model. | +| Dubious signature "(void *,socklen_t,int)" in summary model. | +| Dubious signature "(void *,socklen_t,int,int)" in summary model. | +| Dubious signature "(void *,socklen_t,int,uint8_t *,socklen_t *,void **)" in summary model. | +| Dubious signature "(void *,socklen_t,int,uint8_t,socklen_t *,void **)" in summary model. | +| Dubious signature "(void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **)" in summary model. | | Dubious signature "(void *,sqlite3 *,int,const char *)" in summary model. | | Dubious signature "(void *,sqlite3_uint64)" in summary model. | | Dubious signature "(void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t)" in summary model. | | Dubious signature "(void *,unsigned char *,size_t *,size_t)" in summary model. | | Dubious signature "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)" in summary model. | | Dubious signature "(void *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(void *,void *)" in summary model. | | Dubious signature "(void *,void *,block128_f,block128_f,ocb128_f)" in summary model. | | Dubious signature "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | | Dubious signature "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__)" in summary model. | +| Dubious signature "(void *,void *const,size_t,size_t,__compar_d_fn_t,void *)" in summary model. | +| Dubious signature "(void *__restrict__,size_t,size_t,size_t,FILE *__restrict__)" in summary model. | +| Dubious signature "(void *const *,int)" in summary model. | | Dubious signature "(wchar_t *)" in summary model. | +| Dubious signature "(wchar_t *,const char **,size_t,mbstate_t *,locale_t)" in summary model. | +| Dubious signature "(wchar_t *,const char *,size_t,size_t)" in summary model. | +| Dubious signature "(wchar_t *,const wchar_t *,size_t)" in summary model. | +| Dubious signature "(wchar_t *,const wchar_t *,size_t,locale_t)" in summary model. | +| Dubious signature "(wchar_t *,const wchar_t *,size_t,size_t)" in summary model. | +| Dubious signature "(wchar_t *,size_t,const wchar_t *,va_list)" in summary model. | +| Dubious signature "(wchar_t *,size_t,const wchar_t *,va_list,unsigned int)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__)" in summary model. | +| Dubious signature "(wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list)" in summary model. | +| Dubious signature "(wchar_t *__restrict__,const wchar_t *__restrict__,size_t)" in summary model. | | Dubious signature "(wchar_t, const CStringT &)" in summary model. | +| Dubious signature "(wchar_t,FILE *,__FILE *)" in summary model. | | Dubious signature "(wchar_t,const CStringT &)" in summary model. | +| Dubious signature "(wint_t,FILE *,__FILE *)" in summary model. | | Dubious signature "(z_streamp,Bytef *,uInt *)" in summary model. | | Dubious signature "(z_streamp,const Bytef *,uInt)" in summary model. | | Dubious signature "(z_streamp,int *)" in summary model. | | Dubious signature "(z_streamp,unsigned int *,int *)" in summary model. | | 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[***3]" in summary model. | +| Unrecognized input specification "Argument[***4]" in summary model. | +| Unrecognized input specification "Argument[****0]" in summary model. | +| Unrecognized input specification "Argument[****1]" in summary model. | +| Unrecognized input specification "Argument[****3]" in summary model. | +| Unrecognized input specification "Argument[****4]" in summary model. | +| Unrecognized input specification "Argument[*****0]" in summary model. | +| Unrecognized input specification "Argument[*****1]" 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[****0]" in summary model. | +| Unrecognized output specification "Argument[****1]" in summary model. | +| Unrecognized output specification "Argument[*****0]" in summary model. | +| Unrecognized output specification "Argument[*****1]" in summary model. | | 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[****0]" in summary model. | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index b97ac8331026..3e03c1a69a5b 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -335,3 +335,242 @@ void mapViewOfFile(HANDLE hMapFile) { sink(*buffer); // $ ir } } + +typedef struct _SECURITY_ATTRIBUTES +{ + DWORD nLength; + LPVOID lpSecurityDescriptor; + BOOL bInheritHandle; +} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; + +typedef DWORD (*LPTHREAD_START_ROUTINE)( + LPVOID lpThreadParameter); + +HANDLE CreateThread( + LPSECURITY_ATTRIBUTES lpThreadAttributes, + SIZE_T dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPDWORD lpThreadId); + +HANDLE CreateRemoteThread( + HANDLE hProcess, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + SIZE_T dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPDWORD lpThreadId +); + +typedef ULONG_PTR DWORD_PTR; + +typedef struct _PROC_THREAD_ATTRIBUTE_ENTRY +{ + DWORD_PTR Attribute; + SIZE_T cbSize; + PVOID lpValue; +} PROC_THREAD_ATTRIBUTE_ENTRY, *LPPROC_THREAD_ATTRIBUTE_ENTRY; + +// This structure contains a list of attributes that have been added using UpdateProcThreadAttribute +typedef struct _PROC_THREAD_ATTRIBUTE_LIST +{ + DWORD dwFlags; + ULONG Size; + ULONG Count; + ULONG Reserved; + PULONG Unknown; + PROC_THREAD_ATTRIBUTE_ENTRY Entries[1]; +} PROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST; + +HANDLE CreateRemoteThreadEx( + HANDLE hProcess, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + SIZE_T dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, + LPDWORD lpThreadId +); + +struct S +{ + int x; +}; + +DWORD ThreadProc1(LPVOID lpParameter) +{ + S *s = (S *)lpParameter; + sink(s->x); // $ ir + return 0; +} + +DWORD ThreadProc2(LPVOID lpParameter) +{ + S *s = (S *)lpParameter; + sink(s->x); // $ ir + return 0; +} + +DWORD ThreadProc3(LPVOID lpParameter) +{ + S *s = (S *)lpParameter; + sink(s->x); // $ ir + return 0; +} + +int source(); + +void test_create_thread() +{ + SECURITY_ATTRIBUTES sa; + + S s; + s.x = source(); + + { + DWORD threadId; + HANDLE threadHandle = CreateThread( + &sa, + 0, + ThreadProc1, + &s, + 0, + &threadId); + } + + { + DWORD threadId; + HANDLE threadHandle = CreateRemoteThread( + nullptr, + &sa, + 0, + ThreadProc2, + &s, + 0, + &threadId); + } + + { + DWORD threadId; + PROC_THREAD_ATTRIBUTE_LIST attrList; + HANDLE threadHandle = CreateRemoteThreadEx( + nullptr, + &sa, + 0, + ThreadProc3, + &s, + 0, + &attrList, + &threadId); + } +} + +using size_t = decltype(sizeof(0)); + +volatile void * RtlCopyVolatileMemory( + volatile void *Destination, + volatile const void *Source, + size_t Length +); + +volatile void * RtlCopyDeviceMemory( + volatile void *Destination, + volatile const void *Source, + size_t Length +); + +void RtlCopyMemory( + void* Destination, + const void* Source, + size_t Length +); + +using VOID = void; + +VOID RtlCopyMemoryNonTemporal( + VOID *Destination, + const VOID *Source, + SIZE_T Length +); + +using USHORT = unsigned short; +using PWSTR = wchar_t*; +using PCWSTR = const wchar_t*; +using PCUNICODE_STRING = const struct _UNICODE_STRING*; + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING, *PUNICODE_STRING; + +VOID RtlCopyUnicodeString( + PUNICODE_STRING DestinationString, + PCUNICODE_STRING SourceString +); + +void RtlMoveMemory( + void* Destination, + const void* Source, + size_t Length +); + +volatile void * RtlMoveVolatileMemory( + volatile void *Destination, + volatile const void *Source, + size_t Length +); + +void RtlInitUnicodeString( + PUNICODE_STRING DestinationString, + PCWSTR SourceString +); + +void test_copy_and_move_memory() { + int x = source(); + + { + char dest_buffer[1024]; + RtlCopyVolatileMemory(dest_buffer, &x, sizeof(x)); + sink(dest_buffer[0]); // $ ir + } + { + char dest_buffer[1024]; + RtlCopyDeviceMemory(dest_buffer, &x, sizeof(x)); + sink(dest_buffer[0]); // $ ir + } + { + char dest_buffer[1024]; + RtlCopyMemory(dest_buffer, &x, sizeof(x)); + sink(dest_buffer[0]); // $ ir + } + { + char dest_buffer[1024]; + RtlCopyMemoryNonTemporal(dest_buffer, &x, sizeof(x)); + sink(dest_buffer[0]); // $ ir + } + { + UNICODE_STRING dest_string; + UNICODE_STRING src_string; + wchar_t buffer[1024]; + buffer[0] = source(); + + RtlInitUnicodeString(&src_string, buffer); + sink(src_string.Buffer[0]); // $ ir + RtlCopyUnicodeString(&dest_string, &src_string); + sink(dest_string.Buffer[0]); // $ ir + } + { + char dest_buffer[1024]; + RtlMoveMemory(dest_buffer, &x, sizeof(x)); + sink(dest_buffer[0]); // $ ir + } + { + volatile char dest_buffer[1024]; + RtlMoveVolatileMemory(dest_buffer, &x, sizeof(x)); + sink(dest_buffer[0]); // $ ir + } +} \ No newline at end of file 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 24f651ca3892..e19f34eb2170 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected @@ -4717,7 +4717,7 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | 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 | (no string representation) | 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] | | @@ -7767,6 +7767,34 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | taint.cpp:830:20:830:34 | call to indirect_source | taint.cpp:832:23:832:24 | in | | | taint.cpp:831:15:831:17 | out | taint.cpp:832:18:832:20 | out | | | taint.cpp:831:15:831:17 | out | taint.cpp:833:8:833:10 | out | | +| thread.cpp:10:27:10:27 | s | thread.cpp:10:27:10:27 | s | | +| thread.cpp:10:27:10:27 | s | thread.cpp:11:8:11:8 | s | | +| thread.cpp:14:26:14:26 | s | thread.cpp:15:8:15:8 | s | | +| thread.cpp:18:27:18:27 | s | thread.cpp:18:27:18:27 | s | | +| thread.cpp:18:27:18:27 | s | thread.cpp:19:8:19:8 | s | | +| thread.cpp:18:34:18:34 | y | thread.cpp:20:8:20:8 | y | | +| thread.cpp:24:5:24:5 | s | thread.cpp:25:3:25:3 | s | | +| thread.cpp:24:5:24:5 | s | thread.cpp:26:38:26:38 | s | | +| thread.cpp:24:5:24:5 | s | thread.cpp:27:37:27:37 | s | | +| thread.cpp:24:5:24:5 | s | thread.cpp:28:38:28:38 | s | | +| thread.cpp:24:5:24:5 | s | thread.cpp:32:7:32:7 | s | | +| thread.cpp:25:3:25:3 | s [post update] | thread.cpp:26:38:26:38 | s | | +| thread.cpp:25:3:25:3 | s [post update] | thread.cpp:27:37:27:37 | s | | +| thread.cpp:25:3:25:3 | s [post update] | thread.cpp:28:38:28:38 | s | | +| thread.cpp:25:3:25:3 | s [post update] | thread.cpp:32:7:32:7 | s | | +| thread.cpp:25:3:25:16 | ... = ... | thread.cpp:25:5:25:5 | x [post update] | | +| thread.cpp:25:9:25:14 | call to source | thread.cpp:25:3:25:16 | ... = ... | | +| thread.cpp:26:18:26:39 | call to thread | thread.cpp:33:1:33:1 | t1 | | +| thread.cpp:26:38:26:38 | s | thread.cpp:26:37:26:38 | & ... | | +| thread.cpp:27:18:27:38 | call to thread | thread.cpp:33:1:33:1 | t2 | | +| thread.cpp:27:37:27:37 | ref arg s | thread.cpp:28:38:28:38 | s | | +| thread.cpp:27:37:27:37 | ref arg s | thread.cpp:32:7:32:7 | s | | +| thread.cpp:28:18:28:43 | call to thread | thread.cpp:33:1:33:1 | t3 | | +| thread.cpp:28:38:28:38 | s | thread.cpp:28:37:28:38 | & ... | | +| thread.cpp:30:18:32:8 | call to thread | thread.cpp:33:1:33:1 | t4 | | +| thread.cpp:30:24:30:24 | p | thread.cpp:30:24:30:24 | p | | +| thread.cpp:30:24:30:24 | p | thread.cpp:31:10:31:10 | p | | +| thread.cpp:32:7:32:7 | s | thread.cpp:32:6:32:7 | & ... | | | vector.cpp:16:43:16:49 | source1 | vector.cpp:17:26:17:32 | source1 | | | vector.cpp:16:43:16:49 | source1 | vector.cpp:31:38:31:44 | source1 | | | vector.cpp:17:21:17:33 | call to vector | vector.cpp:19:14:19:14 | v | | 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 01e5f3b929b0..57be2e9769af 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/stl.h +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/stl.h @@ -681,4 +681,17 @@ namespace std { // the model for `format`. template int same_signature_as_format_but_different_name(format_string, Args &&...args); +} + +namespace std { + class thread { + public: + template + explicit thread(F&&, Args&&...); + + ~thread(); + + void join(); + void detach(); + }; } \ No newline at end of file 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 5311879eebf2..239ed2ec607d 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 @@ -17,22 +17,60 @@ signatureMatches | arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_TRUST_get0 | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __btowc | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __current_locale_name | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __fdopendir | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __get_errlist | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __get_errname | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __math_invalid_i | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __math_invalidf_i | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __p_class | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __p_rcode | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __p_type | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __pkey_get | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __sigdescr_np | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | __strerrordesc_np | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | _tolower | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | _toupper | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | btowc | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | c_tolower | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | c_toupper | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | curlx_sitouz | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | evp_pkey_type2name | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | inet6_option_space | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isalnum | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isalpha | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isblank | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | iscntrl | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isdigit | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isgraph | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | islower | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isprint | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ispunct | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isspace | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isupper | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | isxdigit | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_tolower | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_toupper | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | sigabbrev_np | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | sqlite3_errstr | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | strerrorname_np | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | support_report_failure | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | svcudp_create | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | tls13_alert_code | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | toascii | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | tolower | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | toupper | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | uabs | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | uv__accept | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | uv_err_name | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | uv_get_osfhandle | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | uv_strerror | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | uv_translate_sys_error | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | zError | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | __pthread_cleanup_class | __setdoit | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_STRING_type_new | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_tag2bit | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_tag2str | 0 | @@ -51,22 +89,60 @@ signatureMatches | arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_TRUST_get0 | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_TRUST_get_by_id | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __btowc | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __current_locale_name | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __fdopendir | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __get_errlist | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __get_errname | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __math_invalid_i | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __math_invalidf_i | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __p_class | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __p_rcode | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __p_type | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __pkey_get | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __sigdescr_np | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | __strerrordesc_np | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | _tolower | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | _toupper | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | btowc | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | c_tolower | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | c_toupper | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | curlx_sitouz | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | evp_pkey_type2name | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | inet6_option_space | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isalnum | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isalpha | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isblank | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | iscntrl | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isdigit | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isgraph | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | islower | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isprint | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ispunct | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isspace | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isupper | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | isxdigit | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_cmp_bodytype_to_string | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_tolower | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_toupper | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | sigabbrev_np | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | sqlite3_compileoption_get | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | sqlite3_errstr | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | strerrorname_np | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | support_report_failure | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | svcudp_create | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | tls13_alert_code | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | toascii | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | tolower | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | toupper | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | uabs | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | uv__accept | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | uv_err_name | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | uv_get_osfhandle | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | uv_strerror | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | uv_translate_sys_error | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | zError | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | __pthread_cleanup_class | __setdoit | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_STRING_type_new | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_tag2bit | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_tag2str | 0 | @@ -85,26 +161,68 @@ signatureMatches | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_TRUST_get0 | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __btowc | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __current_locale_name | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __fdopendir | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __get_errlist | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __get_errname | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __math_invalid_i | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __math_invalidf_i | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __p_class | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __p_rcode | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __p_type | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __pkey_get | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __sigdescr_np | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | __strerrordesc_np | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | _tolower | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | _toupper | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | btowc | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | c_tolower | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | c_toupper | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | curlx_sitouz | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | evp_pkey_type2name | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | inet6_option_space | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isalnum | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isalpha | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isblank | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | iscntrl | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isdigit | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isgraph | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | islower | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isprint | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ispunct | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isspace | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isupper | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | isxdigit | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_tolower | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_toupper | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sigabbrev_np | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sqlite3_errstr | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | strerrorname_np | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | support_report_failure | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | svcudp_create | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | tls13_alert_code | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | toascii | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | tolower | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | toupper | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | uabs | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | uv__accept | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | uv_err_name | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | uv_get_osfhandle | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | uv_strerror | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | uv_translate_sys_error | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | zError | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | __pthread_cleanup_class | __setdoit | 0 | +| arrayassignment.cpp:124:6:124:9 | sink | (int *) | | rresvport | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | __sleep | 0 | +| atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | curlx_uitous | 0 | +| atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | la_version | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | BIO_gethostbyname | 0 | @@ -119,26 +237,54 @@ signatureMatches | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | UI_create_method | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __basename | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __gettext | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __hash_string | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __strdup | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __textdomain | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | __tzstring | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a64l | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | charmap_opendir | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | ether_aton | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | getdate | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | inetstr2int | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | last_component | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | opt_path_end | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | opt_progname | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | repertoire_read | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | sgetsgent | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | sgetspent | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | strhash | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | uc_script_byname | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | uv__strdup | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | xstrdup | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | BrotliEncoderMaxCompressedSize | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | __libc_malloc | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | __libc_valloc | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | _dl_early_allocate | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | curlx_uztosi | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | curlx_uztosz | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | curlx_uztoui | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | curlx_uztoul | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | malloc | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_get_extension_type | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_param_bytes_to_blocks | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_quic_sstream_new | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | support_next_to_fault_allocate | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | support_next_to_fault_allocate_before | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | support_stack_alloc | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | xalloc_sigstack | 0 | | atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | | atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | | atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | @@ -167,6 +313,17 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 2 | | atl.cpp:206:10:206:17 | InsertAt | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | | atl.cpp:206:10:206:17 | InsertAt | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const char *,size_t) | | _IO_new_do_write | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const void *,size_t) | | _IO_default_xsputn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,void *,size_t) | | _IO_default_xsgetn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,void *,size_t) | | _IO_file_xsgetn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 2 | | atl.cpp:206:10:206:17 | InsertAt | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | | atl.cpp:206:10:206:17 | InsertAt | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | | atl.cpp:206:10:206:17 | InsertAt | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | @@ -241,6 +398,7 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | | atl.cpp:206:10:206:17 | InsertAt | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | | atl.cpp:206:10:206:17 | InsertAt | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (Strtab *,const char *,size_t) | | strtabadd | 2 | | atl.cpp:206:10:206:17 | InsertAt | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | | atl.cpp:206:10:206:17 | InsertAt | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | | atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | @@ -254,6 +412,14 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | | atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | | atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 2 | | atl.cpp:206:10:206:17 | InsertAt | (bufc_pool *,size_t,size_t) | | Curl_bufcp_init | 2 | | atl.cpp:206:10:206:17 | InsertAt | (bufq *,size_t,size_t) | | Curl_bufq_init | 2 | | atl.cpp:206:10:206:17 | InsertAt | (bufref *,const void *,size_t) | | Curl_bufref_memdup | 2 | @@ -263,6 +429,9 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | | atl.cpp:206:10:206:17 | InsertAt | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | | atl.cpp:206:10:206:17 | InsertAt | (char *,const char *,size_t) | | uv__strscpy | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (char *,size_t,size_t) | | __getcwd_chk | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | @@ -276,7 +445,10 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,char *,size_t) | | __libc_ns_makecanon | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,char *,size_t) | | __realpath_chk | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,char *,size_t) | | getpass_r | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,char *,size_t) | | ns_makecanon | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,const char *,size_t) | | c_strncasecmp | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 2 | @@ -284,11 +456,20 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const char *,void *,size_t) | | uv__random_readpath | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const charmap_t *,const char *,size_t) | | charmap_find_value | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const sockaddr *,char *,size_t) | | uv_ip_name | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | | atl.cpp:206:10:206:17 | InsertAt | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const void *,size_t,size_t) | | support_blob_repeat_allocate | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const_nis_name,char *,size_t) | | nis_domain_of_r | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const_nis_name,char *,size_t) | | nis_leaf_of_r | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const_nis_name,char *,size_t) | | nis_name_of_r | 2 | | atl.cpp:206:10:206:17 | InsertAt | (curl_mimepart *,const char *,size_t) | | curl_mime_data | 2 | | atl.cpp:206:10:206:17 | InsertAt | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | | atl.cpp:206:10:206:17 | InsertAt | (dynbuf *,const void *,size_t) | | Curl_dyn_addn | 2 | @@ -299,9 +480,15 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (int *,const char *,size_t) | | Curl_http_decode_status | 2 | | atl.cpp:206:10:206:17 | InsertAt | (int *,int *,size_t) | | EVP_PBE_get | 2 | | atl.cpp:206:10:206:17 | InsertAt | (int,char *,size_t) | | Curl_strerror | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (int,char *,size_t) | | __strerror_r | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (int,char *,size_t) | | __ttyname_r | 2 | | atl.cpp:206:10:206:17 | InsertAt | (int,char *,size_t) | | uv_err_name_r | 2 | | atl.cpp:206:10:206:17 | InsertAt | (int,char *,size_t) | | uv_strerror_r | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (int,const void *,size_t) | | _nl_intern_locale_data | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (int,const void *,size_t) | | writeall | 2 | | atl.cpp:206:10:206:17 | InsertAt | (int,int,size_t) | | BrotliEncoderEstimatePeakMemoryUsage | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (int,void *,size_t) | | __readall | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 2 | | atl.cpp:206:10:206:17 | InsertAt | (nghttp2_buf *,uint8_t *,size_t) | | nghttp2_buf_wrap_init | 2 | | atl.cpp:206:10:206:17 | InsertAt | (nghttp2_extension *,nghttp2_origin_entry *,size_t) | | nghttp2_frame_origin_init | 2 | | atl.cpp:206:10:206:17 | InsertAt | (nghttp2_extpri *,const uint8_t *,size_t) | | nghttp2_extpri_parse_priority | 2 | @@ -312,6 +499,9 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (nghttp2_session *,int32_t,size_t) | | nghttp2_session_consume | 2 | | atl.cpp:206:10:206:17 | InsertAt | (nghttp2_session *,nghttp2_settings_entry *,size_t) | | nghttp2_session_update_local_settings | 2 | | atl.cpp:206:10:206:17 | InsertAt | (nghttp2_settings *,nghttp2_settings_entry *,size_t) | | nghttp2_frame_unpack_settings_payload | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 2 | | atl.cpp:206:10:206:17 | InsertAt | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 2 | | atl.cpp:206:10:206:17 | InsertAt | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | | atl.cpp:206:10:206:17 | InsertAt | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | @@ -323,35 +513,62 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 2 | | atl.cpp:206:10:206:17 | InsertAt | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | | atl.cpp:206:10:206:17 | InsertAt | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (unsigned int,char *,size_t) | | __initstate | 2 | | atl.cpp:206:10:206:17 | InsertAt | (uv_thread_t *,char *,size_t) | | uv__thread_getname | 2 | | atl.cpp:206:10:206:17 | InsertAt | (uv_thread_t *,char *,size_t) | | uv_thread_getaffinity | 2 | | atl.cpp:206:10:206:17 | InsertAt | (uv_thread_t *,char *,size_t) | | uv_thread_getname | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (void **,size_t,size_t) | | __posix_memalign | 2 | | atl.cpp:206:10:206:17 | InsertAt | (void *,size_t,size_t) | | Curl_hash_str | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (void *,size_t,size_t) | | __libc_reallocarray | 2 | | atl.cpp:206:10:206:17 | InsertAt | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 2 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | BrotliEncoderMaxCompressedSize | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | __libc_malloc | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | __libc_valloc | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | _dl_early_allocate | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | curlx_uztosi | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | curlx_uztosz | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | curlx_uztoui | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | curlx_uztoul | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | malloc | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_get_extension_type | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_param_bytes_to_blocks | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_quic_sstream_new | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | support_next_to_fault_allocate | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | support_next_to_fault_allocate_before | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | support_stack_alloc | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | xalloc_sigstack | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | Jim_IntHashFunction | 0 | | atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | __sleep | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | __sleep | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | | atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | curlx_uitous | 0 | | atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | curlx_uitous | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | la_version | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | la_version | 0 | | atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | BrotliEncoderMaxCompressedSize | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | BrotliEncoderMaxCompressedSize | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | EVP_PKEY_meth_get0 | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | __libc_malloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | __libc_malloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | __libc_valloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | __libc_valloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | _dl_early_allocate | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | _dl_early_allocate | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | curlx_uztosi | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | curlx_uztosi | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | curlx_uztosz | 0 | @@ -360,6 +577,8 @@ signatureMatches | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | curlx_uztoui | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | curlx_uztoul | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | curlx_uztoul | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | malloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | malloc | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_get_extension_type | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_get_extension_type | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_param_bytes_to_blocks | 0 | @@ -368,6 +587,14 @@ signatureMatches | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_quic_sstream_new | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ssl_cert_new | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | support_next_to_fault_allocate | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | support_next_to_fault_allocate | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | support_next_to_fault_allocate_before | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | support_next_to_fault_allocate_before | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | support_stack_alloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | support_stack_alloc | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | xalloc_sigstack | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | xalloc_sigstack | 0 | | atl.cpp:409:10:409:10 | operator= | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:409:10:409:10 | operator= | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | | atl.cpp:411:5:411:12 | CComBSTR | (const CComBSTR &) | CComBSTR | Append | 0 | @@ -390,22 +617,64 @@ signatureMatches | atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __btowc | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __current_locale_name | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __fdopendir | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __get_errlist | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __get_errname | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __math_invalid_i | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __math_invalidf_i | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __p_class | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __p_rcode | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __p_type | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __pkey_get | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __sigdescr_np | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | __strerrordesc_np | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | _tolower | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | _toupper | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | btowc | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | c_tolower | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | c_toupper | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | curlx_sitouz | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | inet6_option_space | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isalnum | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isalpha | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isblank | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | iscntrl | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isdigit | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isgraph | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | islower | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isprint | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ispunct | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isspace | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isupper | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | isxdigit | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_tolower | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_toupper | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | sigabbrev_np | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | sqlite3_errstr | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | strerrorname_np | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | support_report_failure | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | svcudp_create | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | tls13_alert_code | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | toascii | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | tolower | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | toupper | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | uabs | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | uv__accept | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | uv_err_name | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | uv_get_osfhandle | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | uv_strerror | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | uv_translate_sys_error | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | zError | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | __pthread_cleanup_class | __setdoit | 0 | +| atl.cpp:413:5:413:12 | CComBSTR | (__wprintf_buffer *,const wchar_t *) | | __wprintf_buffer_puts_1 | 1 | +| atl.cpp:413:5:413:12 | CComBSTR | (const wchar_t *,const wchar_t *) | | __wcscoll | 1 | +| atl.cpp:413:5:413:12 | CComBSTR | (const wchar_t *,const wchar_t *) | | wcspbrk | 1 | +| atl.cpp:413:5:413:12 | CComBSTR | (const wchar_t *,const wchar_t *) | | wcsstr | 1 | | atl.cpp:413:5:413:12 | CComBSTR | (int,LPCOLESTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:413:5:413:12 | CComBSTR | (int,LPCOLESTR) | CComBSTR | CComBSTR | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | @@ -438,6 +707,7 @@ signatureMatches | atl.cpp:414:5:414:12 | CComBSTR | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -494,22 +764,51 @@ signatureMatches | atl.cpp:414:5:414:12 | CComBSTR | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (char **,const char *) | | Curl_setstropt | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (char **,const char *) | | __strsep | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (char *,const char *) | | xstrdup | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char **,const char *) | | uv__utf8_decode1 | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | Configcmp | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | Curl_timestrcmp | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | DES_crypt | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __bindtextdomain | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __dgettext | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __gconv_compare_alias | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strcasestr | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strcspn_generic | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strcspn_sse42 | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strpbrk_generic | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strspn_generic | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strspn_sse42 | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strstr_generic | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | __strverscmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | advance | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | c_strcasecmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | charmap_aliases | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | charmap_open | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | chroot_canon | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | get_passwd | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | gzopen | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | gzopen64 | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | iconv_open | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | openssl_fopen | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | ossl_pem_check_suffix | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | sqlite3_strglob | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | sqlite3_stricmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | step | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | tempnam | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | xfopen | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const mntent *,const char *) | | __hasmntopt | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const nis_error,const char *) | | nis_sperror | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (curl_off_t *,const char *) | | str2offset | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -519,20 +818,29 @@ signatureMatches | atl.cpp:414:5:414:12 | CComBSTR | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (gzFile,const char *) | | gzputs | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (int,LPCSTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:414:5:414:12 | CComBSTR | (int,LPCSTR) | CComBSTR | CComBSTR | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | BIO_meth_new | 0 | | atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | BIO_meth_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | _IO_new_fdopen | 0 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | _IO_new_fdopen | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | gzdopen | 0 | | atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | gzdopen | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | setlocale | 0 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | setlocale | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | xsetlocale | 0 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | xsetlocale | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (lemon *,const char *) | | file_makename | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (long *,const char *) | | secs2ms | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (long *,const char *) | | str2num | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (long *,const char *) | | str2unum | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (nss_module *,const char *) | | __nss_module_get_function | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (size_t *,const char *) | | next_protos_parse | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (slist_wc **,const char *) | | easysrc_add | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (slist_wc *,const char *) | | slist_wc_append | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -540,6 +848,7 @@ signatureMatches | atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (stringtable *,const char *) | | stringtable_add | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (unsigned long *,const char *) | | set_cert_ex | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (unsigned long *,const char *) | | set_name_ex | 1 | @@ -560,20 +869,41 @@ signatureMatches | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | UI_create_method | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __basename | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __gettext | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __hash_string | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __strdup | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __textdomain | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | __tzstring | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a64l | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | charmap_opendir | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | ether_aton | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | getdate | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | inetstr2int | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | last_component | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | opt_path_end | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | opt_progname | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | repertoire_read | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | sgetsgent | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | sgetspent | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | strhash | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | uc_script_byname | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | uv__strdup | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | xstrdup | 0 | | atl.cpp:417:5:417:12 | CComBSTR | (CComBSTR &&) | CComBSTR | CComBSTR | 0 | | atl.cpp:420:13:420:18 | Append | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:420:13:420:18 | Append | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | | atl.cpp:421:13:421:18 | Append | (wchar_t) | | operator+= | 0 | +| atl.cpp:421:13:421:18 | Append | (wchar_t) | | wcwidth | 0 | | atl.cpp:421:13:421:18 | Append | (wchar_t) | CComBSTR | Append | 0 | | atl.cpp:421:13:421:18 | Append | (wchar_t) | CSimpleStringT | operator+= | 0 | | atl.cpp:422:13:422:18 | Append | (char) | | Curl_raw_tolower | 0 | @@ -598,16 +928,36 @@ signatureMatches | atl.cpp:424:13:424:18 | Append | (const char *) | | UI_create_method | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __basename | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __gettext | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __hash_string | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __strdup | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __textdomain | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | __tzstring | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | a64l | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | charmap_opendir | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | ether_aton | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | getdate | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | inetstr2int | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | last_component | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | opt_path_end | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | opt_progname | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | repertoire_read | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | sgetsgent | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | sgetspent | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | strhash | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | uc_script_byname | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | uv__strdup | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | xstrdup | 0 | | atl.cpp:425:13:425:18 | Append | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | atl.cpp:425:13:425:18 | Append | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -671,6 +1021,19 @@ signatureMatches | atl.cpp:425:13:425:18 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:425:13:425:18 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:425:13:425:18 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:425:13:425:18 | Append | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:425:13:425:18 | Append | (FTS *,int) | | fts_children | 1 | | atl.cpp:425:13:425:18 | Append | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:425:13:425:18 | Append | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:425:13:425:18 | Append | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -799,7 +1162,15 @@ signatureMatches | atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:425:13:425:18 | Append | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:425:13:425:18 | Append | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:425:13:425:18 | Append | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:425:13:425:18 | Append | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:425:13:425:18 | Append | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:425:13:425:18 | Append | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:425:13:425:18 | Append | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:425:13:425:18 | Append | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:425:13:425:18 | Append | (char **,int) | | addrsort | 1 | | atl.cpp:425:13:425:18 | Append | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:425:13:425:18 | Append | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:425:13:425:18 | Append | (char,int) | CStringT | CStringT | 1 | @@ -864,21 +1235,37 @@ signatureMatches | atl.cpp:425:13:425:18 | Append | (const char *,int) | | Jim_StrDupLen | 1 | | atl.cpp:425:13:425:18 | Append | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:425:13:425:18 | Append | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | ftok | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:425:13:425:18 | Append | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:425:13:425:18 | Append | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:425:13:425:18 | Append | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:425:13:425:18 | Append | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:425:13:425:18 | Append | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:425:13:425:18 | Append | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:425:13:425:18 | Append | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:425:13:425:18 | Append | (double,int) | | __ldexp | 1 | +| atl.cpp:425:13:425:18 | Append | (double,int) | | __scalbn | 1 | +| atl.cpp:425:13:425:18 | Append | (double[],int) | | getloadavg | 1 | | atl.cpp:425:13:425:18 | Append | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:425:13:425:18 | Append | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:425:13:425:18 | Append | (float,int) | | __ldexpf | 1 | +| atl.cpp:425:13:425:18 | Append | (float,int) | | __scalbnf | 1 | | atl.cpp:425:13:425:18 | Append | (gzFile,int) | | gzflush | 1 | | atl.cpp:425:13:425:18 | Append | (gzFile,int) | | gzputc | 1 | | atl.cpp:425:13:425:18 | Append | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:425:13:425:18 | Append | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:425:13:425:18 | Append | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:425:13:425:18 | Append | (int,int) | | BN_security_bits | 1 | | atl.cpp:425:13:425:18 | Append | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:425:13:425:18 | Append | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | __isctype | 1 | | atl.cpp:425:13:425:18 | Append | (int,int) | | acttab_alloc | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | div | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:425:13:425:18 | Append | (long double,int) | | __ldexpl | 1 | +| atl.cpp:425:13:425:18 | Append | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:425:13:425:18 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:425:13:425:18 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:425:13:425:18 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -886,8 +1273,21 @@ signatureMatches | atl.cpp:425:13:425:18 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:425:13:425:18 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:425:13:425:18 | Append | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:425:13:425:18 | Append | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:425:13:425:18 | Append | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:425:13:425:18 | Append | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:425:13:425:18 | Append | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:425:13:425:18 | Append | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:425:13:425:18 | Append | (rule *,int) | | Configlist_add | 1 | | atl.cpp:425:13:425:18 | Append | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:425:13:425:18 | Append | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:425:13:425:18 | Append | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:425:13:425:18 | Append | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:425:13:425:18 | Append | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:425:13:425:18 | Append | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -915,6 +1315,8 @@ signatureMatches | atl.cpp:425:13:425:18 | Append | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:425:13:425:18 | Append | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:425:13:425:18 | Append | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:425:13:425:18 | Append | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:425:13:425:18 | Append | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:425:13:425:18 | Append | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:425:13:425:18 | Append | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -923,6 +1325,7 @@ signatureMatches | atl.cpp:425:13:425:18 | Append | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:425:13:425:18 | Append | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:425:13:425:18 | Append | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:425:13:425:18 | Append | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:425:13:425:18 | Append | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:426:13:426:22 | AppendBSTR | (wchar_t *) | CStringT | CStringT | 0 | | atl.cpp:427:13:427:23 | AppendBytes | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | @@ -988,6 +1391,19 @@ signatureMatches | atl.cpp:427:13:427:23 | AppendBytes | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FTS *,int) | | fts_children | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -1115,7 +1531,15 @@ signatureMatches | atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (char **,int) | | addrsort | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (char,int) | CStringT | CStringT | 1 | @@ -1185,22 +1609,41 @@ signatureMatches | atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | RSA_meth_new | 0 | | atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | ftok | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | ftok | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | gethostbyname2 | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | parse_yesno | 0 | | atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | res_gethostbyname2 | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (double,int) | | __ldexp | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (double,int) | | __scalbn | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (double[],int) | | getloadavg | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (float,int) | | __ldexpf | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (float,int) | | __scalbnf | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (gzFile,int) | | gzflush | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (gzFile,int) | | gzputc | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | BN_security_bits | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | __isctype | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | acttab_alloc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | div | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (long double,int) | | __ldexpl | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -1208,8 +1651,21 @@ signatureMatches | atl.cpp:427:13:427:23 | AppendBytes | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (rule *,int) | | Configlist_add | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -1237,6 +1693,8 @@ signatureMatches | atl.cpp:427:13:427:23 | AppendBytes | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -1245,6 +1703,7 @@ signatureMatches | atl.cpp:427:13:427:23 | AppendBytes | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:428:13:428:23 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | Add | 0 | | atl.cpp:428:13:428:23 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | CComSafeArray | 0 | @@ -1268,16 +1727,25 @@ signatureMatches | atl.cpp:440:10:440:19 | LoadString | (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | | atl.cpp:440:10:440:19 | LoadString | (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | | atl.cpp:440:10:440:19 | LoadString | (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (char *,unsigned int) | | __nis_default_access | 1 | | atl.cpp:440:10:440:19 | LoadString | (char *,unsigned int) | | utf8_fromunicode | 1 | | atl.cpp:440:10:440:19 | LoadString | (char *,unsigned int) | | uv_buf_init | 1 | | atl.cpp:440:10:440:19 | LoadString | (const uv__io_t *,unsigned int) | | uv__io_active | 1 | | atl.cpp:440:10:440:19 | LoadString | (const uv_buf_t[],unsigned int) | | uv__count_bufs | 1 | +| atl.cpp:440:10:440:19 | LoadString | (const_nis_name,unsigned int) | | __create_ib_request | 1 | +| atl.cpp:440:10:440:19 | LoadString | (grouping_iterator *,unsigned int) | | __grouping_iterator_init_none | 1 | | atl.cpp:440:10:440:19 | LoadString | (gzFile,unsigned int) | | gzbuffer | 1 | +| atl.cpp:440:10:440:19 | LoadString | (res_state,unsigned int) | | __res_get_nsaddr | 1 | +| atl.cpp:440:10:440:19 | LoadString | (unsigned int,unsigned int) | | __gnu_dev_makedev | 1 | +| atl.cpp:440:10:440:19 | LoadString | (unsigned int,unsigned int) | | gnu_dev_makedev | 1 | | atl.cpp:440:10:440:19 | LoadString | (z_streamp,unsigned int) | | inflate_fast | 1 | | atl.cpp:441:10:441:19 | LoadString | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:441:10:441:19 | LoadString | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | __sleep | 0 | +| atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | | atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | curlx_uitous | 0 | +| atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | la_version | 0 | | atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:449:15:449:24 | operator+= | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:449:15:449:24 | operator+= | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | @@ -1294,9 +1762,17 @@ signatureMatches | atl.cpp:546:13:546:15 | Add | (const T &,BOOL) | CComSafeArray | Add | 0 | | atl.cpp:546:13:546:15 | Add | (const T &,BOOL) | CComSafeArray | Add | 1 | | atl.cpp:546:13:546:15 | Add | (curl_socket_t[2],bool) | | Curl_eventfd | 1 | +| atl.cpp:546:13:546:15 | Add | (support_fuse *,bool) | | support_fuse_filter_forget | 1 | +| atl.cpp:546:13:546:15 | Add | (void *,bool) | | _dl_allocate_tls_init | 1 | +| atl.cpp:546:13:546:15 | Add | (void *,bool) | | _dl_deallocate_tls | 1 | +| atl.cpp:554:8:554:12 | GetAt | (long) | | __fdelt_chk | 0 | +| atl.cpp:554:8:554:12 | GetAt | (long) | | __math_invalid_li | 0 | +| atl.cpp:554:8:554:12 | GetAt | (long) | | __math_invalidf_li | 0 | | atl.cpp:554:8:554:12 | GetAt | (long) | | curlx_sltosi | 0 | | atl.cpp:554:8:554:12 | GetAt | (long) | | curlx_sltoui | 0 | | atl.cpp:554:8:554:12 | GetAt | (long) | | curlx_sltous | 0 | +| atl.cpp:554:8:554:12 | GetAt | (long) | | l64a | 0 | +| atl.cpp:554:8:554:12 | GetAt | (long) | | ulabs | 0 | | atl.cpp:565:13:565:17 | SetAt | (Curl_easy *,CURLcode,bool) | | Curl_http_done | 2 | | atl.cpp:565:13:565:17 | SetAt | (Curl_easy *,Curl_chunker *,bool) | | Curl_httpchunk_init | 2 | | atl.cpp:565:13:565:17 | SetAt | (Curl_easy *,Curl_chunker *,bool) | | Curl_httpchunk_reset | 2 | @@ -1306,9 +1782,17 @@ signatureMatches | atl.cpp:565:13:565:17 | SetAt | (Curl_easy *,pingpong *,bool) | | Curl_pp_state_timeout | 2 | | atl.cpp:565:13:565:17 | SetAt | (Curl_easy *,size_t,bool) | | Curl_bump_headersize | 2 | | atl.cpp:565:13:565:17 | SetAt | (GlobalConfig *,timeval *,bool) | | progress_meter | 2 | +| atl.cpp:565:13:565:17 | SetAt | (link_map *,Dl_serinfo *,bool) | | _dl_rtld_di_serinfo | 2 | +| atl.cpp:565:13:565:17 | SetAt | (link_map *,link_map_public *,bool) | | _dl_close_worker | 2 | +| atl.cpp:565:13:565:17 | SetAt | (size_t,char *[],bool) | | add_locales_to_archive | 2 | +| atl.cpp:567:8:567:17 | operator[] | (long) | | __fdelt_chk | 0 | +| atl.cpp:567:8:567:17 | operator[] | (long) | | __math_invalid_li | 0 | +| atl.cpp:567:8:567:17 | operator[] | (long) | | __math_invalidf_li | 0 | | atl.cpp:567:8:567:17 | operator[] | (long) | | curlx_sltosi | 0 | | atl.cpp:567:8:567:17 | operator[] | (long) | | curlx_sltoui | 0 | | atl.cpp:567:8:567:17 | operator[] | (long) | | curlx_sltous | 0 | +| atl.cpp:567:8:567:17 | operator[] | (long) | | l64a | 0 | +| atl.cpp:567:8:567:17 | operator[] | (long) | | ulabs | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ASN1_STRING_type_new | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ASN1_tag2bit | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ASN1_tag2str | 0 | @@ -1327,22 +1811,60 @@ signatureMatches | atl.cpp:568:8:568:17 | operator[] | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __btowc | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __current_locale_name | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __fdopendir | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __get_errlist | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __get_errname | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __math_invalid_i | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __math_invalidf_i | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __p_class | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __p_rcode | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __p_type | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __pkey_get | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __sigdescr_np | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | __strerrordesc_np | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | _tolower | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | _toupper | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | btowc | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | c_tolower | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | c_toupper | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | curlx_sitouz | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | inet6_option_space | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isalnum | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isalpha | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isblank | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | iscntrl | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isdigit | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isgraph | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | islower | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isprint | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ispunct | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isspace | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isupper | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | isxdigit | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_tolower | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_toupper | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | sigabbrev_np | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | sqlite3_errstr | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | strerrorname_np | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | support_report_failure | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | svcudp_create | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | tls13_alert_code | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | toascii | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | tolower | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | toupper | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | uabs | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | uv__accept | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | uv_err_name | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | uv_get_osfhandle | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | uv_strerror | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | uv_translate_sys_error | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | zError | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | | operator+= | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | CStringT | operator= | 0 | @@ -1380,22 +1902,60 @@ signatureMatches | atl.cpp:731:8:731:17 | operator[] | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __btowc | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __current_locale_name | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __fdopendir | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __get_errlist | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __get_errname | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __math_invalid_i | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __math_invalidf_i | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __p_class | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __p_rcode | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __p_type | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __pkey_get | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __sigdescr_np | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | __strerrordesc_np | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | _tolower | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | _toupper | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | btowc | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | c_tolower | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | c_toupper | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | curlx_sitouz | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | inet6_option_space | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isalnum | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isalpha | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isblank | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | iscntrl | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isdigit | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isgraph | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | islower | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isprint | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ispunct | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isspace | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isupper | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | isxdigit | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_tolower | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_toupper | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | sigabbrev_np | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | sqlite3_errstr | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | strerrorname_np | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | support_report_failure | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | svcudp_create | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | tls13_alert_code | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | toascii | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | tolower | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | toupper | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | uabs | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | uv__accept | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | uv_err_name | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | uv_get_osfhandle | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | uv_strerror | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | uv_translate_sys_error | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | zError | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:765:10:765:12 | Add | (const deque &,const Allocator &) | deque | deque | 1 | | atl.cpp:765:10:765:12 | Add | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:765:10:765:12 | Add | (const list &,const Allocator &) | list | list | 1 | @@ -1422,22 +1982,60 @@ signatureMatches | atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __btowc | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __current_locale_name | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __fdopendir | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __get_errlist | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __get_errname | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __math_invalid_i | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __math_invalidf_i | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __p_class | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __p_rcode | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __p_type | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __pkey_get | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __sigdescr_np | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | __strerrordesc_np | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | _tolower | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | _toupper | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | btowc | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | c_tolower | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | c_toupper | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | curlx_sitouz | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | inet6_option_space | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isalnum | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isalpha | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isblank | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | iscntrl | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isdigit | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isgraph | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | islower | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isprint | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ispunct | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isspace | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isupper | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | isxdigit | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_tolower | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_toupper | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | sigabbrev_np | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | sqlite3_errstr | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | strerrorname_np | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | support_report_failure | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | svcudp_create | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | tls13_alert_code | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | toascii | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | tolower | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | toupper | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | uabs | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | uv__accept | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | uv_err_name | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | uv_get_osfhandle | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | uv_strerror | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | uv_translate_sys_error | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | zError | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:776:10:776:14 | SetAt | (const deque &,const Allocator &) | deque | deque | 1 | | atl.cpp:776:10:776:14 | SetAt | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:776:10:776:14 | SetAt | (const list &,const Allocator &) | list | list | 1 | @@ -1462,6 +2060,7 @@ signatureMatches | atl.cpp:821:17:821:28 | Canonicalize | (unsigned long) | | BUF_MEM_new_ex | 0 | | atl.cpp:821:17:821:28 | Canonicalize | (unsigned long) | | curlx_ultouc | 0 | | atl.cpp:821:17:821:28 | Canonicalize | (unsigned long) | | curlx_ultous | 0 | +| atl.cpp:821:17:821:28 | Canonicalize | (unsigned long) | | next_prime | 0 | | atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -1490,12 +2089,15 @@ signatureMatches | atl.cpp:824:10:824:17 | CrackUrl | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | atl.cpp:824:10:824:17 | CrackUrl | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | | atl.cpp:824:10:824:17 | CrackUrl | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (hash_table *,unsigned long) | | init_hash | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (u_long,unsigned long) | | __p_option | 1 | | atl.cpp:825:17:825:25 | CreateUrl | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | | atl.cpp:825:17:825:25 | CreateUrl | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | | atl.cpp:825:17:825:25 | CreateUrl | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | | atl.cpp:825:17:825:25 | CreateUrl | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | | atl.cpp:825:17:825:25 | CreateUrl | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | | atl.cpp:825:17:825:25 | CreateUrl | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (const char *,const char *,unsigned long) | | __ngettext | 2 | | atl.cpp:825:17:825:25 | CreateUrl | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | atl.cpp:842:17:842:28 | SetExtraInfo | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | BIO_gethostbyname | 0 | @@ -1510,16 +2112,36 @@ signatureMatches | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | UI_create_method | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __basename | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __gettext | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __hash_string | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __strdup | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __textdomain | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | __tzstring | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a64l | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | charmap_opendir | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | ether_aton | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | getdate | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | inetstr2int | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | last_component | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | opt_path_end | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | opt_progname | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | repertoire_read | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | sgetsgent | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | sgetspent | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | strhash | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | uc_script_byname | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | uv__strdup | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | xstrdup | 0 | | atl.cpp:843:17:843:27 | SetHostName | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | BIO_gethostbyname | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | Curl_copy_header_value | 0 | @@ -1533,16 +2155,36 @@ signatureMatches | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | UI_create_method | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __basename | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __gettext | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __hash_string | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __strdup | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __textdomain | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | __tzstring | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a64l | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | charmap_opendir | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | ether_aton | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | getdate | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | inetstr2int | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | last_component | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | opt_path_end | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | opt_progname | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | repertoire_read | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | sgetsgent | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | sgetspent | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | strhash | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | uc_script_byname | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | uv__strdup | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | xstrdup | 0 | | atl.cpp:844:17:844:27 | SetPassword | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | BIO_gethostbyname | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | Curl_copy_header_value | 0 | @@ -1556,16 +2198,36 @@ signatureMatches | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | UI_create_method | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __basename | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __gettext | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __hash_string | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __strdup | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __textdomain | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | __tzstring | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a64l | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | charmap_opendir | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | ether_aton | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | getdate | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | inetstr2int | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | last_component | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | opt_path_end | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | opt_progname | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | repertoire_read | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | sgetsgent | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | sgetspent | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | strhash | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | uc_script_byname | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | uv__strdup | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | xstrdup | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | BIO_gethostbyname | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | Curl_copy_header_value | 0 | @@ -1579,16 +2241,36 @@ signatureMatches | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | UI_create_method | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __basename | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __gettext | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __hash_string | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __strdup | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __textdomain | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | __tzstring | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a64l | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | charmap_opendir | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | ether_aton | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | getdate | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | inetstr2int | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | last_component | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | opt_path_end | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | opt_progname | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | repertoire_read | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | sgetsgent | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | sgetspent | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | strhash | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | uc_script_byname | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | uv__strdup | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | xstrdup | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | BIO_gethostbyname | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | Curl_copy_header_value | 0 | @@ -1602,16 +2284,36 @@ signatureMatches | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | UI_create_method | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __basename | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __gettext | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __hash_string | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __strdup | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __textdomain | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | __tzstring | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a64l | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | charmap_opendir | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | ether_aton | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | getdate | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | inetstr2int | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | last_component | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | opt_path_end | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | opt_progname | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | repertoire_read | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | sgetsgent | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | sgetspent | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | strhash | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | uc_script_byname | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | uv__strdup | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | xstrdup | 0 | | atl.cpp:849:17:849:27 | SetUserName | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | BIO_gethostbyname | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | Curl_copy_header_value | 0 | @@ -1625,16 +2327,36 @@ signatureMatches | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | UI_create_method | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | X509V3_parse_list | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __basename | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __gconv_find_shlib | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __gettext | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __hash_string | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __nss_action_parse | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __strdup | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __textdomain | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __tzset_parse_tz | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | __tzstring | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a64l | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | charmap_opendir | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | ether_aton | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | getdate | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | inetstr2int | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | last_component | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | opt_path_end | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | opt_progname | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | repertoire_read | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | res_gethostbyname | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | sgetsgent | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | sgetspent | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | strhash | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | uc_script_byname | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | uv__strdup | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | xstrdup | 0 | | atl.cpp:915:5:915:18 | CSimpleStringT | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 0 | | atl.cpp:915:5:915:18 | CSimpleStringT | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 | | atl.cpp:915:5:915:18 | CSimpleStringT | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 2 | @@ -1719,6 +2441,19 @@ signatureMatches | atl.cpp:922:10:922:15 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:922:10:922:15 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:922:10:922:15 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:922:10:922:15 | Append | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:922:10:922:15 | Append | (FTS *,int) | | fts_children | 1 | | atl.cpp:922:10:922:15 | Append | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:922:10:922:15 | Append | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:922:10:922:15 | Append | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -1846,7 +2581,15 @@ signatureMatches | atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:922:10:922:15 | Append | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:922:10:922:15 | Append | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:922:10:922:15 | Append | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:922:10:922:15 | Append | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:922:10:922:15 | Append | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:922:10:922:15 | Append | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:922:10:922:15 | Append | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:922:10:922:15 | Append | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:922:10:922:15 | Append | (char **,int) | | addrsort | 1 | | atl.cpp:922:10:922:15 | Append | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:922:10:922:15 | Append | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:922:10:922:15 | Append | (char,int) | CStringT | CStringT | 1 | @@ -1911,21 +2654,37 @@ signatureMatches | atl.cpp:922:10:922:15 | Append | (const char *,int) | | Jim_StrDupLen | 1 | | atl.cpp:922:10:922:15 | Append | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:922:10:922:15 | Append | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | ftok | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:922:10:922:15 | Append | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:922:10:922:15 | Append | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:922:10:922:15 | Append | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:922:10:922:15 | Append | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:922:10:922:15 | Append | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:922:10:922:15 | Append | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:922:10:922:15 | Append | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:922:10:922:15 | Append | (double,int) | | __ldexp | 1 | +| atl.cpp:922:10:922:15 | Append | (double,int) | | __scalbn | 1 | +| atl.cpp:922:10:922:15 | Append | (double[],int) | | getloadavg | 1 | | atl.cpp:922:10:922:15 | Append | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:922:10:922:15 | Append | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:922:10:922:15 | Append | (float,int) | | __ldexpf | 1 | +| atl.cpp:922:10:922:15 | Append | (float,int) | | __scalbnf | 1 | | atl.cpp:922:10:922:15 | Append | (gzFile,int) | | gzflush | 1 | | atl.cpp:922:10:922:15 | Append | (gzFile,int) | | gzputc | 1 | | atl.cpp:922:10:922:15 | Append | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:922:10:922:15 | Append | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:922:10:922:15 | Append | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:922:10:922:15 | Append | (int,int) | | BN_security_bits | 1 | | atl.cpp:922:10:922:15 | Append | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:922:10:922:15 | Append | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | __isctype | 1 | | atl.cpp:922:10:922:15 | Append | (int,int) | | acttab_alloc | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | div | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:922:10:922:15 | Append | (long double,int) | | __ldexpl | 1 | +| atl.cpp:922:10:922:15 | Append | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:922:10:922:15 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:922:10:922:15 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:922:10:922:15 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -1933,8 +2692,21 @@ signatureMatches | atl.cpp:922:10:922:15 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:922:10:922:15 | Append | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:922:10:922:15 | Append | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:922:10:922:15 | Append | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:922:10:922:15 | Append | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:922:10:922:15 | Append | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:922:10:922:15 | Append | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:922:10:922:15 | Append | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:922:10:922:15 | Append | (rule *,int) | | Configlist_add | 1 | | atl.cpp:922:10:922:15 | Append | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:922:10:922:15 | Append | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:922:10:922:15 | Append | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:922:10:922:15 | Append | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:922:10:922:15 | Append | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:922:10:922:15 | Append | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -1962,6 +2734,8 @@ signatureMatches | atl.cpp:922:10:922:15 | Append | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:922:10:922:15 | Append | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:922:10:922:15 | Append | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:922:10:922:15 | Append | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:922:10:922:15 | Append | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:922:10:922:15 | Append | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:922:10:922:15 | Append | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -1970,6 +2744,7 @@ signatureMatches | atl.cpp:922:10:922:15 | Append | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:922:10:922:15 | Append | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:922:10:922:15 | Append | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:922:10:922:15 | Append | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:922:10:922:15 | Append | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:923:10:923:15 | Append | (PCXSTR) | | operator+= | 0 | | atl.cpp:923:10:923:15 | Append | (PCXSTR) | CSimpleStringT | operator+= | 0 | @@ -2025,9 +2800,14 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | | atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | | atl.cpp:927:17:927:25 | CopyChars | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,_IO_marker *,int) | | _IO_seekmark | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,_IO_marker *,int) | | _IO_seekwmark | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,__FILE *,int) | | fwide | 2 | | atl.cpp:927:17:927:25 | CopyChars | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | | atl.cpp:927:17:927:25 | CopyChars | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,off64_t,int) | | _IO_cookie_seek | 2 | | atl.cpp:927:17:927:25 | CopyChars | (FILE *,rule *,int) | | RulePrint | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FTS *,FTSENT *,int) | | fts_set | 2 | | atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | | atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | | atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | @@ -2133,8 +2913,13 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 0 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 1 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (_Float128,_Float128,int) | | __kernel_sinf128 | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (_Float128,_Float128,int) | | __kernel_tanf128 | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 2 | | atl.cpp:927:17:927:25 | CopyChars | (action *,FILE *,int) | | PrintAction | 2 | | atl.cpp:927:17:927:25 | CopyChars | (acttab *,int,int) | | acttab_action | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (char *,size_t,int) | | __argz_stringify | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | @@ -2178,14 +2963,23 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | | atl.cpp:927:17:927:25 | CopyChars | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,char **,int) | | __strtol | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,char **,int) | | __strtoul | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,char **,int) | | idn2_to_ascii_8z | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | CRYPTO_strdup | 1 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | __dcgettext | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | __dcgettext | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | sqlite3_strnicmp | 1 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,int,int) | | __old_strpbrk_c2 | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,long *,int) | | Jim_StringToWide | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,void *,int) | | support_readdir_check | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,wordexp_t *,int) | | wordexp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | @@ -2195,17 +2989,33 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const void *,socklen_t,int) | | res_gethostbyaddr | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const wchar_t *,wchar_t **,int) | | __wcstol | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const wchar_t *,wchar_t **,int) | | __wcstoul | 2 | | atl.cpp:927:17:927:25 | CopyChars | (curl_mimepart *,curl_mime *,int) | | Curl_mime_set_subparts | 2 | | atl.cpp:927:17:927:25 | CopyChars | (curl_mimepart *,curl_slist *,int) | | curl_mime_headers | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (database_dyn *,size_t,int) | | mempool_alloc | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (database_dyn *,time_t,int) | | prune_cache | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (double,double,int) | | __kernel_standard | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (float,float,int) | | __kernel_standard_f | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (gconv_spec *,__gconv_t *,int) | | __gconv_open | 2 | | atl.cpp:927:17:927:25 | CopyChars | (gzFile,char *,int) | | gzgets | 2 | | atl.cpp:927:17:927:25 | CopyChars | (gzFile,int,int) | | gzsetparams | 2 | | atl.cpp:927:17:927:25 | CopyChars | (gzFile,off64_t,int) | | gzseek64 | 2 | | atl.cpp:927:17:927:25 | CopyChars | (gzFile,off_t,int) | | gzseek | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (int *,short *,int) | | __lll_lock_elision | 2 | | atl.cpp:927:17:927:25 | CopyChars | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | | atl.cpp:927:17:927:25 | CopyChars | (int,int,int) | | ASN1_object_size | 2 | | atl.cpp:927:17:927:25 | CopyChars | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (long double,long double,int) | | __kernel_sinl | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (long double,long double,int) | | __kernel_standard_l | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (long double,long double,int) | | __kernel_tanl | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (mp_srcptr,int,int) | | __mpn_construct_double | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (mp_srcptr,int,int) | | __mpn_construct_float | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (mp_srcptr,int,int) | | __mpn_construct_float128 | 2 | | atl.cpp:927:17:927:25 | CopyChars | (regex_t *,const char *,int) | | jim_regcomp | 1 | | atl.cpp:927:17:927:25 | CopyChars | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (requestlist *,requestlist *,int) | | __aio_remove_request | 2 | | atl.cpp:927:17:927:25 | CopyChars | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 1 | | atl.cpp:927:17:927:25 | CopyChars | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | | atl.cpp:927:17:927:25 | CopyChars | (sqlite3 *,int,int) | | sqlite3_limit | 2 | @@ -2230,11 +3040,17 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | | atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | | atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 2 | | atl.cpp:927:17:927:25 | CopyChars | (uint8_t[56],const gf,int) | | gf_serialize | 2 | | atl.cpp:927:17:927:25 | CopyChars | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,const char *,int) | | data_string | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,const char *,int) | | data_string | 2 | | atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | | atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | | atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned int,const char *,int) | | _IO_adjust_column | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned int,const char *,int) | | _IO_adjust_column | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 2 | | atl.cpp:927:17:927:25 | CopyChars | (unsigned int,int,int) | | ossl_blob_length | 2 | | atl.cpp:927:17:927:25 | CopyChars | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | | atl.cpp:927:17:927:25 | CopyChars | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | @@ -2245,9 +3061,11 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start | 2 | | atl.cpp:927:17:927:25 | CopyChars | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start_oneshot | 2 | | atl.cpp:927:17:927:25 | CopyChars | (uv_stream_t *,int,int) | | uv__stream_open | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (void *,cmsghdr **,int) | | inet6_option_init | 2 | | atl.cpp:927:17:927:25 | CopyChars | (void *,const char *,int) | | CRYPTO_secure_free | 1 | | atl.cpp:927:17:927:25 | CopyChars | (void *,const char *,int) | | CRYPTO_secure_free | 2 | | atl.cpp:927:17:927:25 | CopyChars | (void *,curl_off_t,int) | | tool_mime_stdin_seek | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (void *,socklen_t,int) | | inet6_opt_finish | 2 | | atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,const BIGNUM *,const BIGNUM *,int) | | ossl_rsa_check_pminusq_diff | 3 | | atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,int,int,int) | | BN_bntest_rand | 3 | | atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,int,int,int) | | BN_priv_rand | 3 | @@ -2275,7 +3093,17 @@ signatureMatches | atl.cpp:928:17:928:25 | CopyChars | (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 3 | | atl.cpp:928:17:928:25 | CopyChars | (EVP_PKEY_CTX *,const char *,int,int) | | app_keygen | 3 | | atl.cpp:928:17:928:25 | CopyChars | (FFC_PARAMS *,const unsigned char *,size_t,int) | | ossl_ffc_params_set_validate_params | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,char *,char *,int) | | _IO_setb | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,const char *,const char *,int) | | _IO_new_file_fopen | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,const char *,const char *,int) | | _IO_new_file_fopen | 3 | | atl.cpp:928:17:928:25 | CopyChars | (FILE *,lemon *,int *,int) | | print_stack_union | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,mntent *,char *,int) | | __getmntent_r | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,off64_t,int,int) | | _IO_file_seekoff_mmap | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,off64_t,int,int) | | _IO_new_file_seekoff | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,off64_t,int,int) | | _IO_str_seekoff | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,off64_t,int,int) | | _IO_wfile_seekoff | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,off64_t,int,int) | | _IO_wstr_seekoff | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,wchar_t *,wchar_t *,int) | | _IO_wsetb | 3 | | atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,Jim_Obj **,int) | | Jim_SubstObj | 3 | | atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,Jim_Obj *,int) | | Jim_ScanString | 3 | | atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 2 | @@ -2314,9 +3142,12 @@ signatureMatches | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 1 | | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (_Float128,_Float128,_Float128,int) | | __lgamma_productf128 | 3 | | atl.cpp:928:17:928:25 | CopyChars | (bufq *,bufc_pool *,size_t,int) | | Curl_bufq_initp | 3 | | atl.cpp:928:17:928:25 | CopyChars | (bufq *,size_t,size_t,int) | | Curl_bufq_init2 | 3 | | atl.cpp:928:17:928:25 | CopyChars | (char *,int,const ASN1_OBJECT *,int) | | OBJ_obj2txt | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (cmsghdr *,const uint8_t *,int,int) | | inet6_option_append | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (cmsghdr *,int,int,int) | | inet6_option_alloc | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const DH *,unsigned char **,size_t,int) | | ossl_dh_key2buf | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const EVP_MD *,const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_v2_new_init | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const X509_NAME *,const ASN1_OBJECT *,char *,int) | | X509_NAME_get_text_by_OBJ | 3 | @@ -2326,13 +3157,16 @@ signatureMatches | atl.cpp:928:17:928:25 | CopyChars | (const char *,const char *,char **,int) | | idn2_register_ul | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 2 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,int,int,int) | | __old_strpbrk_c3 | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,int,int,int) | | append_str | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,size_t,const char *,int) | | CRYPTO_strndup | 1 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,size_t,const char *,int) | | CRYPTO_strndup | 2 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,size_t,const char *,int) | | CRYPTO_strndup | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 2 | | atl.cpp:928:17:928:25 | CopyChars | (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,u_char *,unsigned char *,int) | | inet_nsap_addr | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const uint8_t *,const uint8_t *,uint8_t **,int) | | idn2_register_u8 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,int,unsigned char *,int) | | ___res_send | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,RC2_KEY *,int) | | RC2_ecb_encrypt | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,const BF_KEY *,int) | | BF_ecb_encrypt | 3 | | atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,const CAST_KEY *,int) | | CAST_ecb_encrypt | 3 | @@ -2342,12 +3176,18 @@ signatureMatches | atl.cpp:928:17:928:25 | CopyChars | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 3 | | atl.cpp:928:17:928:25 | CopyChars | (deflate_state *,charf *,ulg,int) | | _tr_flush_block | 3 | | atl.cpp:928:17:928:25 | CopyChars | (deflate_state *,charf *,ulg,int) | | _tr_stored_block | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (double,double,double,int) | | __lgamma_product | 3 | | atl.cpp:928:17:928:25 | CopyChars | (int,ENGINE *,const unsigned char *,int) | | EVP_PKEY_new_mac_key | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (int,const char *,const timespec[2],int) | | __utimensat | 3 | | atl.cpp:928:17:928:25 | CopyChars | (int,const void *,const char *,int) | | Curl_ip2addr | 2 | | atl.cpp:928:17:928:25 | CopyChars | (int,const void *,const char *,int) | | Curl_ip2addr | 3 | | atl.cpp:928:17:928:25 | CopyChars | (int,int *,int *,int) | | sqlite3_status | 3 | | atl.cpp:928:17:928:25 | CopyChars | (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (int,sockaddr *,socklen_t *,int) | | xaccept4 | 3 | | atl.cpp:928:17:928:25 | CopyChars | (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object_no_relro | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (long double,long double,long double,int) | | __lgamma_productl | 3 | | atl.cpp:928:17:928:25 | CopyChars | (nghttp2_bufs *,nghttp2_frame_hd *,size_t,int) | | nghttp2_frame_add_pad | 3 | | atl.cpp:928:17:928:25 | CopyChars | (nghttp2_priority_spec *,int32_t,int32_t,int) | | nghttp2_priority_spec_init | 3 | | atl.cpp:928:17:928:25 | CopyChars | (nghttp2_session *,int32_t,const nghttp2_extpri *,int) | | nghttp2_session_change_extpri_stream_priority | 3 | @@ -2366,13 +3206,17 @@ signatureMatches | atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_X931 | 3 | | atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_none | 3 | | atl.cpp:928:17:928:25 | CopyChars | (unsigned long *,unsigned long *,unsigned long *,int) | | bn_mul_low_normal | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned long long,char *,unsigned int,int) | | _itoa | 3 | | atl.cpp:928:17:928:25 | CopyChars | (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned long,char *,unsigned int,int) | | _fitoa_word | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned long,char *,unsigned int,int) | | _itoa_word | 3 | | atl.cpp:928:17:928:25 | CopyChars | (uv_loop_t *,uv_fs_t *,int,int) | | uv__iou_fs_statx | 3 | | atl.cpp:928:17:928:25 | CopyChars | (uv_loop_t *,uv_udp_t *,unsigned int,int) | | uv__udp_init_ex | 3 | | atl.cpp:928:17:928:25 | CopyChars | (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 3 | | atl.cpp:928:17:928:25 | CopyChars | (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 1 | | atl.cpp:928:17:928:25 | CopyChars | (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 2 | | atl.cpp:928:17:928:25 | CopyChars | (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (void *,socklen_t,int,int) | | inet6_rth_init | 3 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | @@ -2424,9 +3268,14 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,_IO_marker *,int) | | _IO_seekmark | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,_IO_marker *,int) | | _IO_seekwmark | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,__FILE *,int) | | fwide | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,off64_t,int) | | _IO_cookie_seek | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,rule *,int) | | RulePrint | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FTS *,FTSENT *,int) | | fts_set | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | @@ -2532,8 +3381,13 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 0 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (_Float128,_Float128,int) | | __kernel_sinf128 | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (_Float128,_Float128,int) | | __kernel_tanf128 | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (action *,FILE *,int) | | PrintAction | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (acttab *,int,int) | | acttab_action | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (char *,size_t,int) | | __argz_stringify | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | @@ -2577,14 +3431,23 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,char **,int) | | __strtol | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,char **,int) | | __strtoul | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,char **,int) | | idn2_to_ascii_8z | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | CRYPTO_strdup | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | __dcgettext | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | __dcgettext | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | sqlite3_strnicmp | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,int,int) | | __old_strpbrk_c2 | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,long *,int) | | Jim_StringToWide | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,void *,int) | | support_readdir_check | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,wordexp_t *,int) | | wordexp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | @@ -2594,17 +3457,33 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const void *,socklen_t,int) | | res_gethostbyaddr | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const wchar_t *,wchar_t **,int) | | __wcstol | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const wchar_t *,wchar_t **,int) | | __wcstoul | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (curl_mimepart *,curl_mime *,int) | | Curl_mime_set_subparts | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (curl_mimepart *,curl_slist *,int) | | curl_mime_headers | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (database_dyn *,size_t,int) | | mempool_alloc | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (database_dyn *,time_t,int) | | prune_cache | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (double,double,int) | | __kernel_standard | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (float,float,int) | | __kernel_standard_f | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (gconv_spec *,__gconv_t *,int) | | __gconv_open | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (gzFile,char *,int) | | gzgets | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (gzFile,int,int) | | gzsetparams | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (gzFile,off64_t,int) | | gzseek64 | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (gzFile,off_t,int) | | gzseek | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int *,short *,int) | | __lll_lock_elision | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int,int,int) | | ASN1_object_size | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (long double,long double,int) | | __kernel_sinl | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (long double,long double,int) | | __kernel_standard_l | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (long double,long double,int) | | __kernel_tanl | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (mp_srcptr,int,int) | | __mpn_construct_double | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (mp_srcptr,int,int) | | __mpn_construct_float | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (mp_srcptr,int,int) | | __mpn_construct_float128 | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (regex_t *,const char *,int) | | jim_regcomp | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (requestlist *,requestlist *,int) | | __aio_remove_request | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3 *,int,int) | | sqlite3_limit | 2 | @@ -2629,11 +3508,17 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uint8_t[56],const gf,int) | | gf_serialize | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,const char *,int) | | data_string | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,const char *,int) | | data_string | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned int,const char *,int) | | _IO_adjust_column | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned int,const char *,int) | | _IO_adjust_column | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned int,int,int) | | ossl_blob_length | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | @@ -2644,9 +3529,11 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start_oneshot | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uv_stream_t *,int,int) | | uv__stream_open | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,cmsghdr **,int) | | inet6_option_init | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,const char *,int) | | CRYPTO_secure_free | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,const char *,int) | | CRYPTO_secure_free | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,curl_off_t,int) | | tool_mime_stdin_seek | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,socklen_t,int) | | inet6_opt_finish | 2 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ASN1_STRING_type_new | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ASN1_tag2bit | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ASN1_tag2str | 0 | @@ -2665,22 +3552,60 @@ signatureMatches | atl.cpp:931:11:931:15 | GetAt | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __btowc | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __current_locale_name | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __fdopendir | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __get_errlist | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __get_errname | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __math_invalid_i | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __math_invalidf_i | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __p_class | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __p_rcode | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __p_type | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __pkey_get | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __sigdescr_np | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | __strerrordesc_np | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | _tolower | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | _toupper | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | btowc | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | c_tolower | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | c_toupper | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | curlx_sitouz | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | inet6_option_space | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isalnum | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isalpha | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isblank | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | iscntrl | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isdigit | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isgraph | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | islower | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isprint | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ispunct | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isspace | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isupper | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | isxdigit | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_tolower | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_toupper | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | sigabbrev_np | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | sqlite3_errstr | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | strerrorname_np | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | support_report_failure | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | svcudp_create | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | tls13_alert_code | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | toascii | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | tolower | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | toupper | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | uabs | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | uv__accept | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | uv_err_name | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | uv_get_osfhandle | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | uv_strerror | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | uv_translate_sys_error | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | zError | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_STRING_type_new | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_tag2bit | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_tag2str | 0 | @@ -2699,22 +3624,60 @@ signatureMatches | atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __btowc | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __current_locale_name | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __fdopendir | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __get_errlist | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __get_errname | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __math_invalid_i | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __math_invalidf_i | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __p_class | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __p_rcode | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __p_type | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __pkey_get | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __sigdescr_np | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | __strerrordesc_np | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | _tolower | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | _toupper | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | btowc | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | c_tolower | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | c_toupper | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | curlx_sitouz | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | inet6_option_space | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isalnum | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isalpha | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isblank | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | iscntrl | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isdigit | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isgraph | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | islower | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isprint | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ispunct | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isspace | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isupper | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | isxdigit | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_tolower | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_toupper | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | sigabbrev_np | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | sqlite3_errstr | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | strerrorname_np | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | support_report_failure | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | svcudp_create | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | tls13_alert_code | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | toascii | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | tolower | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | toupper | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | uabs | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | uv__accept | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | uv_err_name | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | uv_get_osfhandle | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | uv_strerror | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | uv_translate_sys_error | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | zError | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_STRING_type_new | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_tag2bit | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_tag2str | 0 | @@ -2733,24 +3696,64 @@ signatureMatches | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __btowc | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __current_locale_name | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __fdopendir | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __get_errlist | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __get_errname | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __math_invalid_i | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __math_invalidf_i | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __p_class | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __p_rcode | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __p_type | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __pkey_get | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __sigdescr_np | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | __strerrordesc_np | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | _tolower | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | _toupper | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | btowc | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | c_tolower | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | c_toupper | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | curlx_sitouz | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | inet6_option_space | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isalnum | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isalpha | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isblank | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | iscntrl | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isdigit | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isgraph | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | islower | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isprint | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ispunct | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isspace | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isupper | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | isxdigit | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_tolower | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_toupper | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sigabbrev_np | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sqlite3_errstr | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | strerrorname_np | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | support_report_failure | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | svcudp_create | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | tls13_alert_code | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | toascii | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | tolower | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | toupper | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | uabs | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | uv__accept | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | uv_err_name | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | uv_get_osfhandle | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | uv_strerror | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | uv_translate_sys_error | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | zError | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:938:10:938:14 | SetAt | (XCHAR,XCHAR) | CStringT | Replace | 1 | +| atl.cpp:938:10:938:14 | SetAt | (__printf_buffer *,char) | | __printf_buffer_putc_1 | 1 | | atl.cpp:938:10:938:14 | SetAt | (char **,char) | | Curl_str_single | 1 | +| atl.cpp:938:10:938:14 | SetAt | (char **,char) | | __old_strsep_1c | 1 | | atl.cpp:938:10:938:14 | SetAt | (const CStringT &,char) | | operator+ | 1 | | atl.cpp:938:10:938:14 | SetAt | (int,XCHAR) | CStringT | Insert | 0 | | atl.cpp:938:10:938:14 | SetAt | (int,XCHAR) | CStringT | Insert | 1 | @@ -2817,6 +3820,19 @@ signatureMatches | atl.cpp:939:10:939:18 | SetString | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:939:10:939:18 | SetString | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:939:10:939:18 | SetString | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:939:10:939:18 | SetString | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:939:10:939:18 | SetString | (FTS *,int) | | fts_children | 1 | | atl.cpp:939:10:939:18 | SetString | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:939:10:939:18 | SetString | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:939:10:939:18 | SetString | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -2944,7 +3960,15 @@ signatureMatches | atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:939:10:939:18 | SetString | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:939:10:939:18 | SetString | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:939:10:939:18 | SetString | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:939:10:939:18 | SetString | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:939:10:939:18 | SetString | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:939:10:939:18 | SetString | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:939:10:939:18 | SetString | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:939:10:939:18 | SetString | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:939:10:939:18 | SetString | (char **,int) | | addrsort | 1 | | atl.cpp:939:10:939:18 | SetString | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:939:10:939:18 | SetString | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:939:10:939:18 | SetString | (char,int) | CStringT | CStringT | 1 | @@ -3009,21 +4033,37 @@ signatureMatches | atl.cpp:939:10:939:18 | SetString | (const char *,int) | | Jim_StrDupLen | 1 | | atl.cpp:939:10:939:18 | SetString | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:939:10:939:18 | SetString | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | ftok | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:939:10:939:18 | SetString | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:939:10:939:18 | SetString | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:939:10:939:18 | SetString | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:939:10:939:18 | SetString | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:939:10:939:18 | SetString | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:939:10:939:18 | SetString | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:939:10:939:18 | SetString | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:939:10:939:18 | SetString | (double,int) | | __ldexp | 1 | +| atl.cpp:939:10:939:18 | SetString | (double,int) | | __scalbn | 1 | +| atl.cpp:939:10:939:18 | SetString | (double[],int) | | getloadavg | 1 | | atl.cpp:939:10:939:18 | SetString | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:939:10:939:18 | SetString | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:939:10:939:18 | SetString | (float,int) | | __ldexpf | 1 | +| atl.cpp:939:10:939:18 | SetString | (float,int) | | __scalbnf | 1 | | atl.cpp:939:10:939:18 | SetString | (gzFile,int) | | gzflush | 1 | | atl.cpp:939:10:939:18 | SetString | (gzFile,int) | | gzputc | 1 | | atl.cpp:939:10:939:18 | SetString | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:939:10:939:18 | SetString | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:939:10:939:18 | SetString | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:939:10:939:18 | SetString | (int,int) | | BN_security_bits | 1 | | atl.cpp:939:10:939:18 | SetString | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:939:10:939:18 | SetString | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | __isctype | 1 | | atl.cpp:939:10:939:18 | SetString | (int,int) | | acttab_alloc | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | div | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:939:10:939:18 | SetString | (long double,int) | | __ldexpl | 1 | +| atl.cpp:939:10:939:18 | SetString | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:939:10:939:18 | SetString | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:939:10:939:18 | SetString | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:939:10:939:18 | SetString | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -3031,8 +4071,21 @@ signatureMatches | atl.cpp:939:10:939:18 | SetString | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:939:10:939:18 | SetString | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:939:10:939:18 | SetString | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:939:10:939:18 | SetString | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:939:10:939:18 | SetString | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:939:10:939:18 | SetString | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:939:10:939:18 | SetString | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:939:10:939:18 | SetString | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:939:10:939:18 | SetString | (rule *,int) | | Configlist_add | 1 | | atl.cpp:939:10:939:18 | SetString | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:939:10:939:18 | SetString | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:939:10:939:18 | SetString | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:939:10:939:18 | SetString | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:939:10:939:18 | SetString | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:939:10:939:18 | SetString | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -3060,6 +4113,8 @@ signatureMatches | atl.cpp:939:10:939:18 | SetString | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:939:10:939:18 | SetString | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:939:10:939:18 | SetString | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:939:10:939:18 | SetString | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:939:10:939:18 | SetString | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:939:10:939:18 | SetString | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:939:10:939:18 | SetString | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -3068,6 +4123,7 @@ signatureMatches | atl.cpp:939:10:939:18 | SetString | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:939:10:939:18 | SetString | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:939:10:939:18 | SetString | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:939:10:939:18 | SetString | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:939:10:939:18 | SetString | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:940:10:940:18 | SetString | (PCXSTR) | | operator+= | 0 | | atl.cpp:940:10:940:18 | SetString | (PCXSTR) | CSimpleStringT | operator+= | 0 | @@ -3090,22 +4146,60 @@ signatureMatches | atl.cpp:942:11:942:20 | operator[] | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __btowc | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __current_locale_name | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __fdopendir | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __get_errlist | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __get_errname | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __math_invalid_i | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __math_invalidf_i | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __p_class | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __p_rcode | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __p_type | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __pkey_get | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __sigdescr_np | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | __strerrordesc_np | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | _tolower | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | _toupper | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | btowc | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | c_tolower | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | c_toupper | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | curlx_sitouz | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | inet6_option_space | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isalnum | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isalpha | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isblank | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | iscntrl | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isdigit | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isgraph | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | islower | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isprint | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ispunct | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isspace | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isupper | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | isxdigit | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_tolower | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_toupper | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | sigabbrev_np | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | sqlite3_errstr | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | strerrorname_np | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | support_report_failure | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | svcudp_create | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | tls13_alert_code | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | toascii | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | tolower | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | toupper | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | uabs | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | uv__accept | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | uv_err_name | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | uv_get_osfhandle | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | uv_strerror | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | uv_translate_sys_error | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | zError | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | | operator+= | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | CStringT | CStringT | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | CStringT | operator= | 0 | @@ -3130,9 +4224,22 @@ signatureMatches | atl.cpp:1043:5:1043:12 | CStringT | (const VARIANT &,IAtlStringMgr *) | CStringT | CStringT | 1 | | atl.cpp:1043:5:1043:12 | CStringT | (const unsigned char *,IAtlStringMgr *) | CStringT | CStringT | 1 | | atl.cpp:1045:5:1045:12 | CStringT | (char *) | | SRP_VBASE_new | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | _IO_gets | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | __mktemp | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | __nis_default_group | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | __nis_default_owner | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | __nis_default_ttl | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | __xpg_basename | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | ctermid | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | cuserid | 0 | | atl.cpp:1045:5:1045:12 | CStringT | (char *) | | defossilize | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | des_setparity | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | dirname | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | getwd | 0 | | atl.cpp:1045:5:1045:12 | CStringT | (char *) | | make_uppercase | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | mkdtemp | 0 | | atl.cpp:1045:5:1045:12 | CStringT | (char *) | | next_item | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | strfry | 0 | | atl.cpp:1045:5:1045:12 | CStringT | (char *) | CStringT | CStringT | 0 | | atl.cpp:1046:5:1046:12 | CStringT | (unsigned char *) | CStringT | CStringT | 0 | | atl.cpp:1047:5:1047:12 | CStringT | (wchar_t *) | CStringT | CStringT | 0 | @@ -3199,6 +4306,19 @@ signatureMatches | atl.cpp:1049:5:1049:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FTS *,int) | | fts_children | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -3326,7 +4446,15 @@ signatureMatches | atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (char **,int) | | addrsort | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (char,int) | CStringT | CStringT | 0 | @@ -3392,21 +4520,37 @@ signatureMatches | atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | Jim_StrDupLen | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | ftok | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (double,int) | | __ldexp | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (double,int) | | __scalbn | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (double[],int) | | getloadavg | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (float,int) | | __ldexpf | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (float,int) | | __scalbnf | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (gzFile,int) | | gzflush | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (gzFile,int) | | gzputc | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | BN_security_bits | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | __isctype | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | acttab_alloc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | div | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (long double,int) | | __ldexpl | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -3414,8 +4558,21 @@ signatureMatches | atl.cpp:1049:5:1049:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (rule *,int) | | Configlist_add | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -3443,6 +4600,8 @@ signatureMatches | atl.cpp:1049:5:1049:12 | CStringT | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -3451,6 +4610,7 @@ signatureMatches | atl.cpp:1049:5:1049:12 | CStringT | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -3515,6 +4675,19 @@ signatureMatches | atl.cpp:1050:5:1050:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FTS *,int) | | fts_children | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -3642,7 +4815,15 @@ signatureMatches | atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (char **,int) | | addrsort | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (char,int) | CStringT | CStringT | 1 | @@ -3707,21 +4888,37 @@ signatureMatches | atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | Jim_StrDupLen | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | ftok | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (double,int) | | __ldexp | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (double,int) | | __scalbn | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (double[],int) | | getloadavg | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (float,int) | | __ldexpf | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (float,int) | | __scalbnf | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (gzFile,int) | | gzflush | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (gzFile,int) | | gzputc | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | BN_security_bits | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | __isctype | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | acttab_alloc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | div | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (long double,int) | | __ldexpl | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -3729,8 +4926,21 @@ signatureMatches | atl.cpp:1050:5:1050:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (rule *,int) | | Configlist_add | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -3758,6 +4968,8 @@ signatureMatches | atl.cpp:1050:5:1050:12 | CStringT | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -3766,6 +4978,7 @@ signatureMatches | atl.cpp:1050:5:1050:12 | CStringT | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (wchar_t,int) | CStringT | CStringT | 0 | | atl.cpp:1050:5:1050:12 | CStringT | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:1061:10:1061:21 | AppendFormat | (PCXSTR,...) | CStringT | AppendFormat | 0 | @@ -3811,26 +5024,67 @@ signatureMatches | atl.cpp:1072:14:1072:17 | Left | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __btowc | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __current_locale_name | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __fdopendir | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __get_errlist | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __get_errname | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __math_invalid_i | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __math_invalidf_i | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __p_class | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __p_rcode | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __p_type | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __pkey_get | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __sigdescr_np | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | __strerrordesc_np | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | _tolower | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | _toupper | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | btowc | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | c_tolower | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | c_toupper | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | curlx_sitouz | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | inet6_option_space | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isalnum | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isalpha | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isblank | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | iscntrl | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isdigit | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isgraph | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | islower | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isprint | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ispunct | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isspace | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isupper | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | isxdigit | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_tolower | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_toupper | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | sigabbrev_np | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | sqlite3_errstr | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | strerrorname_np | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | support_report_failure | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | svcudp_create | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | tls13_alert_code | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | toascii | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | tolower | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | toupper | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | uabs | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | uv__accept | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | uv_err_name | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | uv_get_osfhandle | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | uv_strerror | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | uv_translate_sys_error | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | zError | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | __sleep | 0 | +| atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | curlx_uitous | 0 | +| atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | la_version | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:1079:14:1079:16 | Mid | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | atl.cpp:1079:14:1079:16 | Mid | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -3895,6 +5149,19 @@ signatureMatches | atl.cpp:1079:14:1079:16 | Mid | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | atl.cpp:1079:14:1079:16 | Mid | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | atl.cpp:1079:14:1079:16 | Mid | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_default_pbackfail | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_fwide | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_init | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_init_internal | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_new_file_attach | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_new_file_overflow | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_old_init | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_sputbackc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_str_overflow | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | _IO_str_pbackfail | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FTS *,int) | | fts_children | 1 | | atl.cpp:1079:14:1079:16 | Mid | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | atl.cpp:1079:14:1079:16 | Mid | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | atl.cpp:1079:14:1079:16 | Mid | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -4022,7 +5289,15 @@ signatureMatches | atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (_Float128,int) | | __ldexpf128 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (_Float128,int) | | __scalbnf128 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (__sigset_t *,int) | | __sigdelset_compat | 1 | | atl.cpp:1079:14:1079:16 | Mid | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (addrinfo *,int) | | support_format_addrinfo | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (char **,int) | | addrsort | 1 | | atl.cpp:1079:14:1079:16 | Mid | (char *,int) | | Curl_str2addr | 1 | | atl.cpp:1079:14:1079:16 | Mid | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:1079:14:1079:16 | Mid | (char,int) | CStringT | CStringT | 1 | @@ -4087,25 +5362,44 @@ signatureMatches | atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | Jim_StrDupLen | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | ftok | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | gethostbyname2 | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | res_gethostbyname2 | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const void *,int) | | inet6_rth_getaddr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (double,int) | | __ldexp | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (double,int) | | __scalbn | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (double[],int) | | getloadavg | 1 | | atl.cpp:1079:14:1079:16 | Mid | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (fexcept_t *,int) | | fegetexceptflag | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (float,int) | | __ldexpf | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (float,int) | | __scalbnf | 1 | | atl.cpp:1079:14:1079:16 | Mid | (gzFile,int) | | gzflush | 1 | | atl.cpp:1079:14:1079:16 | Mid | (gzFile,int) | | gzputc | 1 | | atl.cpp:1079:14:1079:16 | Mid | (int *,int) | | X509_PURPOSE_set | 1 | | atl.cpp:1079:14:1079:16 | Mid | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int *,int) | | __lll_unlock_elision | 1 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | BN_security_bits | 0 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | BN_security_bits | 1 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_MD_meth_new | 0 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_MD_meth_new | 1 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_PKEY_meth_new | 0 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | __isctype | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | __isctype | 1 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | acttab_alloc | 0 | | atl.cpp:1079:14:1079:16 | Mid | (int,int) | | acttab_alloc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | div | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | div | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | inet6_rth_space | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | inet6_rth_space | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (long double,int) | | __ldexpl | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (netlink_handle *,int) | | __netlink_request | 1 | | atl.cpp:1079:14:1079:16 | Mid | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | atl.cpp:1079:14:1079:16 | Mid | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | atl.cpp:1079:14:1079:16 | Mid | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -4113,8 +5407,21 @@ signatureMatches | atl.cpp:1079:14:1079:16 | Mid | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | atl.cpp:1079:14:1079:16 | Mid | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | atl.cpp:1079:14:1079:16 | Mid | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (ns_msg,int) | | ns_msg_getflag | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (obstack *,int) | | _obstack_newchunk | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | atl.cpp:1079:14:1079:16 | Mid | (rule *,int) | | Configlist_add | 1 | | atl.cpp:1079:14:1079:16 | Mid | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sigset_t *,int) | | sigaddset | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sigset_t *,int) | | sigdelset | 1 | | atl.cpp:1079:14:1079:16 | Mid | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | atl.cpp:1079:14:1079:16 | Mid | (sqlite3 *,int) | | sqlite3_db_name | 1 | | atl.cpp:1079:14:1079:16 | Mid | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -4142,6 +5449,8 @@ signatureMatches | atl.cpp:1079:14:1079:16 | Mid | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | atl.cpp:1079:14:1079:16 | Mid | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | atl.cpp:1079:14:1079:16 | Mid | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (timespec *,int) | | __timespec_get | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (timespec *,int) | | __timespec_getres | 1 | | atl.cpp:1079:14:1079:16 | Mid | (uint16_t,int) | | tls1_group_id2nid | 1 | | atl.cpp:1079:14:1079:16 | Mid | (unsigned char *,int) | | RAND_bytes | 1 | | atl.cpp:1079:14:1079:16 | Mid | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -4150,6 +5459,7 @@ signatureMatches | atl.cpp:1079:14:1079:16 | Mid | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | atl.cpp:1079:14:1079:16 | Mid | (void *,int) | | DSO_dsobyaddr | 1 | | atl.cpp:1079:14:1079:16 | Mid | (void *,int) | | sqlite3_realloc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (void *const *,int) | | __backtrace_symbols | 1 | | atl.cpp:1079:14:1079:16 | Mid | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:1081:9:1081:15 | Replace | (PCXSTR,PCXSTR) | CStringT | Replace | 0 | | atl.cpp:1081:9:1081:15 | Replace | (PCXSTR,PCXSTR) | CStringT | Replace | 1 | @@ -4176,22 +5486,60 @@ signatureMatches | atl.cpp:1083:14:1083:18 | Right | (int) | | X509_TRUST_get0 | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | X509_TRUST_get_by_id | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __btowc | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __current_locale_name | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __fdopendir | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __get_errlist | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __get_errname | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __math_invalid_i | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __math_invalidf_i | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __p_class | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __p_rcode | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __p_type | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __pkey_get | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __sigdescr_np | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | __strerrordesc_np | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | _tolower | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | _toupper | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | btowc | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | c_tolower | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | c_toupper | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | curlx_sitouz | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | inet6_option_space | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isalnum | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isalpha | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isblank | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | iscntrl | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isdigit | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isgraph | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | islower | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isprint | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ispunct | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isspace | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isupper | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | isxdigit | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_tolower | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_toupper | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | sigabbrev_np | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | sqlite3_errstr | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | strerrorname_np | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | support_report_failure | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | svcudp_create | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | tls13_alert_code | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | toascii | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | tolower | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | toupper | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | uabs | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | uv__accept | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | uv_err_name | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | uv_get_osfhandle | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | uv_strerror | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | uv_translate_sys_error | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | zError | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | __pthread_cleanup_class | __setdoit | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | | operator+= | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | CStringT | operator= | 0 | @@ -4216,6 +5564,7 @@ signatureMatches | atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | | atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | | atl.cpp:1231:5:1231:12 | CStrBufT | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (const char *,const char *,unsigned long) | | __ngettext | 2 | | atl.cpp:1231:5:1231:12 | CStrBufT | (unsigned char *,int,unsigned long) | | UTF8_putc | 1 | | atl.cpp:1231:5:1231:12 | CStrBufT | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | bsd.cpp:12:5:12:10 | accept | (CURLM *,curl_socket_t,int *) | | curl_multi_socket | 2 | @@ -4244,6 +5593,7 @@ signatureMatches | bsd.cpp:12:5:12:10 | accept | (PACKET *,uint64_t *,int *) | | ossl_quic_wire_peek_frame_header | 2 | | bsd.cpp:12:5:12:10 | accept | (PROV_DRBG *,OSSL_PARAM[],int *) | | ossl_drbg_get_ctx_params_no_lock | 2 | | bsd.cpp:12:5:12:10 | accept | (QUIC_RSTREAM *,size_t *,int *) | | ossl_quic_rstream_available | 2 | +| bsd.cpp:12:5:12:10 | accept | (_Float128,_Float128,int *) | | __remquof128 | 2 | | bsd.cpp:12:5:12:10 | accept | (const BIGNUM *,const BIGNUM *,int *) | | ossl_ffc_validate_private_key | 2 | | bsd.cpp:12:5:12:10 | accept | (const DH *,const BIGNUM *,int *) | | DH_check_pub_key | 2 | | bsd.cpp:12:5:12:10 | accept | (const DH *,const BIGNUM *,int *) | | ossl_dh_check_priv_key | 2 | @@ -4257,6 +5607,10 @@ signatureMatches | bsd.cpp:12:5:12:10 | accept | (const SSL *,const SSL_CTX *,int *) | | ssl_get_security_level_bits | 2 | | bsd.cpp:12:5:12:10 | accept | (const X509 *,EVP_MD **,int *) | | X509_digest_sig | 2 | | bsd.cpp:12:5:12:10 | accept | (const char *,const OPT_PAIR *,int *) | | opt_pair | 2 | +| bsd.cpp:12:5:12:10 | accept | (const char *,const char *,int *) | | __gconv_compare_alias_cache | 2 | +| bsd.cpp:12:5:12:10 | accept | (const res_sym *,const char *,int *) | | __sym_ston | 2 | +| bsd.cpp:12:5:12:10 | accept | (const res_sym *,int,int *) | | __sym_ntop | 2 | +| bsd.cpp:12:5:12:10 | accept | (const res_sym *,int,int *) | | __sym_ntos | 2 | | bsd.cpp:12:5:12:10 | accept | (const unsigned char **,unsigned int,int *) | | ossl_b2i | 2 | | bsd.cpp:12:5:12:10 | accept | (const uv_tcp_t *,sockaddr *,int *) | | uv_tcp_getpeername | 1 | | bsd.cpp:12:5:12:10 | accept | (const uv_tcp_t *,sockaddr *,int *) | | uv_tcp_getpeername | 2 | @@ -4266,8 +5620,13 @@ signatureMatches | bsd.cpp:12:5:12:10 | accept | (const uv_udp_t *,sockaddr *,int *) | | uv_udp_getpeername | 2 | | bsd.cpp:12:5:12:10 | accept | (const uv_udp_t *,sockaddr *,int *) | | uv_udp_getsockname | 1 | | bsd.cpp:12:5:12:10 | accept | (const uv_udp_t *,sockaddr *,int *) | | uv_udp_getsockname | 2 | +| bsd.cpp:12:5:12:10 | accept | (double,double,int *) | | __remquo | 2 | +| bsd.cpp:12:5:12:10 | accept | (float,float,int *) | | __remquof | 2 | | bsd.cpp:12:5:12:10 | accept | (int,const char **,int *) | | sqlite3_keyword_name | 2 | | bsd.cpp:12:5:12:10 | accept | (int,int,int *) | | ssl_set_version_bound | 2 | +| bsd.cpp:12:5:12:10 | accept | (long double,long double,int *) | | __remquol | 2 | +| bsd.cpp:12:5:12:10 | accept | (pthread_mutex_t *,int,int *) | | __pthread_mutex_setprioceiling | 2 | +| bsd.cpp:12:5:12:10 | accept | (size_t,size_t *,int *) | | __malloc_hugepage_config | 2 | | bsd.cpp:12:5:12:10 | accept | (uv_handle_t *,int,int *) | | uv__socket_sockopt | 2 | | bsd.cpp:12:5:12:10 | accept | (z_streamp,unsigned int *,int *) | | deflatePending | 2 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ASN1_STRING_type_new | 0 | @@ -4288,25 +5647,66 @@ signatureMatches | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_TRUST_get0 | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_TRUST_get_by_id | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __btowc | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __current_locale_name | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __fdopendir | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __get_errlist | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __get_errname | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __math_invalid_i | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __math_invalidf_i | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __p_class | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __p_rcode | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __p_type | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __pkey_get | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __sigdescr_np | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | __strerrordesc_np | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | _tolower | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | _toupper | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | btowc | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | c_tolower | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | c_toupper | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | curlx_sitouz | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | evp_pkey_type2name | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | inet6_option_space | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isalnum | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isalpha | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isblank | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | iscntrl | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isdigit | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isgraph | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | islower | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isprint | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ispunct | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isspace | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isupper | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | isxdigit | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_cmp_bodytype_to_string | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_tolower | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_toupper | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sigabbrev_np | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sqlite3_compileoption_get | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sqlite3_errstr | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | strerrorname_np | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | support_report_failure | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | svcudp_create | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | tls13_alert_code | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | toascii | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | tolower | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | toupper | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | uabs | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | uv__accept | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | uv_err_name | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | uv_get_osfhandle | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | uv_strerror | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | uv_translate_sys_error | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | zError | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | __pthread_cleanup_class | __setdoit | 0 | | constructor_delegation.cpp:9:2:9:8 | MyValue | (Curl_easy *,bool) | | Curl_creader_set_rewind | 1 | | constructor_delegation.cpp:9:2:9:8 | MyValue | (Curl_easy *,bool) | | Curl_set_in_callback | 1 | | constructor_delegation.cpp:9:2:9:8 | MyValue | (curl_socket_t[2],bool) | | Curl_eventfd | 1 | +| constructor_delegation.cpp:9:2:9:8 | MyValue | (support_fuse *,bool) | | support_fuse_filter_forget | 1 | +| constructor_delegation.cpp:9:2:9:8 | MyValue | (void *,bool) | | _dl_allocate_tls_init | 1 | +| constructor_delegation.cpp:9:2:9:8 | MyValue | (void *,bool) | | _dl_deallocate_tls | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -4370,6 +5770,19 @@ signatureMatches | constructor_delegation.cpp:10:2:10:8 | MyValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_default_pbackfail | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_fwide | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_init | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_init_internal | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_new_file_attach | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_new_file_overflow | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_old_init | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_sputbackc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_str_overflow | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | _IO_str_pbackfail | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FTS *,int) | | fts_children | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -4497,7 +5910,15 @@ signatureMatches | constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (_Float128,int) | | __ldexpf128 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (_Float128,int) | | __scalbnf128 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (__sigset_t *,int) | | __sigdelset_compat | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (acttab *,int) | | acttab_insert | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (addrinfo *,int) | | support_format_addrinfo | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (char **,int) | | addrsort | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (char *,int) | | Curl_str2addr | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (char *,int) | | PEM_proc_type | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (char,int) | CStringT | CStringT | 1 | @@ -4562,25 +5983,44 @@ signatureMatches | constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | Jim_StrDupLen | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | RSA_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | ftok | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | gethostbyname2 | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | parse_yesno | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | res_gethostbyname2 | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const void *,int) | | inet6_rth_getaddr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (double,int) | | __ldexp | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (double,int) | | __scalbn | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (double[],int) | | getloadavg | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (fexcept_t *,int) | | fegetexceptflag | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (float,int) | | __ldexpf | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (float,int) | | __scalbnf | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (gzFile,int) | | gzflush | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (gzFile,int) | | gzputc | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int *,int) | | X509_PURPOSE_set | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int *,int) | | X509_TRUST_set | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int *,int) | | __lll_unlock_elision | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | BN_security_bits | 0 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | BN_security_bits | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_MD_meth_new | 0 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_MD_meth_new | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_PKEY_meth_new | 0 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_PKEY_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | __isctype | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | __isctype | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | acttab_alloc | 0 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | acttab_alloc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | div | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | div | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | inet6_rth_space | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | inet6_rth_space | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (long double,int) | | __ldexpl | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (netlink_handle *,int) | | __netlink_request | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -4588,8 +6028,21 @@ signatureMatches | constructor_delegation.cpp:10:2:10:8 | MyValue | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (ns_msg,int) | | ns_msg_getflag | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (obstack *,int) | | _obstack_newchunk | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (rule *,int) | | Configlist_add | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (rule *,int) | | Configlist_addbasis | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sigset_t *,int) | | sigaddset | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sigset_t *,int) | | sigdelset | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3 *,int) | | sqlite3_db_name | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -4617,6 +6070,8 @@ signatureMatches | constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (timespec *,int) | | __timespec_get | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (timespec *,int) | | __timespec_getres | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (uint16_t,int) | | tls1_group_id2nid | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (unsigned char *,int) | | RAND_bytes | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -4625,6 +6080,7 @@ signatureMatches | constructor_delegation.cpp:10:2:10:8 | MyValue | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (void *,int) | | DSO_dsobyaddr | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (void *,int) | | sqlite3_realloc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (void *const *,int) | | __backtrace_symbols | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (wchar_t,int) | CStringT | CStringT | 1 | | constructor_delegation.cpp:11:2:11:8 | MyValue | (Curl_easy *,CURLcode,bool) | | Curl_http_done | 2 | | constructor_delegation.cpp:11:2:11:8 | MyValue | (Curl_easy *,Curl_chunker *,bool) | | Curl_httpchunk_init | 2 | @@ -4635,6 +6091,9 @@ signatureMatches | constructor_delegation.cpp:11:2:11:8 | MyValue | (Curl_easy *,pingpong *,bool) | | Curl_pp_state_timeout | 2 | | constructor_delegation.cpp:11:2:11:8 | MyValue | (Curl_easy *,size_t,bool) | | Curl_bump_headersize | 2 | | constructor_delegation.cpp:11:2:11:8 | MyValue | (GlobalConfig *,timeval *,bool) | | progress_meter | 2 | +| constructor_delegation.cpp:11:2:11:8 | MyValue | (link_map *,Dl_serinfo *,bool) | | _dl_rtld_di_serinfo | 2 | +| constructor_delegation.cpp:11:2:11:8 | MyValue | (link_map *,link_map_public *,bool) | | _dl_close_worker | 2 | +| constructor_delegation.cpp:11:2:11:8 | MyValue | (size_t,char *[],bool) | | add_locales_to_archive | 2 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -4698,6 +6157,19 @@ signatureMatches | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_default_pbackfail | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_fwide | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_init | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_init_internal | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_new_file_attach | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_new_file_overflow | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_old_init | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_sputbackc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_str_overflow | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | _IO_str_pbackfail | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FTS *,int) | | fts_children | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -4825,7 +6297,15 @@ signatureMatches | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (_Float128,int) | | __ldexpf128 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (_Float128,int) | | __scalbnf128 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (__sigset_t *,int) | | __sigdelset_compat | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (acttab *,int) | | acttab_insert | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (addrinfo *,int) | | support_format_addrinfo | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (char **,int) | | addrsort | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (char *,int) | | Curl_str2addr | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (char *,int) | | PEM_proc_type | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (char,int) | CStringT | CStringT | 1 | @@ -4890,21 +6370,37 @@ signatureMatches | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | Jim_StrDupLen | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | RSA_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | ftok | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | gethostbyname2 | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | parse_yesno | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | res_gethostbyname2 | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const void *,int) | | inet6_rth_getaddr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (double,int) | | __ldexp | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (double,int) | | __scalbn | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (double[],int) | | getloadavg | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (fexcept_t *,int) | | fegetexceptflag | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (float,int) | | __ldexpf | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (float,int) | | __scalbnf | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (gzFile,int) | | gzflush | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (gzFile,int) | | gzputc | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int *,int) | | X509_PURPOSE_set | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int *,int) | | X509_TRUST_set | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int *,int) | | __lll_unlock_elision | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | BN_security_bits | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | EVP_MD_meth_new | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | EVP_PKEY_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | __isctype | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | acttab_alloc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | div | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | inet6_rth_space | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (long double,int) | | __ldexpl | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (netlink_handle *,int) | | __netlink_request | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -4912,8 +6408,21 @@ signatureMatches | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ns_msg,int) | | ns_msg_getflag | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (obstack *,int) | | _obstack_newchunk | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (rule *,int) | | Configlist_add | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (rule *,int) | | Configlist_addbasis | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sigset_t *,int) | | sigaddset | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sigset_t *,int) | | sigdelset | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3 *,int) | | sqlite3_db_name | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -4941,6 +6450,8 @@ signatureMatches | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (timespec *,int) | | __timespec_get | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (timespec *,int) | | __timespec_getres | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (uint16_t,int) | | tls1_group_id2nid | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (unsigned char *,int) | | RAND_bytes | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -4949,6 +6460,7 @@ signatureMatches | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (void *,int) | | DSO_dsobyaddr | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (void *,int) | | sqlite3_realloc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (void *const *,int) | | __backtrace_symbols | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (wchar_t,int) | CStringT | CStringT | 1 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ASN1_STRING_type_new | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ASN1_tag2bit | 0 | @@ -4968,22 +6480,60 @@ signatureMatches | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_TRUST_get0 | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_TRUST_get_by_id | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __btowc | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __current_locale_name | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __fdopendir | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __get_errlist | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __get_errname | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __math_invalid_i | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __math_invalidf_i | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __p_class | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __p_rcode | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __p_type | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __pkey_get | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __sigdescr_np | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | __strerrordesc_np | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | _tolower | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | _toupper | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | btowc | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | c_tolower | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | c_toupper | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | curlx_sitouz | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | evp_pkey_type2name | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | inet6_option_space | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isalnum | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isalpha | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isblank | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | iscntrl | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isdigit | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isgraph | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | islower | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isprint | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ispunct | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isspace | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isupper | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | isxdigit | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_cmp_bodytype_to_string | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_tolower | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_toupper | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sigabbrev_np | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sqlite3_compileoption_get | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sqlite3_errstr | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | strerrorname_np | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | support_report_failure | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | svcudp_create | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | tls13_alert_code | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | toascii | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | tolower | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | toupper | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | uabs | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | uv__accept | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | uv_err_name | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | uv_get_osfhandle | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | uv_strerror | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | uv_translate_sys_error | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | zError | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | __pthread_cleanup_class | __setdoit | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_STRING_type_new | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_tag2bit | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_tag2str | 0 | @@ -5002,43 +6552,102 @@ signatureMatches | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_TRUST_get0 | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_TRUST_get_by_id | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __btowc | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __current_locale_name | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __fdopendir | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __get_errlist | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __get_errname | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __math_invalid_i | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __math_invalidf_i | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __p_class | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __p_rcode | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __p_type | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __pkey_get | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __sigdescr_np | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | __strerrordesc_np | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | _tolower | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | _toupper | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | btowc | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | c_tolower | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | c_toupper | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | curlx_sitouz | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | evp_pkey_type2name | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | inet6_option_space | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isalnum | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isalpha | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isblank | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | iscntrl | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isdigit | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isgraph | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | islower | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isprint | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ispunct | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isspace | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isupper | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | isxdigit | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_cmp_bodytype_to_string | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_tolower | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_toupper | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sigabbrev_np | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sqlite3_compileoption_get | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sqlite3_errstr | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | strerrorname_np | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | support_report_failure | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | svcudp_create | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | tls13_alert_code | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | toascii | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | tolower | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | toupper | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | uabs | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | uv__accept | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | uv_err_name | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | uv_get_osfhandle | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | uv_strerror | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | uv_translate_sys_error | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | zError | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | __pthread_cleanup_class | __setdoit | 0 | | file://:0:0:0:0 | operator delete | (void *) | | Curl_cpool_upkeep | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | __dlclose | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | __libc_dlclose | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | __libc_free | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | __malloc_usable_size | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | _dl_allocate_tls | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | _dl_close | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | malloc_usable_size | 0 | | file://:0:0:0:0 | operator delete | (void *) | | ossl_kdf_data_new | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | support_shared_free | 0 | | file://:0:0:0:0 | operator new | (unsigned long) | | BN_num_bits_word | 0 | | file://:0:0:0:0 | operator new | (unsigned long) | | BUF_MEM_new_ex | 0 | | file://:0:0:0:0 | operator new | (unsigned long) | | curlx_ultouc | 0 | | file://:0:0:0:0 | operator new | (unsigned long) | | curlx_ultous | 0 | +| file://:0:0:0:0 | operator new | (unsigned long) | | next_prime | 0 | | format.cpp:5:5:5:12 | snprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 2 | | format.cpp:5:5:5:12 | snprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | +| format.cpp:5:5:5:12 | snprintf | (char **,int,const char *,...) | | ___asprintf_chk | 2 | +| format.cpp:5:5:5:12 | snprintf | (char **,int,const char *,...) | | ___asprintf_chk | 3 | | format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 0 | | format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 1 | | format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 2 | | format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | __strfmon | 0 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | __strfmon | 1 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | __strfmon | 2 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | __strfmon | 3 | | format.cpp:5:5:5:12 | snprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 2 | | format.cpp:5:5:5:12 | snprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 3 | +| format.cpp:5:5:5:12 | snprintf | (ucontext_t *,..(*)(..),int,...) | | __makecontext | 3 | | format.cpp:6:5:6:11 | sprintf | (CURLSH *,CURLSHoption,...) | | curl_share_setopt | 2 | | format.cpp:6:5:6:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | | format.cpp:6:5:6:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | +| format.cpp:6:5:6:11 | sprintf | (char **,const char *,...) | | ___asprintf | 1 | +| format.cpp:6:5:6:11 | sprintf | (char **,const char *,...) | | ___asprintf | 2 | | format.cpp:6:5:6:11 | sprintf | (curl_httppost **,curl_httppost **,...) | | curl_formadd | 2 | | format.cpp:7:5:7:12 | swprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | +| format.cpp:7:5:7:12 | swprintf | (char **,int,const char *,...) | | ___asprintf_chk | 3 | | format.cpp:7:5:7:12 | swprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | +| format.cpp:7:5:7:12 | swprintf | (char *,size_t,const char *,...) | | __strfmon | 3 | | format.cpp:7:5:7:12 | swprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 3 | +| format.cpp:7:5:7:12 | swprintf | (ucontext_t *,..(*)(..),int,...) | | __makecontext | 3 | | format.cpp:14:5:14:13 | vsnprintf | (..(*)(..),..(*)(..),..(*)(..),void *) | | libssh2_session_init_ex | 3 | | format.cpp:14:5:14:13 | vsnprintf | (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 3 | | format.cpp:14:5:14:13 | vsnprintf | (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 3 | @@ -5099,6 +6708,8 @@ signatureMatches | format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 3 | | format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 3 | | format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,int,const char *,va_list) | | ___vfprintf_chk | 2 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,int,const char *,va_list) | | ___vfprintf_chk | 3 | | format.cpp:14:5:14:13 | vsnprintf | (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 3 | | format.cpp:14:5:14:13 | vsnprintf | (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 3 | | format.cpp:14:5:14:13 | vsnprintf | (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 3 | @@ -5127,6 +6738,10 @@ signatureMatches | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 1 | | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 2 | | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | ___vsnprintf | 0 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | ___vsnprintf | 1 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | ___vsnprintf | 2 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | ___vsnprintf | 3 | | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 0 | | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 1 | | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 2 | @@ -5137,6 +6752,13 @@ signatureMatches | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,size_t,void *) | | tool_mime_stdin_read | 3 | | format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,size_t,void *) | | tool_read_cb | 3 | | format.cpp:14:5:14:13 | vsnprintf | (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const char *,const char *,__gnuc_va_list,va_list) | | _IO_vsscanf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vscanf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vscanf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const char *,int,void *,void *) | | support_readdir_r_check | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vwscanf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vwscanf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (hash_table *,const void *,size_t,void *) | | insert_entry | 3 | | format.cpp:14:5:14:13 | vsnprintf | (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 2 | | format.cpp:14:5:14:13 | vsnprintf | (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 3 | | format.cpp:14:5:14:13 | vsnprintf | (int,int,const char *,va_list) | | ERR_vset_error | 2 | @@ -5149,17 +6771,29 @@ signatureMatches | format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 3 | | format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 3 | | format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (void *,const char *,const char *,void *) | | _dl_vsym | 2 | +| format.cpp:14:5:14:13 | vsnprintf | (void *,const char *,const char *,void *) | | _dl_vsym | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (wchar_t *,size_t,const wchar_t *,va_list) | | __vswprintf | 3 | | format.cpp:16:5:16:13 | mysprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 2 | | format.cpp:16:5:16:13 | mysprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | +| format.cpp:16:5:16:13 | mysprintf | (char **,int,const char *,...) | | ___asprintf_chk | 2 | +| format.cpp:16:5:16:13 | mysprintf | (char **,int,const char *,...) | | ___asprintf_chk | 3 | | format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 0 | | format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 1 | | format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 2 | | format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | __strfmon | 0 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | __strfmon | 1 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | __strfmon | 2 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | __strfmon | 3 | | format.cpp:16:5:16:13 | mysprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 2 | | format.cpp:16:5:16:13 | mysprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 3 | +| format.cpp:16:5:16:13 | mysprintf | (ucontext_t *,..(*)(..),int,...) | | __makecontext | 3 | | format.cpp:28:5:28:10 | sscanf | (CURLSH *,CURLSHoption,...) | | curl_share_setopt | 2 | | format.cpp:28:5:28:10 | sscanf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | | format.cpp:28:5:28:10 | sscanf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | +| format.cpp:28:5:28:10 | sscanf | (char **,const char *,...) | | ___asprintf | 1 | +| format.cpp:28:5:28:10 | sscanf | (char **,const char *,...) | | ___asprintf | 2 | | format.cpp:28:5:28:10 | sscanf | (curl_httppost **,curl_httppost **,...) | | curl_formadd | 2 | | format.cpp:142:8:142:13 | strlen | (const char *) | | BIO_gethostbyname | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | Curl_copy_header_value | 0 | @@ -5173,20 +6807,53 @@ signatureMatches | format.cpp:142:8:142:13 | strlen | (const char *) | | UI_create_method | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | X509V3_parse_list | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | X509_LOOKUP_meth_new | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __basename | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __gconv_find_shlib | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __gettext | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __hash_string | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __nss_action_parse | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __strdup | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __textdomain | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __tzset_parse_tz | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | __tzstring | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | a2i_IPADDRESS | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | a2i_IPADDRESS_NC | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | a64l | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | charmap_opendir | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | ether_aton | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | getdate | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | inetstr2int | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | last_component | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | opt_path_end | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | opt_progname | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | ossl_lh_strcasehash | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | repertoire_read | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | res_gethostbyname | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | sgetsgent | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | sgetspent | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | strhash | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | uc_script_byname | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | uv__strdup | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | xstrdup | 0 | | map.cpp:8:6:8:9 | sink | (char *) | | SRP_VBASE_new | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | _IO_gets | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | __mktemp | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | __nis_default_group | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | __nis_default_owner | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | __nis_default_ttl | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | __xpg_basename | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | ctermid | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | cuserid | 0 | | map.cpp:8:6:8:9 | sink | (char *) | | defossilize | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | des_setparity | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | dirname | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | getwd | 0 | | map.cpp:8:6:8:9 | sink | (char *) | | make_uppercase | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | mkdtemp | 0 | | map.cpp:8:6:8:9 | sink | (char *) | | next_item | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | strfry | 0 | | map.cpp:8:6:8:9 | sink | (char *) | CStringT | CStringT | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | BIO_gethostbyname | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | Curl_copy_header_value | 0 | @@ -5200,16 +6867,37 @@ signatureMatches | map.cpp:9:6:9:9 | sink | (const char *) | | UI_create_method | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | X509V3_parse_list | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | X509_LOOKUP_meth_new | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __basename | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __gconv_find_shlib | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __gettext | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __hash_string | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __nss_action_parse | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __strdup | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __textdomain | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __tzset_parse_tz | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | __tzstring | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | a2i_IPADDRESS | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | a2i_IPADDRESS_NC | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | a64l | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | charmap_opendir | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | ether_aton | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | getdate | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | inetstr2int | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | last_component | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | opt_path_end | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | opt_progname | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | ossl_lh_strcasehash | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | repertoire_read | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | res_gethostbyname | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | sgetsgent | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | sgetspent | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | strhash | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | uc_script_byname | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | uv__strdup | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | xstrdup | 0 | +| map.cpp:442:7:442:19 | indirect_sink | (int *) | | rresvport | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ASN1_STRING_type_new | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ASN1_tag2bit | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ASN1_tag2str | 0 | @@ -5228,26 +6916,77 @@ signatureMatches | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_TRUST_get0 | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_TRUST_get_by_id | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __btowc | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __current_locale_name | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __fdopendir | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __get_errlist | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __get_errname | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __math_invalid_i | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __math_invalidf_i | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __p_class | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __p_rcode | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __p_type | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __pkey_get | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __sigdescr_np | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | __strerrordesc_np | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | _tolower | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | _toupper | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | btowc | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | c_tolower | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | c_toupper | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | curlx_sitouz | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | evp_pkey_type2name | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | inet6_option_space | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isalnum | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isalpha | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isblank | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | iscntrl | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isdigit | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isgraph | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | islower | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isprint | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ispunct | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isspace | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isupper | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | isxdigit | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_cmp_bodytype_to_string | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_tolower | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_toupper | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sigabbrev_np | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sqlite3_compileoption_get | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sqlite3_errstr | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | strerrorname_np | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | support_report_failure | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | svcudp_create | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | tls13_alert_code | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | toascii | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | tolower | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | toupper | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | uabs | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | uv__accept | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | uv_err_name | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | uv_get_osfhandle | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | uv_strerror | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | uv_translate_sys_error | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | zError | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | __pthread_cleanup_class | __setdoit | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | SRP_VBASE_new | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | _IO_gets | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | __mktemp | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | __nis_default_group | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | __nis_default_owner | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | __nis_default_ttl | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | __xpg_basename | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | ctermid | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | cuserid | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | defossilize | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | des_setparity | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | dirname | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | getwd | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | make_uppercase | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | mkdtemp | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | next_item | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | strfry | 0 | | set.cpp:8:6:8:9 | sink | (char *) | CStringT | CStringT | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ASN1_STRING_type_new | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ASN1_tag2bit | 0 | @@ -5267,22 +7006,61 @@ signatureMatches | smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_TRUST_get0 | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __btowc | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __current_locale_name | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __fdopendir | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __get_errlist | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __get_errname | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __math_invalid_i | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __math_invalidf_i | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __p_class | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __p_rcode | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __p_type | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __pkey_get | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __sigdescr_np | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | __strerrordesc_np | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | _tolower | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | _toupper | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | btowc | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | c_tolower | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | c_toupper | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | curlx_sitouz | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | evp_pkey_type2name | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | inet6_option_space | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isalnum | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isalpha | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isblank | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | iscntrl | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isdigit | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isgraph | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | islower | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isprint | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ispunct | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isspace | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isupper | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | isxdigit | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_tolower | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_toupper | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | sigabbrev_np | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | sqlite3_errstr | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | strerrorname_np | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | support_report_failure | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | svcudp_create | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | tls13_alert_code | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | toascii | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | tolower | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | toupper | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | uabs | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | uv__accept | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | uv_err_name | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | uv_get_osfhandle | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | uv_strerror | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | uv_translate_sys_error | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | zError | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | __pthread_cleanup_class | __setdoit | 0 | +| smart_pointer.cpp:5:6:5:9 | sink | (int *) | | rresvport | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_tag2str | 0 | @@ -5301,22 +7079,60 @@ signatureMatches | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __btowc | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __p_class | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __p_type | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | _tolower | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | _toupper | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | btowc | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | c_tolower | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | c_toupper | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isalnum | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isalpha | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isblank | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isdigit | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isgraph | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | islower | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isprint | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ispunct | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isspace | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isupper | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | isxdigit | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | toascii | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | tolower | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | toupper | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | uabs | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | uv__accept | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | zError | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -5335,22 +7151,60 @@ signatureMatches | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __btowc | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __p_class | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __p_type | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | _tolower | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | _toupper | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | btowc | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | c_tolower | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | c_toupper | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isalnum | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isalpha | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isblank | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isdigit | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isgraph | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | islower | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isprint | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ispunct | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isspace | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isupper | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | isxdigit | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | toascii | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | tolower | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | toupper | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | uabs | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | uv__accept | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | zError | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -5369,22 +7223,60 @@ signatureMatches | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __btowc | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __p_class | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __p_type | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | _tolower | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | _toupper | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | btowc | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | c_tolower | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | c_toupper | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isalnum | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isalpha | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isblank | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isdigit | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isgraph | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | islower | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isprint | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ispunct | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isspace | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isupper | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | isxdigit | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | toascii | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | tolower | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | toupper | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | uabs | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | uv__accept | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | zError | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -5403,22 +7295,60 @@ signatureMatches | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __btowc | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __p_class | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __p_type | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | _tolower | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | _toupper | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | btowc | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | c_tolower | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | c_toupper | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isalnum | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isalpha | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isblank | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isdigit | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isgraph | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | islower | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isprint | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ispunct | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isspace | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isupper | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | isxdigit | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | toascii | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | tolower | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | toupper | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | uabs | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | uv__accept | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | zError | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -5437,22 +7367,60 @@ signatureMatches | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __btowc | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __p_class | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __p_type | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | _tolower | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | _toupper | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | btowc | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | c_tolower | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | c_toupper | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isalnum | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isalpha | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isblank | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isdigit | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isgraph | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | islower | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isprint | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ispunct | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isspace | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isupper | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | isxdigit | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | toascii | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | tolower | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | toupper | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | uabs | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | uv__accept | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | zError | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_tag2str | 0 | @@ -5471,22 +7439,60 @@ signatureMatches | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __btowc | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __p_class | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __p_type | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | _tolower | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | _toupper | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | btowc | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | c_tolower | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | c_toupper | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isalnum | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isalpha | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isblank | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isdigit | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isgraph | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | islower | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isprint | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ispunct | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isspace | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isupper | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | isxdigit | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | toascii | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | tolower | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | toupper | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | uabs | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | uv__accept | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | zError | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_tag2str | 0 | @@ -5505,22 +7511,60 @@ signatureMatches | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_TRUST_get0 | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_TRUST_get_by_id | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __btowc | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __current_locale_name | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __fdopendir | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __get_errlist | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __get_errname | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __math_invalid_i | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __math_invalidf_i | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __p_class | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __p_rcode | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __p_type | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __pkey_get | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __sigdescr_np | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | __strerrordesc_np | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | _tolower | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | _toupper | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | btowc | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | c_tolower | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | c_toupper | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | curlx_sitouz | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | inet6_option_space | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isalnum | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isalpha | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isblank | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | iscntrl | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isdigit | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isgraph | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | islower | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isprint | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ispunct | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isspace | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isupper | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | isxdigit | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sigabbrev_np | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | strerrorname_np | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | support_report_failure | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | svcudp_create | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | toascii | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | tolower | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | toupper | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | uabs | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | uv__accept | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | uv_err_name | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | uv_get_osfhandle | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | uv_strerror | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | uv_translate_sys_error | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | zError | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | __pthread_cleanup_class | __setdoit | 0 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -5584,6 +7628,19 @@ signatureMatches | standalone_iterators.cpp:103:27:103:36 | operator+= | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_default_pbackfail | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_fwide | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_init | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_init_internal | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_new_file_attach | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_new_file_overflow | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_old_init | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_sputbackc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_str_overflow | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | _IO_str_pbackfail | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FTS *,int) | | fts_children | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -5711,7 +7768,15 @@ signatureMatches | standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (_Float128,int) | | __ldexpf128 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (_Float128,int) | | __scalbnf128 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (__sigset_t *,int) | | __sigdelset_compat | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (acttab *,int) | | acttab_insert | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (addrinfo *,int) | | support_format_addrinfo | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (char **,int) | | addrsort | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (char *,int) | | Curl_str2addr | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (char *,int) | | PEM_proc_type | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (char,int) | CStringT | CStringT | 1 | @@ -5776,21 +7841,37 @@ signatureMatches | standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | Jim_StrDupLen | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | RSA_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | ftok | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | gethostbyname2 | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | parse_yesno | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | res_gethostbyname2 | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const void *,int) | | inet6_rth_getaddr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (double,int) | | __ldexp | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (double,int) | | __scalbn | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (double[],int) | | getloadavg | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (fexcept_t *,int) | | fegetexceptflag | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (float,int) | | __ldexpf | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (float,int) | | __scalbnf | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (gzFile,int) | | gzflush | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (gzFile,int) | | gzputc | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (int *,int) | | X509_PURPOSE_set | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (int *,int) | | X509_TRUST_set | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int *,int) | | __lll_unlock_elision | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | BN_security_bits | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | EVP_MD_meth_new | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | EVP_PKEY_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | __isctype | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | acttab_alloc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | div | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | inet6_rth_space | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (long double,int) | | __ldexpl | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (netlink_handle *,int) | | __netlink_request | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -5798,8 +7879,21 @@ signatureMatches | standalone_iterators.cpp:103:27:103:36 | operator+= | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (ns_msg,int) | | ns_msg_getflag | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (obstack *,int) | | _obstack_newchunk | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (rule *,int) | | Configlist_add | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (rule *,int) | | Configlist_addbasis | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sigset_t *,int) | | sigaddset | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sigset_t *,int) | | sigdelset | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3 *,int) | | sqlite3_db_name | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -5827,6 +7921,8 @@ signatureMatches | standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (timespec *,int) | | __timespec_get | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (timespec *,int) | | __timespec_getres | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (uint16_t,int) | | tls1_group_id2nid | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (unsigned char *,int) | | RAND_bytes | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -5835,6 +7931,7 @@ signatureMatches | standalone_iterators.cpp:103:27:103:36 | operator+= | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (void *,int) | | DSO_dsobyaddr | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (void *,int) | | sqlite3_realloc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (void *const *,int) | | __backtrace_symbols | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (wchar_t,int) | CStringT | CStringT | 1 | | stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | @@ -5926,6 +8023,86 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errname | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errname | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errname | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errname | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __get_errname | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_class | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_class | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_class | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_class | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_class | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_type | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_type | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_type | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_type | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __p_type | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | _toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | btowc | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | btowc | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | c_tolower | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | c_tolower | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | c_tolower | 0 | @@ -5946,6 +8123,71 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalnum | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalnum | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalnum | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalnum | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalnum | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalpha | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalpha | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalpha | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalpha | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isalpha | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isblank | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isblank | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isblank | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isblank | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isblank | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | iscntrl | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | iscntrl | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | iscntrl | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | iscntrl | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | iscntrl | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isgraph | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isgraph | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isgraph | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isgraph | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isgraph | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | islower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | islower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | islower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | islower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | islower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isprint | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isprint | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isprint | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isprint | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isprint | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ispunct | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ispunct | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ispunct | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ispunct | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ispunct | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isspace | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isspace | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isspace | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isspace | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isspace | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isxdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isxdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isxdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isxdigit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | isxdigit | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | @@ -5961,6 +8203,11 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sigabbrev_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sigabbrev_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sigabbrev_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sigabbrev_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sigabbrev_np | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | @@ -5971,11 +8218,46 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | svcudp_create | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | svcudp_create | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | svcudp_create | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | svcudp_create | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | svcudp_create | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toascii | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toascii | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toascii | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toascii | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toascii | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | uabs | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | uabs | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | uabs | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | uabs | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | uabs | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | uv__accept | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | uv__accept | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | uv__accept | 0 | @@ -6006,6 +8288,11 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | zError | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | zError | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | zError | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ASN1_STRING_type_new | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ASN1_tag2bit | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ASN1_tag2str | 0 | @@ -6024,22 +8311,60 @@ signatureMatches | stl.h:54:12:54:21 | operator-- | (int) | | X509_TRUST_get0 | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __btowc | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __current_locale_name | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __fdopendir | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __get_errlist | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __get_errname | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __math_invalid_i | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __math_invalidf_i | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __p_class | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __p_rcode | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __p_type | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __pkey_get | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __sigdescr_np | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | __strerrordesc_np | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | _tolower | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | _toupper | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | btowc | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | c_tolower | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | c_toupper | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | curlx_sitouz | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | evp_pkey_type2name | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | inet6_option_space | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isalnum | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isalpha | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isblank | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | iscntrl | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isdigit | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isgraph | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | islower | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isprint | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ispunct | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isspace | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isupper | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | isxdigit | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ossl_tolower | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ossl_toupper | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | sigabbrev_np | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | sqlite3_compileoption_get | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | sqlite3_errstr | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | strerrorname_np | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | support_report_failure | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | svcudp_create | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | tls13_alert_code | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | toascii | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | tolower | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | toupper | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | uabs | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | uv__accept | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | uv_err_name | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | uv_get_osfhandle | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | uv_strerror | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | uv_translate_sys_error | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | zError | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ASN1_tag2bit | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ASN1_tag2str | 0 | @@ -6058,22 +8383,60 @@ signatureMatches | stl.h:59:12:59:20 | operator+ | (int) | | X509_TRUST_get0 | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __btowc | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __current_locale_name | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __fdopendir | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __get_errlist | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __get_errname | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __math_invalid_i | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __math_invalidf_i | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __p_class | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __p_rcode | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __p_type | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __pkey_get | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __sigdescr_np | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | __strerrordesc_np | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | _tolower | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | _toupper | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | btowc | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | c_tolower | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | c_toupper | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | curlx_sitouz | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | evp_pkey_type2name | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | inet6_option_space | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isalnum | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isalpha | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isblank | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | iscntrl | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isdigit | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isgraph | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | islower | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isprint | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ispunct | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isspace | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isupper | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | isxdigit | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ossl_tolower | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ossl_toupper | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | sigabbrev_np | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | sqlite3_errstr | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | strerrorname_np | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | support_report_failure | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | svcudp_create | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | tls13_alert_code | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | toascii | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | tolower | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | toupper | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | uabs | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | uv__accept | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | uv_err_name | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | uv_get_osfhandle | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | uv_strerror | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | uv_translate_sys_error | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | zError | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ASN1_STRING_type_new | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ASN1_tag2bit | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ASN1_tag2str | 0 | @@ -6092,22 +8455,60 @@ signatureMatches | stl.h:60:12:60:20 | operator- | (int) | | X509_TRUST_get0 | 0 | | stl.h:60:12:60:20 | operator- | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:60:12:60:20 | operator- | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __btowc | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __current_locale_name | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __fdopendir | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __get_errlist | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __get_errname | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __math_invalid_i | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __math_invalidf_i | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __p_class | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __p_rcode | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __p_type | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __pkey_get | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __sigdescr_np | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | __strerrordesc_np | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | _tolower | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | _toupper | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | btowc | 0 | | stl.h:60:12:60:20 | operator- | (int) | | c_tolower | 0 | | stl.h:60:12:60:20 | operator- | (int) | | c_toupper | 0 | | stl.h:60:12:60:20 | operator- | (int) | | curlx_sitouz | 0 | | stl.h:60:12:60:20 | operator- | (int) | | evp_pkey_type2name | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | inet6_option_space | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isalnum | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isalpha | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isblank | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | iscntrl | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isdigit | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isgraph | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | islower | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isprint | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ispunct | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isspace | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isupper | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | isxdigit | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ossl_tolower | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ossl_toupper | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | sigabbrev_np | 0 | | stl.h:60:12:60:20 | operator- | (int) | | sqlite3_compileoption_get | 0 | | stl.h:60:12:60:20 | operator- | (int) | | sqlite3_errstr | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | strerrorname_np | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | support_report_failure | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | svcudp_create | 0 | | stl.h:60:12:60:20 | operator- | (int) | | tls13_alert_code | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | toascii | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | tolower | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | toupper | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | uabs | 0 | | stl.h:60:12:60:20 | operator- | (int) | | uv__accept | 0 | | stl.h:60:12:60:20 | operator- | (int) | | uv_err_name | 0 | | stl.h:60:12:60:20 | operator- | (int) | | uv_get_osfhandle | 0 | | stl.h:60:12:60:20 | operator- | (int) | | uv_strerror | 0 | | stl.h:60:12:60:20 | operator- | (int) | | uv_translate_sys_error | 0 | | stl.h:60:12:60:20 | operator- | (int) | | zError | 0 | +| stl.h:60:12:60:20 | operator- | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ASN1_STRING_type_new | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ASN1_STRING_type_new | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ASN1_tag2bit | 0 | @@ -6144,6 +8545,38 @@ signatureMatches | stl.h:61:13:61:22 | operator+= | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | X509_VERIFY_PARAM_get0 | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __btowc | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __btowc | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __current_locale_name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __current_locale_name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __fdopendir | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __fdopendir | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __get_errlist | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __get_errlist | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __get_errname | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __get_errname | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __math_invalid_i | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __math_invalid_i | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __math_invalidf_i | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __math_invalidf_i | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __p_class | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __p_class | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __p_rcode | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __p_rcode | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __p_type | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __p_type | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __pkey_get | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __pkey_get | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __sigdescr_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __sigdescr_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __strerrordesc_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | __strerrordesc_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | _tolower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | _tolower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | _toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | _toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | btowc | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | btowc | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | c_tolower | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | c_tolower | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | c_toupper | 0 | @@ -6152,18 +8585,60 @@ signatureMatches | stl.h:61:13:61:22 | operator+= | (int) | | curlx_sitouz | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | evp_pkey_type2name | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | evp_pkey_type2name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | inet6_option_space | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | inet6_option_space | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isalnum | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isalnum | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isalpha | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isalpha | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isblank | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isblank | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | iscntrl | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | iscntrl | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isdigit | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isdigit | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isgraph | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isgraph | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | islower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | islower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isprint | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isprint | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ispunct | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ispunct | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isspace | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isspace | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isxdigit | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | isxdigit | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_tolower | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_tolower | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_toupper | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | sigabbrev_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | sigabbrev_np | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_compileoption_get | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_compileoption_get | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_errstr | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_errstr | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | strerrorname_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | strerrorname_np | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | support_report_failure | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | support_report_failure | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | svcudp_create | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | svcudp_create | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | tls13_alert_code | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | tls13_alert_code | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | toascii | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | toascii | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | tolower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | tolower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | uabs | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | uabs | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | uv__accept | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | uv__accept | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | uv_err_name | 0 | @@ -6176,6 +8651,8 @@ signatureMatches | stl.h:61:13:61:22 | operator+= | (int) | | uv_translate_sys_error | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | zError | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | zError | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | __pthread_cleanup_class | __setdoit | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ASN1_STRING_type_new | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ASN1_tag2bit | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ASN1_tag2str | 0 | @@ -6194,22 +8671,60 @@ signatureMatches | stl.h:62:13:62:22 | operator-= | (int) | | X509_TRUST_get0 | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __btowc | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __current_locale_name | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __fdopendir | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __get_errlist | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __get_errname | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __math_invalid_i | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __math_invalidf_i | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __p_class | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __p_rcode | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __p_type | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __pkey_get | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __sigdescr_np | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | __strerrordesc_np | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | _tolower | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | _toupper | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | btowc | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | c_tolower | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | c_toupper | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | curlx_sitouz | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | evp_pkey_type2name | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | inet6_option_space | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isalnum | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isalpha | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isblank | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | iscntrl | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isdigit | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isgraph | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | islower | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isprint | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ispunct | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isspace | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isupper | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | isxdigit | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ossl_tolower | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ossl_toupper | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | sigabbrev_np | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | sqlite3_compileoption_get | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | sqlite3_errstr | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | strerrorname_np | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | support_report_failure | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | svcudp_create | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | tls13_alert_code | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | toascii | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | tolower | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | toupper | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | uabs | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | uv__accept | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | uv_err_name | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | uv_get_osfhandle | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | uv_strerror | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | uv_translate_sys_error | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | zError | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ASN1_STRING_type_new | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ASN1_tag2bit | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ASN1_tag2str | 0 | @@ -6228,22 +8743,60 @@ signatureMatches | stl.h:64:18:64:27 | operator[] | (int) | | X509_TRUST_get0 | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __btowc | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __current_locale_name | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __fdopendir | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __get_errlist | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __get_errname | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __math_invalid_i | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __math_invalidf_i | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __p_class | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __p_rcode | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __p_type | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __pkey_get | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __sigdescr_np | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | __strerrordesc_np | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | _tolower | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | _toupper | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | btowc | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | c_tolower | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | c_toupper | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | curlx_sitouz | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | evp_pkey_type2name | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | inet6_option_space | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isalnum | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isalpha | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isblank | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | iscntrl | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isdigit | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isgraph | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | islower | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isprint | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ispunct | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isspace | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isupper | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | isxdigit | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ossl_tolower | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ossl_toupper | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | sigabbrev_np | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | sqlite3_errstr | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | strerrorname_np | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | support_report_failure | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | svcudp_create | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | tls13_alert_code | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | toascii | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | tolower | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | toupper | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | uabs | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | uv__accept | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | uv_err_name | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | uv_get_osfhandle | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | uv_strerror | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | uv_translate_sys_error | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | zError | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ASN1_tag2bit | 0 | @@ -6280,6 +8833,38 @@ signatureMatches | stl.h:91:24:91:33 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __btowc | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __btowc | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __current_locale_name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __fdopendir | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __get_errlist | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __get_errname | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __get_errname | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __math_invalid_i | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __math_invalidf_i | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __p_class | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __p_class | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __p_rcode | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __p_type | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __p_type | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __pkey_get | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __sigdescr_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | __strerrordesc_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | _tolower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | _tolower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | _toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | _toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | btowc | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | btowc | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | c_tolower | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | c_tolower | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | c_toupper | 0 | @@ -6288,18 +8873,60 @@ signatureMatches | stl.h:91:24:91:33 | operator++ | (int) | | curlx_sitouz | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | evp_pkey_type2name | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | inet6_option_space | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isalnum | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isalnum | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isalpha | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isalpha | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isblank | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isblank | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | iscntrl | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | iscntrl | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isdigit | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isdigit | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isgraph | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isgraph | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | islower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | islower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isprint | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isprint | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ispunct | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ispunct | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isspace | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isspace | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isxdigit | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | isxdigit | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_tolower | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_tolower | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_toupper | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | sigabbrev_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | sigabbrev_np | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_errstr | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | strerrorname_np | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | support_report_failure | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | svcudp_create | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | svcudp_create | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | toascii | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | toascii | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | tolower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | tolower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | uabs | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | uabs | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | uv__accept | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | uv__accept | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | uv_err_name | 0 | @@ -6312,6 +8939,8 @@ signatureMatches | stl.h:91:24:91:33 | operator++ | (int) | | uv_translate_sys_error | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | zError | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | zError | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | deque | assign | 0 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | deque | assign | 1 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | forward_list | assign | 0 | @@ -6368,6 +8997,8 @@ signatureMatches | stl.h:218:33:218:35 | get | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | stl.h:218:33:218:35 | get | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | | stl.h:218:33:218:35 | get | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:218:33:218:35 | get | (hash_table *,unsigned long) | | init_hash | 1 | +| stl.h:218:33:218:35 | get | (u_long,unsigned long) | | __p_option | 1 | | stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -6396,6 +9027,8 @@ signatureMatches | stl.h:220:33:220:36 | read | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | stl.h:220:33:220:36 | read | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | | stl.h:220:33:220:36 | read | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:220:33:220:36 | read | (hash_table *,unsigned long) | | init_hash | 1 | +| stl.h:220:33:220:36 | read | (u_long,unsigned long) | | __p_option | 1 | | stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -6424,6 +9057,8 @@ signatureMatches | stl.h:221:14:221:21 | readsome | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | stl.h:221:14:221:21 | readsome | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | | stl.h:221:14:221:21 | readsome | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:221:14:221:21 | readsome | (hash_table *,unsigned long) | | init_hash | 1 | +| stl.h:221:14:221:21 | readsome | (u_long,unsigned long) | | __p_option | 1 | | stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -6452,6 +9087,8 @@ signatureMatches | stl.h:225:32:225:38 | getline | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | stl.h:225:32:225:38 | getline | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | | stl.h:225:32:225:38 | getline | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:225:32:225:38 | getline | (hash_table *,unsigned long) | | init_hash | 1 | +| stl.h:225:32:225:38 | getline | (u_long,unsigned long) | | __p_option | 1 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | deque | insert | 2 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | forward_list | insert_after | 2 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | list | insert | 2 | @@ -6474,22 +9111,60 @@ signatureMatches | stl.h:240:33:240:42 | operator<< | (int) | | X509_TRUST_get0 | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | X509_TRUST_get_by_id | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __btowc | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __current_locale_name | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __fdopendir | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __get_errlist | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __get_errname | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __math_invalid_i | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __math_invalidf_i | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __p_class | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __p_rcode | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __p_type | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __pkey_get | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __sigdescr_np | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | __strerrordesc_np | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | _tolower | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | _toupper | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | btowc | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | c_tolower | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | c_toupper | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | curlx_sitouz | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | evp_pkey_type2name | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | inet6_option_space | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isalnum | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isalpha | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isblank | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | iscntrl | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isdigit | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isgraph | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | islower | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isprint | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | ispunct | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isspace | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isupper | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | isxdigit | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | ossl_tolower | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | ossl_toupper | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | sigabbrev_np | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | sqlite3_compileoption_get | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | sqlite3_errstr | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | strerrorname_np | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | support_report_failure | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | svcudp_create | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | tls13_alert_code | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | toascii | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | tolower | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | toupper | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | uabs | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | uv__accept | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | uv_err_name | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | uv_get_osfhandle | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | uv_strerror | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | uv_translate_sys_error | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | zError | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | __pthread_cleanup_class | __setdoit | 0 | | stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -6518,6 +9193,8 @@ signatureMatches | stl.h:243:33:243:37 | write | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | stl.h:243:33:243:37 | write | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | | stl.h:243:33:243:37 | write | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:243:33:243:37 | write | (hash_table *,unsigned long) | | init_hash | 1 | +| stl.h:243:33:243:37 | write | (u_long,unsigned long) | | __p_option | 1 | | stl.h:294:12:294:17 | vector | (const deque &,const Allocator &) | deque | deque | 1 | | stl.h:294:12:294:17 | vector | (const deque &,const Allocator &) | deque | deque | 1 | | stl.h:294:12:294:17 | vector | (const deque &,const Allocator &) | deque | deque | 1 | @@ -6640,12 +9317,30 @@ signatureMatches | stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __sleep | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __sleep | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __sleep | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __sleep | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __sleep | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __sleep | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | curlx_uitous | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | curlx_uitous | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | curlx_uitous | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | curlx_uitous | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | curlx_uitous | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | curlx_uitous | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | la_version | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | la_version | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | la_version | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | la_version | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | la_version | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | la_version | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | @@ -6653,7 +9348,10 @@ signatureMatches | stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | | stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | | stl.h:318:13:318:14 | at | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:318:13:318:14 | at | (unsigned int) | | __sleep | 0 | +| stl.h:318:13:318:14 | at | (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | | stl.h:318:13:318:14 | at | (unsigned int) | | curlx_uitous | 0 | +| stl.h:318:13:318:14 | at | (unsigned int) | | la_version | 0 | | stl.h:318:13:318:14 | at | (unsigned int) | | ssl3_get_cipher | 0 | | stl.h:331:12:331:17 | insert | (const_iterator,T &&) | deque | insert | 0 | | stl.h:331:12:331:17 | insert | (const_iterator,T &&) | deque | insert | 1 | @@ -6773,6 +9471,7 @@ signatureMatches | stl.h:611:33:611:45 | unordered_set | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | | stl.h:611:33:611:45 | unordered_set | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | | stl.h:611:33:611:45 | unordered_set | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| stl.h:611:33:611:45 | unordered_set | (const char *,const char *,unsigned long) | | __ngettext | 2 | | stl.h:611:33:611:45 | unordered_set | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | stl.h:623:36:623:47 | emplace_hint | (format_string,Args &&) | | format | 1 | | stl.h:623:36:623:47 | emplace_hint | (format_string,Args &&) | | format | 1 | @@ -6810,16 +9509,36 @@ signatureMatches | string.cpp:17:6:17:9 | sink | (const char *) | | UI_create_method | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | X509V3_parse_list | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | X509_LOOKUP_meth_new | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __basename | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __gconv_find_shlib | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __gettext | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __hash_string | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __nss_action_parse | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __strdup | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __textdomain | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __tzset_parse_tz | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | __tzstring | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | a2i_IPADDRESS | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | a2i_IPADDRESS_NC | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | a64l | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | charmap_opendir | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | ether_aton | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | getdate | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | inetstr2int | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | last_component | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | opt_path_end | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | opt_progname | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | ossl_lh_strcasehash | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | repertoire_read | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | res_gethostbyname | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | sgetsgent | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | sgetspent | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | strhash | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | uc_script_byname | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | uv__strdup | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | xstrdup | 0 | | string.cpp:19:6:19:9 | sink | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | string.cpp:19:6:19:9 | sink | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | | string.cpp:19:6:19:9 | sink | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | @@ -6850,6 +9569,7 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | string.cpp:19:6:19:9 | sink | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | string.cpp:19:6:19:9 | sink | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| string.cpp:19:6:19:9 | sink | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | string.cpp:19:6:19:9 | sink | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | string.cpp:19:6:19:9 | sink | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | string.cpp:19:6:19:9 | sink | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -6906,7 +9626,12 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | string.cpp:19:6:19:9 | sink | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | string.cpp:19:6:19:9 | sink | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| string.cpp:19:6:19:9 | sink | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| string.cpp:19:6:19:9 | sink | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| string.cpp:19:6:19:9 | sink | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | string.cpp:19:6:19:9 | sink | (char **,const char *) | | Curl_setstropt | 1 | +| string.cpp:19:6:19:9 | sink | (char **,const char *) | | __strsep | 1 | +| string.cpp:19:6:19:9 | sink | (char *,const char *) | | xstrdup | 1 | | string.cpp:19:6:19:9 | sink | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | string.cpp:19:6:19:9 | sink | (const char **,const char *) | | uv__utf8_decode1 | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | Configcmp | 0 | @@ -6917,14 +9642,52 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | DES_crypt | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __bind_textdomain_codeset | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __bindtextdomain | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __bindtextdomain | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __dgettext | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __dgettext | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __gconv_compare_alias | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __gconv_compare_alias | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strcasestr | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strcasestr | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strcspn_generic | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strcspn_generic | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strcspn_sse42 | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strcspn_sse42 | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strpbrk_generic | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strpbrk_generic | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strpbrk_sse42 | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strspn_generic | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strspn_generic | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strspn_sse42 | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strspn_sse42 | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strstr_generic | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strstr_generic | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strverscmp | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | __strverscmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | _dl_cache_libcmp | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | advance | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | advance | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | c_strcasecmp | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | c_strcasecmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | charmap_aliases | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | charmap_aliases | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | charmap_open | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | charmap_open | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | chroot_canon | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | chroot_canon | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | get_passwd | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | get_passwd | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | gzopen | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | gzopen | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | gzopen64 | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | gzopen64 | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | iconv_open | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | iconv_open | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | openssl_fopen | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | openssl_fopen | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | ossl_pem_check_suffix | 0 | @@ -6935,6 +9698,14 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_strglob | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_stricmp | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_stricmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | step | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | step | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | tempnam | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | tempnam | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | xfopen | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | xfopen | 1 | +| string.cpp:19:6:19:9 | sink | (const mntent *,const char *) | | __hasmntopt | 1 | +| string.cpp:19:6:19:9 | sink | (const nis_error,const char *) | | nis_sperror | 1 | | string.cpp:19:6:19:9 | sink | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | string.cpp:19:6:19:9 | sink | (curl_off_t *,const char *) | | str2offset | 1 | | string.cpp:19:6:19:9 | sink | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -6944,16 +9715,22 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | string.cpp:19:6:19:9 | sink | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | string.cpp:19:6:19:9 | sink | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| string.cpp:19:6:19:9 | sink | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | string.cpp:19:6:19:9 | sink | (gzFile,const char *) | | gzputs | 1 | | string.cpp:19:6:19:9 | sink | (int,const char *) | | BIO_meth_new | 1 | +| string.cpp:19:6:19:9 | sink | (int,const char *) | | _IO_new_fdopen | 1 | | string.cpp:19:6:19:9 | sink | (int,const char *) | | gzdopen | 1 | +| string.cpp:19:6:19:9 | sink | (int,const char *) | | setlocale | 1 | +| string.cpp:19:6:19:9 | sink | (int,const char *) | | xsetlocale | 1 | | string.cpp:19:6:19:9 | sink | (lemon *,const char *) | | file_makename | 1 | | string.cpp:19:6:19:9 | sink | (long *,const char *) | | secs2ms | 1 | | string.cpp:19:6:19:9 | sink | (long *,const char *) | | str2num | 1 | | string.cpp:19:6:19:9 | sink | (long *,const char *) | | str2unum | 1 | +| string.cpp:19:6:19:9 | sink | (nss_module *,const char *) | | __nss_module_get_function | 1 | | string.cpp:19:6:19:9 | sink | (size_t *,const char *) | | next_protos_parse | 1 | | string.cpp:19:6:19:9 | sink | (slist_wc **,const char *) | | easysrc_add | 1 | | string.cpp:19:6:19:9 | sink | (slist_wc *,const char *) | | slist_wc_append | 1 | +| string.cpp:19:6:19:9 | sink | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | string.cpp:19:6:19:9 | sink | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | string.cpp:19:6:19:9 | sink | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | string.cpp:19:6:19:9 | sink | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -6961,6 +9738,7 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | string.cpp:19:6:19:9 | sink | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | string.cpp:19:6:19:9 | sink | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| string.cpp:19:6:19:9 | sink | (stringtable *,const char *) | | stringtable_add | 1 | | string.cpp:19:6:19:9 | sink | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | string.cpp:19:6:19:9 | sink | (unsigned long *,const char *) | | set_cert_ex | 1 | | string.cpp:19:6:19:9 | sink | (unsigned long *,const char *) | | set_name_ex | 1 | @@ -6989,22 +9767,60 @@ signatureMatches | stringstream.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get0 | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __btowc | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __current_locale_name | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __fdopendir | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __get_errlist | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __get_errname | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __math_invalid_i | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __math_invalidf_i | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __p_class | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __p_rcode | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __p_type | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __pkey_get | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __sigdescr_np | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | __strerrordesc_np | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | _tolower | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | _toupper | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | btowc | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | c_tolower | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | c_toupper | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | curlx_sitouz | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | evp_pkey_type2name | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | inet6_option_space | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isalnum | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isalpha | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isblank | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | iscntrl | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isdigit | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isgraph | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | islower | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isprint | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ispunct | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isspace | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isupper | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | isxdigit | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_tolower | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_toupper | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | sigabbrev_np | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | sqlite3_errstr | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | strerrorname_np | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | support_report_failure | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | svcudp_create | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | tls13_alert_code | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | toascii | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | tolower | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | toupper | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | uabs | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | uv__accept | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | uv_err_name | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | uv_get_osfhandle | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | uv_strerror | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | uv_translate_sys_error | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | zError | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | __pthread_cleanup_class | __setdoit | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_STRING_type_new | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_tag2bit | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_tag2str | 0 | @@ -7023,22 +9839,60 @@ signatureMatches | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_TRUST_get0 | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_TRUST_get_by_id | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __btowc | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __current_locale_name | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __fdopendir | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __get_errlist | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __get_errname | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __math_invalid_i | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __math_invalidf_i | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __p_class | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __p_rcode | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __p_type | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __pkey_get | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __sigdescr_np | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | __strerrordesc_np | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | _tolower | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | _toupper | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | btowc | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | c_tolower | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | c_toupper | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | curlx_sitouz | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | evp_pkey_type2name | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | inet6_option_space | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isalnum | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isalpha | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isblank | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | iscntrl | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isdigit | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isgraph | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | islower | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isprint | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ispunct | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isspace | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isupper | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | isxdigit | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_cmp_bodytype_to_string | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_tolower | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_toupper | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sigabbrev_np | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sqlite3_compileoption_get | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sqlite3_errstr | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | strerrorname_np | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | support_report_failure | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | svcudp_create | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | tls13_alert_code | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | toascii | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | tolower | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | toupper | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | uabs | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | uv__accept | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | uv_err_name | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | uv_get_osfhandle | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | uv_strerror | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | uv_translate_sys_error | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | zError | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | __pthread_cleanup_class | __setdoit | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_STRING_type_new | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_tag2bit | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_tag2str | 0 | @@ -7057,22 +9911,60 @@ signatureMatches | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_TRUST_get0 | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_TRUST_get_by_id | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __btowc | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __current_locale_name | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __fdopendir | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __get_errlist | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __get_errname | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __math_invalid_i | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __math_invalidf_i | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __p_class | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __p_rcode | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __p_type | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __pkey_get | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __sigdescr_np | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | __strerrordesc_np | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | _tolower | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | _toupper | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | btowc | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | c_tolower | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | c_toupper | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | curlx_sitouz | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | evp_pkey_type2name | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | inet6_option_space | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isalnum | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isalpha | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isblank | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | iscntrl | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isdigit | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isgraph | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | islower | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isprint | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ispunct | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isspace | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isupper | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | isxdigit | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_cmp_bodytype_to_string | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_tolower | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_toupper | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sigabbrev_np | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sqlite3_compileoption_get | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sqlite3_errstr | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | strerrorname_np | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | support_report_failure | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | svcudp_create | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | tls13_alert_code | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | toascii | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | tolower | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | toupper | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | uabs | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | uv__accept | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | uv_err_name | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | uv_get_osfhandle | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | uv_strerror | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | uv_translate_sys_error | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | zError | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | __pthread_cleanup_class | __setdoit | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_STRING_type_new | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_tag2bit | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_tag2str | 0 | @@ -7091,22 +9983,60 @@ signatureMatches | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_TRUST_get0 | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_TRUST_get_by_id | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __btowc | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __current_locale_name | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __fdopendir | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __get_errlist | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __get_errname | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __math_invalid_i | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __math_invalidf_i | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __p_class | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __p_rcode | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __p_type | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __pkey_get | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __sigdescr_np | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | __strerrordesc_np | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | _tolower | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | _toupper | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | btowc | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | c_tolower | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | c_toupper | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | curlx_sitouz | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | evp_pkey_type2name | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | inet6_option_space | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isalnum | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isalpha | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isblank | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | iscntrl | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isdigit | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isgraph | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | islower | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isprint | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ispunct | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isspace | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isupper | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | isxdigit | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_cmp_bodytype_to_string | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_tolower | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_toupper | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sigabbrev_np | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sqlite3_compileoption_get | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sqlite3_errstr | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | strerrorname_np | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | support_report_failure | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | svcudp_create | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | tls13_alert_code | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | toascii | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | tolower | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | toupper | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | uabs | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | uv__accept | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | uv_err_name | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | uv_get_osfhandle | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | uv_strerror | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | uv_translate_sys_error | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | zError | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:4:6:4:21 | arithAssignments | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -7170,6 +10100,19 @@ signatureMatches | taint.cpp:4:6:4:21 | arithAssignments | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FTS *,int) | | fts_children | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -7297,7 +10240,15 @@ signatureMatches | taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (char **,int) | | addrsort | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (char,int) | CStringT | CStringT | 1 | @@ -7362,25 +10313,44 @@ signatureMatches | taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | ftok | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (double,int) | | __ldexp | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (double,int) | | __scalbn | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (double[],int) | | getloadavg | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (float,int) | | __ldexpf | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (float,int) | | __scalbnf | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (gzFile,int) | | gzflush | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (gzFile,int) | | gzputc | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | BN_security_bits | 0 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | BN_security_bits | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_MD_meth_new | 0 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_PKEY_meth_new | 0 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | __isctype | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | __isctype | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | acttab_alloc | 0 | | taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | acttab_alloc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | div | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | div | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | inet6_rth_space | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (long double,int) | | __ldexpl | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -7388,8 +10358,21 @@ signatureMatches | taint.cpp:4:6:4:21 | arithAssignments | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (rule *,int) | | Configlist_add | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -7417,6 +10400,8 @@ signatureMatches | taint.cpp:4:6:4:21 | arithAssignments | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -7425,6 +10410,7 @@ signatureMatches | taint.cpp:4:6:4:21 | arithAssignments | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:22:5:22:13 | increment | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | ASN1_tag2bit | 0 | @@ -7444,22 +10430,60 @@ signatureMatches | taint.cpp:22:5:22:13 | increment | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __btowc | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __current_locale_name | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __fdopendir | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __get_errlist | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __get_errname | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __math_invalid_i | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __math_invalidf_i | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __p_class | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __p_rcode | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __p_type | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __pkey_get | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __sigdescr_np | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | __strerrordesc_np | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | _tolower | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | _toupper | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | btowc | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | c_tolower | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | c_toupper | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | curlx_sitouz | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | inet6_option_space | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isalnum | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isalpha | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isblank | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | iscntrl | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isdigit | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isgraph | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | islower | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isprint | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | ispunct | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isspace | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isupper | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | isxdigit | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | ossl_tolower | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | ossl_toupper | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | sigabbrev_np | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | sqlite3_errstr | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | strerrorname_np | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | support_report_failure | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | svcudp_create | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | tls13_alert_code | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | toascii | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | tolower | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | toupper | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | uabs | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | uv__accept | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | uv_err_name | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | uv_get_osfhandle | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | uv_strerror | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | uv_translate_sys_error | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | zError | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ASN1_tag2bit | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ASN1_tag2str | 0 | @@ -7478,22 +10502,60 @@ signatureMatches | taint.cpp:23:5:23:8 | zero | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __btowc | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __current_locale_name | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __fdopendir | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __get_errlist | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __get_errname | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __math_invalid_i | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __math_invalidf_i | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __p_class | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __p_rcode | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __p_type | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __pkey_get | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __sigdescr_np | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | __strerrordesc_np | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | _tolower | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | _toupper | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | btowc | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | c_tolower | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | c_toupper | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | curlx_sitouz | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | inet6_option_space | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isalnum | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isalpha | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isblank | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | iscntrl | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isdigit | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isgraph | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | islower | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isprint | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ispunct | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isspace | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isupper | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | isxdigit | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ossl_tolower | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ossl_toupper | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | sigabbrev_np | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | sqlite3_errstr | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | strerrorname_np | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | support_report_failure | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | svcudp_create | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | tls13_alert_code | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | toascii | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | tolower | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | toupper | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | uabs | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | uv__accept | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | uv_err_name | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | uv_get_osfhandle | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | uv_strerror | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | uv_translate_sys_error | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | zError | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_tag2bit | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_tag2str | 0 | @@ -7512,22 +10574,60 @@ signatureMatches | taint.cpp:100:6:100:15 | array_test | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __btowc | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __current_locale_name | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __fdopendir | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __get_errlist | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __get_errname | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __math_invalid_i | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __math_invalidf_i | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __p_class | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __p_rcode | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __p_type | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __pkey_get | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __sigdescr_np | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | __strerrordesc_np | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | _tolower | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | _toupper | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | btowc | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | c_tolower | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | c_toupper | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | curlx_sitouz | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | inet6_option_space | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isalnum | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isalpha | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isblank | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | iscntrl | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isdigit | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isgraph | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | islower | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isprint | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ispunct | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isspace | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isupper | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | isxdigit | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ossl_tolower | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ossl_toupper | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | sigabbrev_np | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | sqlite3_errstr | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | strerrorname_np | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | support_report_failure | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | svcudp_create | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | tls13_alert_code | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | toascii | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | tolower | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | toupper | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | uabs | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | uv__accept | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | uv_err_name | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | uv_get_osfhandle | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | uv_strerror | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | uv_translate_sys_error | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | zError | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 1 | | taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | | taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | @@ -7579,9 +10679,14 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | | taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | | taint.cpp:142:5:142:10 | select | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,_IO_marker *,int) | | _IO_seekmark | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,_IO_marker *,int) | | _IO_seekwmark | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,__FILE *,int) | | fwide | 2 | | taint.cpp:142:5:142:10 | select | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | | taint.cpp:142:5:142:10 | select | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,off64_t,int) | | _IO_cookie_seek | 2 | | taint.cpp:142:5:142:10 | select | (FILE *,rule *,int) | | RulePrint | 2 | +| taint.cpp:142:5:142:10 | select | (FTS *,FTSENT *,int) | | fts_set | 2 | | taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | | taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | | taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | @@ -7684,9 +10789,13 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | taint.cpp:142:5:142:10 | select | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | taint.cpp:142:5:142:10 | select | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| taint.cpp:142:5:142:10 | select | (_Float128,_Float128,int) | | __kernel_sinf128 | 2 | +| taint.cpp:142:5:142:10 | select | (_Float128,_Float128,int) | | __kernel_tanf128 | 2 | +| taint.cpp:142:5:142:10 | select | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 2 | | taint.cpp:142:5:142:10 | select | (action *,FILE *,int) | | PrintAction | 2 | | taint.cpp:142:5:142:10 | select | (acttab *,int,int) | | acttab_action | 1 | | taint.cpp:142:5:142:10 | select | (acttab *,int,int) | | acttab_action | 2 | +| taint.cpp:142:5:142:10 | select | (char *,size_t,int) | | __argz_stringify | 2 | | taint.cpp:142:5:142:10 | select | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | | taint.cpp:142:5:142:10 | select | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | | taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | @@ -7741,12 +10850,21 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 1 | | taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | taint.cpp:142:5:142:10 | select | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,char **,int) | | __strtol | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,char **,int) | | __strtoul | 2 | | taint.cpp:142:5:142:10 | select | (const char *,char **,int) | | idn2_to_ascii_8z | 2 | | taint.cpp:142:5:142:10 | select | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | __dcgettext | 2 | | taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,int,int) | | __old_strpbrk_c2 | 1 | +| taint.cpp:142:5:142:10 | select | (const char *,int,int) | | __old_strpbrk_c2 | 2 | | taint.cpp:142:5:142:10 | select | (const char *,long *,int) | | Jim_StringToWide | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 2 | | taint.cpp:142:5:142:10 | select | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,void *,int) | | support_readdir_check | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,wordexp_t *,int) | | wordexp | 2 | +| taint.cpp:142:5:142:10 | select | (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 2 | | taint.cpp:142:5:142:10 | select | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | | taint.cpp:142:5:142:10 | select | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 1 | | taint.cpp:142:5:142:10 | select | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | @@ -7759,13 +10877,22 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | | taint.cpp:142:5:142:10 | select | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | | taint.cpp:142:5:142:10 | select | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| taint.cpp:142:5:142:10 | select | (const void *,socklen_t,int) | | res_gethostbyaddr | 2 | +| taint.cpp:142:5:142:10 | select | (const wchar_t *,wchar_t **,int) | | __wcstol | 2 | +| taint.cpp:142:5:142:10 | select | (const wchar_t *,wchar_t **,int) | | __wcstoul | 2 | | taint.cpp:142:5:142:10 | select | (curl_mimepart *,curl_mime *,int) | | Curl_mime_set_subparts | 2 | | taint.cpp:142:5:142:10 | select | (curl_mimepart *,curl_slist *,int) | | curl_mime_headers | 2 | +| taint.cpp:142:5:142:10 | select | (database_dyn *,size_t,int) | | mempool_alloc | 2 | +| taint.cpp:142:5:142:10 | select | (database_dyn *,time_t,int) | | prune_cache | 2 | +| taint.cpp:142:5:142:10 | select | (double,double,int) | | __kernel_standard | 2 | +| taint.cpp:142:5:142:10 | select | (float,float,int) | | __kernel_standard_f | 2 | +| taint.cpp:142:5:142:10 | select | (gconv_spec *,__gconv_t *,int) | | __gconv_open | 2 | | taint.cpp:142:5:142:10 | select | (gzFile,char *,int) | | gzgets | 2 | | taint.cpp:142:5:142:10 | select | (gzFile,int,int) | | gzsetparams | 1 | | taint.cpp:142:5:142:10 | select | (gzFile,int,int) | | gzsetparams | 2 | | taint.cpp:142:5:142:10 | select | (gzFile,off64_t,int) | | gzseek64 | 2 | | taint.cpp:142:5:142:10 | select | (gzFile,off_t,int) | | gzseek | 2 | +| taint.cpp:142:5:142:10 | select | (int *,short *,int) | | __lll_lock_elision | 2 | | taint.cpp:142:5:142:10 | select | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | | taint.cpp:142:5:142:10 | select | (int,int,int) | | ASN1_object_size | 0 | | taint.cpp:142:5:142:10 | select | (int,int,int) | | ASN1_object_size | 1 | @@ -7773,7 +10900,17 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (int,int,int) | | EVP_CIPHER_meth_new | 0 | | taint.cpp:142:5:142:10 | select | (int,int,int) | | EVP_CIPHER_meth_new | 1 | | taint.cpp:142:5:142:10 | select | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| taint.cpp:142:5:142:10 | select | (long double,long double,int) | | __kernel_sinl | 2 | +| taint.cpp:142:5:142:10 | select | (long double,long double,int) | | __kernel_standard_l | 2 | +| taint.cpp:142:5:142:10 | select | (long double,long double,int) | | __kernel_tanl | 2 | +| taint.cpp:142:5:142:10 | select | (mp_srcptr,int,int) | | __mpn_construct_double | 1 | +| taint.cpp:142:5:142:10 | select | (mp_srcptr,int,int) | | __mpn_construct_double | 2 | +| taint.cpp:142:5:142:10 | select | (mp_srcptr,int,int) | | __mpn_construct_float | 1 | +| taint.cpp:142:5:142:10 | select | (mp_srcptr,int,int) | | __mpn_construct_float | 2 | +| taint.cpp:142:5:142:10 | select | (mp_srcptr,int,int) | | __mpn_construct_float128 | 1 | +| taint.cpp:142:5:142:10 | select | (mp_srcptr,int,int) | | __mpn_construct_float128 | 2 | | taint.cpp:142:5:142:10 | select | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| taint.cpp:142:5:142:10 | select | (requestlist *,requestlist *,int) | | __aio_remove_request | 2 | | taint.cpp:142:5:142:10 | select | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | | taint.cpp:142:5:142:10 | select | (sqlite3 *,int,int) | | sqlite3_limit | 1 | | taint.cpp:142:5:142:10 | select | (sqlite3 *,int,int) | | sqlite3_limit | 2 | @@ -7802,11 +10939,15 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 1 | | taint.cpp:142:5:142:10 | select | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | | taint.cpp:142:5:142:10 | select | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 2 | | taint.cpp:142:5:142:10 | select | (uint8_t[56],const gf,int) | | gf_serialize | 2 | | taint.cpp:142:5:142:10 | select | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned char *,const char *,int) | | data_string | 2 | | taint.cpp:142:5:142:10 | select | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | | taint.cpp:142:5:142:10 | select | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | | taint.cpp:142:5:142:10 | select | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned int,const char *,int) | | _IO_adjust_column | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 2 | | taint.cpp:142:5:142:10 | select | (unsigned int,int,int) | | ossl_blob_length | 1 | | taint.cpp:142:5:142:10 | select | (unsigned int,int,int) | | ossl_blob_length | 2 | | taint.cpp:142:5:142:10 | select | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | @@ -7819,8 +10960,10 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start_oneshot | 2 | | taint.cpp:142:5:142:10 | select | (uv_stream_t *,int,int) | | uv__stream_open | 1 | | taint.cpp:142:5:142:10 | select | (uv_stream_t *,int,int) | | uv__stream_open | 2 | +| taint.cpp:142:5:142:10 | select | (void *,cmsghdr **,int) | | inet6_option_init | 2 | | taint.cpp:142:5:142:10 | select | (void *,const char *,int) | | CRYPTO_secure_free | 2 | | taint.cpp:142:5:142:10 | select | (void *,curl_off_t,int) | | tool_mime_stdin_seek | 2 | +| taint.cpp:142:5:142:10 | select | (void *,socklen_t,int) | | inet6_opt_finish | 2 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ASN1_tag2bit | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ASN1_tag2str | 0 | @@ -7839,22 +10982,60 @@ signatureMatches | taint.cpp:150:6:150:12 | fn_test | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __btowc | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __current_locale_name | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __fdopendir | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __get_errlist | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __get_errname | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __math_invalid_i | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __math_invalidf_i | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __p_class | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __p_rcode | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __p_type | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __pkey_get | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __sigdescr_np | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | __strerrordesc_np | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | _tolower | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | _toupper | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | btowc | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | c_tolower | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | c_toupper | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | curlx_sitouz | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | inet6_option_space | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isalnum | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isalpha | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isblank | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | iscntrl | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isdigit | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isgraph | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | islower | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isprint | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ispunct | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isspace | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isupper | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | isxdigit | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_tolower | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_toupper | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | sigabbrev_np | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | sqlite3_errstr | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | strerrorname_np | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | support_report_failure | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | svcudp_create | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | tls13_alert_code | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | toascii | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | tolower | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | toupper | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | uabs | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | uv__accept | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | uv_err_name | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | uv_get_osfhandle | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | uv_strerror | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | uv_translate_sys_error | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | zError | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:156:7:156:12 | strcpy | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | @@ -7885,6 +11066,7 @@ signatureMatches | taint.cpp:156:7:156:12 | strcpy | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:156:7:156:12 | strcpy | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:156:7:156:12 | strcpy | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:156:7:156:12 | strcpy | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:156:7:156:12 | strcpy | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:156:7:156:12 | strcpy | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:156:7:156:12 | strcpy | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -7941,22 +11123,52 @@ signatureMatches | taint.cpp:156:7:156:12 | strcpy | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:156:7:156:12 | strcpy | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:156:7:156:12 | strcpy | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:156:7:156:12 | strcpy | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:156:7:156:12 | strcpy | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:156:7:156:12 | strcpy | (char **,const char *) | | __strsep | 1 | +| taint.cpp:156:7:156:12 | strcpy | (char *,const char *) | | xstrdup | 0 | +| taint.cpp:156:7:156:12 | strcpy | (char *,const char *) | | xstrdup | 1 | | taint.cpp:156:7:156:12 | strcpy | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | Configcmp | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | Curl_timestrcmp | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | advance | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | gzopen | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | ossl_pem_check_suffix | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | step | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:156:7:156:12 | strcpy | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:156:7:156:12 | strcpy | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:156:7:156:12 | strcpy | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -7966,16 +11178,22 @@ signatureMatches | taint.cpp:156:7:156:12 | strcpy | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:156:7:156:12 | strcpy | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:156:7:156:12 | strcpy | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:156:7:156:12 | strcpy | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:156:7:156:12 | strcpy | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | gzdopen | 1 | +| taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | setlocale | 1 | +| taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | xsetlocale | 1 | | taint.cpp:156:7:156:12 | strcpy | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:156:7:156:12 | strcpy | (long *,const char *) | | secs2ms | 1 | | taint.cpp:156:7:156:12 | strcpy | (long *,const char *) | | str2num | 1 | | taint.cpp:156:7:156:12 | strcpy | (long *,const char *) | | str2unum | 1 | +| taint.cpp:156:7:156:12 | strcpy | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:156:7:156:12 | strcpy | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:156:7:156:12 | strcpy | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:156:7:156:12 | strcpy | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:156:7:156:12 | strcpy | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:156:7:156:12 | strcpy | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:156:7:156:12 | strcpy | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -7983,6 +11201,7 @@ signatureMatches | taint.cpp:156:7:156:12 | strcpy | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:156:7:156:12 | strcpy | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:156:7:156:12 | strcpy | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:156:7:156:12 | strcpy | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:156:7:156:12 | strcpy | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:156:7:156:12 | strcpy | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:156:7:156:12 | strcpy | (unsigned long *,const char *) | | set_name_ex | 1 | @@ -8017,6 +11236,7 @@ signatureMatches | taint.cpp:157:7:157:12 | strcat | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:157:7:157:12 | strcat | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:157:7:157:12 | strcat | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:157:7:157:12 | strcat | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:157:7:157:12 | strcat | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:157:7:157:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:157:7:157:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -8073,22 +11293,52 @@ signatureMatches | taint.cpp:157:7:157:12 | strcat | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:157:7:157:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:157:7:157:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:157:7:157:12 | strcat | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:157:7:157:12 | strcat | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:157:7:157:12 | strcat | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:157:7:157:12 | strcat | (char **,const char *) | | __strsep | 1 | +| taint.cpp:157:7:157:12 | strcat | (char *,const char *) | | xstrdup | 0 | +| taint.cpp:157:7:157:12 | strcat | (char *,const char *) | | xstrdup | 1 | | taint.cpp:157:7:157:12 | strcat | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:157:7:157:12 | strcat | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | Configcmp | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | Curl_timestrcmp | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | advance | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | gzopen | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | ossl_pem_check_suffix | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | step | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:157:7:157:12 | strcat | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:157:7:157:12 | strcat | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:157:7:157:12 | strcat | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:157:7:157:12 | strcat | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:157:7:157:12 | strcat | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -8098,16 +11348,22 @@ signatureMatches | taint.cpp:157:7:157:12 | strcat | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:157:7:157:12 | strcat | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:157:7:157:12 | strcat | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:157:7:157:12 | strcat | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:157:7:157:12 | strcat | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:157:7:157:12 | strcat | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:157:7:157:12 | strcat | (int,const char *) | | gzdopen | 1 | +| taint.cpp:157:7:157:12 | strcat | (int,const char *) | | setlocale | 1 | +| taint.cpp:157:7:157:12 | strcat | (int,const char *) | | xsetlocale | 1 | | taint.cpp:157:7:157:12 | strcat | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:157:7:157:12 | strcat | (long *,const char *) | | secs2ms | 1 | | taint.cpp:157:7:157:12 | strcat | (long *,const char *) | | str2num | 1 | | taint.cpp:157:7:157:12 | strcat | (long *,const char *) | | str2unum | 1 | +| taint.cpp:157:7:157:12 | strcat | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:157:7:157:12 | strcat | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:157:7:157:12 | strcat | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:157:7:157:12 | strcat | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:157:7:157:12 | strcat | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:157:7:157:12 | strcat | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:157:7:157:12 | strcat | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:157:7:157:12 | strcat | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -8115,10 +11371,12 @@ signatureMatches | taint.cpp:157:7:157:12 | strcat | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:157:7:157:12 | strcat | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:157:7:157:12 | strcat | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:157:7:157:12 | strcat | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:157:7:157:12 | strcat | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:157:7:157:12 | strcat | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:157:7:157:12 | strcat | (unsigned long *,const char *) | | set_name_ex | 1 | | taint.cpp:157:7:157:12 | strcat | (uv_pipe_t *,const char *) | | uv_pipe_bind | 1 | +| taint.cpp:180:7:180:12 | callee | (int *) | | rresvport | 0 | | taint.cpp:190:7:190:12 | memcpy | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | | taint.cpp:190:7:190:12 | memcpy | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | | taint.cpp:190:7:190:12 | memcpy | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | @@ -8171,9 +11429,14 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | | taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | | taint.cpp:190:7:190:12 | memcpy | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,_IO_marker *,int) | | _IO_seekmark | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,_IO_marker *,int) | | _IO_seekwmark | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,__FILE *,int) | | fwide | 2 | | taint.cpp:190:7:190:12 | memcpy | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | | taint.cpp:190:7:190:12 | memcpy | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,off64_t,int) | | _IO_cookie_seek | 2 | | taint.cpp:190:7:190:12 | memcpy | (FILE *,rule *,int) | | RulePrint | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FTS *,FTSENT *,int) | | fts_set | 2 | | taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | | taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | | taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | @@ -8262,8 +11525,12 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | taint.cpp:190:7:190:12 | memcpy | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | taint.cpp:190:7:190:12 | memcpy | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| taint.cpp:190:7:190:12 | memcpy | (_Float128,_Float128,int) | | __kernel_sinf128 | 2 | +| taint.cpp:190:7:190:12 | memcpy | (_Float128,_Float128,int) | | __kernel_tanf128 | 2 | +| taint.cpp:190:7:190:12 | memcpy | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 2 | | taint.cpp:190:7:190:12 | memcpy | (action *,FILE *,int) | | PrintAction | 2 | | taint.cpp:190:7:190:12 | memcpy | (acttab *,int,int) | | acttab_action | 2 | +| taint.cpp:190:7:190:12 | memcpy | (char *,size_t,int) | | __argz_stringify | 2 | | taint.cpp:190:7:190:12 | memcpy | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | | taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | | taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | @@ -8305,12 +11572,21 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | | taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | taint.cpp:190:7:190:12 | memcpy | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,char **,int) | | __strtol | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,char **,int) | | __strtoul | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,char **,int) | | idn2_to_ascii_8z | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | __dcgettext | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,int,int) | | __old_strpbrk_c2 | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,long *,int) | | Jim_StringToWide | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,void *,int) | | support_readdir_check | 1 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,void *,int) | | support_readdir_check | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,wordexp_t *,int) | | wordexp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 2 | | taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | | taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | | taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | @@ -8320,16 +11596,32 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | | taint.cpp:190:7:190:12 | memcpy | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | | taint.cpp:190:7:190:12 | memcpy | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const void *,socklen_t,int) | | res_gethostbyaddr | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const wchar_t *,wchar_t **,int) | | __wcstol | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const wchar_t *,wchar_t **,int) | | __wcstoul | 2 | | taint.cpp:190:7:190:12 | memcpy | (curl_mimepart *,curl_mime *,int) | | Curl_mime_set_subparts | 2 | | taint.cpp:190:7:190:12 | memcpy | (curl_mimepart *,curl_slist *,int) | | curl_mime_headers | 2 | +| taint.cpp:190:7:190:12 | memcpy | (database_dyn *,size_t,int) | | mempool_alloc | 2 | +| taint.cpp:190:7:190:12 | memcpy | (database_dyn *,time_t,int) | | prune_cache | 2 | +| taint.cpp:190:7:190:12 | memcpy | (double,double,int) | | __kernel_standard | 2 | +| taint.cpp:190:7:190:12 | memcpy | (float,float,int) | | __kernel_standard_f | 2 | +| taint.cpp:190:7:190:12 | memcpy | (gconv_spec *,__gconv_t *,int) | | __gconv_open | 2 | | taint.cpp:190:7:190:12 | memcpy | (gzFile,char *,int) | | gzgets | 2 | | taint.cpp:190:7:190:12 | memcpy | (gzFile,int,int) | | gzsetparams | 2 | | taint.cpp:190:7:190:12 | memcpy | (gzFile,off64_t,int) | | gzseek64 | 2 | | taint.cpp:190:7:190:12 | memcpy | (gzFile,off_t,int) | | gzseek | 2 | +| taint.cpp:190:7:190:12 | memcpy | (int *,short *,int) | | __lll_lock_elision | 2 | | taint.cpp:190:7:190:12 | memcpy | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | | taint.cpp:190:7:190:12 | memcpy | (int,int,int) | | ASN1_object_size | 2 | | taint.cpp:190:7:190:12 | memcpy | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (long double,long double,int) | | __kernel_sinl | 2 | +| taint.cpp:190:7:190:12 | memcpy | (long double,long double,int) | | __kernel_standard_l | 2 | +| taint.cpp:190:7:190:12 | memcpy | (long double,long double,int) | | __kernel_tanl | 2 | +| taint.cpp:190:7:190:12 | memcpy | (mp_srcptr,int,int) | | __mpn_construct_double | 2 | +| taint.cpp:190:7:190:12 | memcpy | (mp_srcptr,int,int) | | __mpn_construct_float | 2 | +| taint.cpp:190:7:190:12 | memcpy | (mp_srcptr,int,int) | | __mpn_construct_float128 | 2 | | taint.cpp:190:7:190:12 | memcpy | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (requestlist *,requestlist *,int) | | __aio_remove_request | 2 | | taint.cpp:190:7:190:12 | memcpy | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | | taint.cpp:190:7:190:12 | memcpy | (sqlite3 *,int,int) | | sqlite3_limit | 2 | | taint.cpp:190:7:190:12 | memcpy | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | @@ -8350,11 +11642,15 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | | taint.cpp:190:7:190:12 | memcpy | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | | taint.cpp:190:7:190:12 | memcpy | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 2 | | taint.cpp:190:7:190:12 | memcpy | (uint8_t[56],const gf,int) | | gf_serialize | 2 | | taint.cpp:190:7:190:12 | memcpy | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned char *,const char *,int) | | data_string | 2 | | taint.cpp:190:7:190:12 | memcpy | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | | taint.cpp:190:7:190:12 | memcpy | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | | taint.cpp:190:7:190:12 | memcpy | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned int,const char *,int) | | _IO_adjust_column | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 2 | | taint.cpp:190:7:190:12 | memcpy | (unsigned int,int,int) | | ossl_blob_length | 2 | | taint.cpp:190:7:190:12 | memcpy | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | | taint.cpp:190:7:190:12 | memcpy | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | @@ -8365,8 +11661,11 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start | 2 | | taint.cpp:190:7:190:12 | memcpy | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start_oneshot | 2 | | taint.cpp:190:7:190:12 | memcpy | (uv_stream_t *,int,int) | | uv__stream_open | 2 | +| taint.cpp:190:7:190:12 | memcpy | (void *,cmsghdr **,int) | | inet6_option_init | 2 | | taint.cpp:190:7:190:12 | memcpy | (void *,const char *,int) | | CRYPTO_secure_free | 2 | | taint.cpp:190:7:190:12 | memcpy | (void *,curl_off_t,int) | | tool_mime_stdin_seek | 2 | +| taint.cpp:190:7:190:12 | memcpy | (void *,socklen_t,int) | | inet6_opt_finish | 2 | +| taint.cpp:192:6:192:16 | test_memcpy | (int *) | | rresvport | 0 | | taint.cpp:249:13:249:13 | _FUN | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:249:13:249:13 | _FUN | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -8430,6 +11729,19 @@ signatureMatches | taint.cpp:249:13:249:13 | _FUN | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:249:13:249:13 | _FUN | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:249:13:249:13 | _FUN | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FTS *,int) | | fts_children | 1 | | taint.cpp:249:13:249:13 | _FUN | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:249:13:249:13 | _FUN | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:249:13:249:13 | _FUN | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -8557,7 +11869,15 @@ signatureMatches | taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:249:13:249:13 | _FUN | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:249:13:249:13 | _FUN | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:249:13:249:13 | _FUN | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:249:13:249:13 | _FUN | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:249:13:249:13 | _FUN | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:249:13:249:13 | _FUN | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (char **,int) | | addrsort | 1 | | taint.cpp:249:13:249:13 | _FUN | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:249:13:249:13 | _FUN | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:249:13:249:13 | _FUN | (char,int) | CStringT | CStringT | 1 | @@ -8622,25 +11942,44 @@ signatureMatches | taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | ftok | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:249:13:249:13 | _FUN | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:249:13:249:13 | _FUN | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:249:13:249:13 | _FUN | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:249:13:249:13 | _FUN | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:249:13:249:13 | _FUN | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (double,int) | | __ldexp | 1 | +| taint.cpp:249:13:249:13 | _FUN | (double,int) | | __scalbn | 1 | +| taint.cpp:249:13:249:13 | _FUN | (double[],int) | | getloadavg | 1 | | taint.cpp:249:13:249:13 | _FUN | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:249:13:249:13 | _FUN | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:249:13:249:13 | _FUN | (float,int) | | __ldexpf | 1 | +| taint.cpp:249:13:249:13 | _FUN | (float,int) | | __scalbnf | 1 | | taint.cpp:249:13:249:13 | _FUN | (gzFile,int) | | gzflush | 1 | | taint.cpp:249:13:249:13 | _FUN | (gzFile,int) | | gzputc | 1 | | taint.cpp:249:13:249:13 | _FUN | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:249:13:249:13 | _FUN | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | BN_security_bits | 0 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | BN_security_bits | 1 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_MD_meth_new | 0 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_PKEY_meth_new | 0 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | __isctype | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | __isctype | 1 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | acttab_alloc | 0 | | taint.cpp:249:13:249:13 | _FUN | (int,int) | | acttab_alloc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | div | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | div | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | inet6_rth_space | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:249:13:249:13 | _FUN | (long double,int) | | __ldexpl | 1 | +| taint.cpp:249:13:249:13 | _FUN | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:249:13:249:13 | _FUN | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:249:13:249:13 | _FUN | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:249:13:249:13 | _FUN | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -8648,8 +11987,21 @@ signatureMatches | taint.cpp:249:13:249:13 | _FUN | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:249:13:249:13 | _FUN | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:249:13:249:13 | _FUN | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:249:13:249:13 | _FUN | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:249:13:249:13 | _FUN | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:249:13:249:13 | _FUN | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:249:13:249:13 | _FUN | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:249:13:249:13 | _FUN | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:249:13:249:13 | _FUN | (rule *,int) | | Configlist_add | 1 | | taint.cpp:249:13:249:13 | _FUN | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:249:13:249:13 | _FUN | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:249:13:249:13 | _FUN | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:249:13:249:13 | _FUN | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -8677,6 +12029,8 @@ signatureMatches | taint.cpp:249:13:249:13 | _FUN | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:249:13:249:13 | _FUN | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:249:13:249:13 | _FUN | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:249:13:249:13 | _FUN | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:249:13:249:13 | _FUN | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:249:13:249:13 | _FUN | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:249:13:249:13 | _FUN | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -8685,6 +12039,7 @@ signatureMatches | taint.cpp:249:13:249:13 | _FUN | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:249:13:249:13 | _FUN | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:249:13:249:13 | _FUN | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:249:13:249:13 | _FUN | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:249:13:249:13 | operator() | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:249:13:249:13 | operator() | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -8749,6 +12104,19 @@ signatureMatches | taint.cpp:249:13:249:13 | operator() | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:249:13:249:13 | operator() | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:249:13:249:13 | operator() | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:249:13:249:13 | operator() | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:249:13:249:13 | operator() | (FTS *,int) | | fts_children | 1 | | taint.cpp:249:13:249:13 | operator() | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:249:13:249:13 | operator() | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:249:13:249:13 | operator() | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -8876,7 +12244,15 @@ signatureMatches | taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:249:13:249:13 | operator() | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:249:13:249:13 | operator() | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:249:13:249:13 | operator() | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:249:13:249:13 | operator() | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:249:13:249:13 | operator() | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:249:13:249:13 | operator() | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:249:13:249:13 | operator() | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:249:13:249:13 | operator() | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:249:13:249:13 | operator() | (char **,int) | | addrsort | 1 | | taint.cpp:249:13:249:13 | operator() | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:249:13:249:13 | operator() | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:249:13:249:13 | operator() | (char,int) | CStringT | CStringT | 1 | @@ -8941,25 +12317,44 @@ signatureMatches | taint.cpp:249:13:249:13 | operator() | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:249:13:249:13 | operator() | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:249:13:249:13 | operator() | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | ftok | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:249:13:249:13 | operator() | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:249:13:249:13 | operator() | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:249:13:249:13 | operator() | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:249:13:249:13 | operator() | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:249:13:249:13 | operator() | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:249:13:249:13 | operator() | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:249:13:249:13 | operator() | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:249:13:249:13 | operator() | (double,int) | | __ldexp | 1 | +| taint.cpp:249:13:249:13 | operator() | (double,int) | | __scalbn | 1 | +| taint.cpp:249:13:249:13 | operator() | (double[],int) | | getloadavg | 1 | | taint.cpp:249:13:249:13 | operator() | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:249:13:249:13 | operator() | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:249:13:249:13 | operator() | (float,int) | | __ldexpf | 1 | +| taint.cpp:249:13:249:13 | operator() | (float,int) | | __scalbnf | 1 | | taint.cpp:249:13:249:13 | operator() | (gzFile,int) | | gzflush | 1 | | taint.cpp:249:13:249:13 | operator() | (gzFile,int) | | gzputc | 1 | | taint.cpp:249:13:249:13 | operator() | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:249:13:249:13 | operator() | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:249:13:249:13 | operator() | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | BN_security_bits | 0 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | BN_security_bits | 1 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_MD_meth_new | 0 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_PKEY_meth_new | 0 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | __isctype | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | __isctype | 1 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | acttab_alloc | 0 | | taint.cpp:249:13:249:13 | operator() | (int,int) | | acttab_alloc | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | div | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | div | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | inet6_rth_space | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:249:13:249:13 | operator() | (long double,int) | | __ldexpl | 1 | +| taint.cpp:249:13:249:13 | operator() | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:249:13:249:13 | operator() | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:249:13:249:13 | operator() | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:249:13:249:13 | operator() | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -8967,8 +12362,21 @@ signatureMatches | taint.cpp:249:13:249:13 | operator() | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:249:13:249:13 | operator() | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:249:13:249:13 | operator() | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:249:13:249:13 | operator() | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:249:13:249:13 | operator() | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:249:13:249:13 | operator() | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:249:13:249:13 | operator() | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:249:13:249:13 | operator() | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:249:13:249:13 | operator() | (rule *,int) | | Configlist_add | 1 | | taint.cpp:249:13:249:13 | operator() | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:249:13:249:13 | operator() | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:249:13:249:13 | operator() | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:249:13:249:13 | operator() | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:249:13:249:13 | operator() | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:249:13:249:13 | operator() | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -8996,6 +12404,8 @@ signatureMatches | taint.cpp:249:13:249:13 | operator() | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:249:13:249:13 | operator() | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:249:13:249:13 | operator() | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:249:13:249:13 | operator() | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:249:13:249:13 | operator() | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:249:13:249:13 | operator() | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:249:13:249:13 | operator() | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -9004,6 +12414,7 @@ signatureMatches | taint.cpp:249:13:249:13 | operator() | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:249:13:249:13 | operator() | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:249:13:249:13 | operator() | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:249:13:249:13 | operator() | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:249:13:249:13 | operator() | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:266:5:266:6 | id | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:266:5:266:6 | id | (int) | | ASN1_tag2bit | 0 | @@ -9023,22 +12434,60 @@ signatureMatches | taint.cpp:266:5:266:6 | id | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:266:5:266:6 | id | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:266:5:266:6 | id | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __btowc | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __current_locale_name | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __fdopendir | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __get_errlist | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __get_errname | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __math_invalid_i | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __math_invalidf_i | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __p_class | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __p_rcode | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __p_type | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __pkey_get | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __sigdescr_np | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | __strerrordesc_np | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | _tolower | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | _toupper | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | btowc | 0 | | taint.cpp:266:5:266:6 | id | (int) | | c_tolower | 0 | | taint.cpp:266:5:266:6 | id | (int) | | c_toupper | 0 | | taint.cpp:266:5:266:6 | id | (int) | | curlx_sitouz | 0 | | taint.cpp:266:5:266:6 | id | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | inet6_option_space | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isalnum | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isalpha | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isblank | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | iscntrl | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isdigit | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isgraph | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | islower | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isprint | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | ispunct | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isspace | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isupper | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | isxdigit | 0 | | taint.cpp:266:5:266:6 | id | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:266:5:266:6 | id | (int) | | ossl_tolower | 0 | | taint.cpp:266:5:266:6 | id | (int) | | ossl_toupper | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | sigabbrev_np | 0 | | taint.cpp:266:5:266:6 | id | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:266:5:266:6 | id | (int) | | sqlite3_errstr | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | strerrorname_np | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | support_report_failure | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | svcudp_create | 0 | | taint.cpp:266:5:266:6 | id | (int) | | tls13_alert_code | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | toascii | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | tolower | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | toupper | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | uabs | 0 | | taint.cpp:266:5:266:6 | id | (int) | | uv__accept | 0 | | taint.cpp:266:5:266:6 | id | (int) | | uv_err_name | 0 | | taint.cpp:266:5:266:6 | id | (int) | | uv_get_osfhandle | 0 | | taint.cpp:266:5:266:6 | id | (int) | | uv_strerror | 0 | | taint.cpp:266:5:266:6 | id | (int) | | uv_translate_sys_error | 0 | | taint.cpp:266:5:266:6 | id | (int) | | zError | 0 | +| taint.cpp:266:5:266:6 | id | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:302:6:302:14 | myAssign2 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -9102,6 +12551,19 @@ signatureMatches | taint.cpp:302:6:302:14 | myAssign2 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FTS *,int) | | fts_children | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -9229,7 +12691,15 @@ signatureMatches | taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (char **,int) | | addrsort | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (char,int) | CStringT | CStringT | 1 | @@ -9294,21 +12764,37 @@ signatureMatches | taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | ftok | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (double,int) | | __ldexp | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (double,int) | | __scalbn | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (double[],int) | | getloadavg | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (float,int) | | __ldexpf | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (float,int) | | __scalbnf | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (gzFile,int) | | gzflush | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (gzFile,int) | | gzputc | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | BN_security_bits | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | __isctype | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | acttab_alloc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | div | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (long double,int) | | __ldexpl | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -9316,8 +12802,21 @@ signatureMatches | taint.cpp:302:6:302:14 | myAssign2 | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (rule *,int) | | Configlist_add | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -9345,6 +12844,8 @@ signatureMatches | taint.cpp:302:6:302:14 | myAssign2 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -9353,6 +12854,7 @@ signatureMatches | taint.cpp:302:6:302:14 | myAssign2 | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -9417,6 +12919,19 @@ signatureMatches | taint.cpp:307:6:307:14 | myAssign3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FTS *,int) | | fts_children | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -9544,7 +13059,15 @@ signatureMatches | taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (char **,int) | | addrsort | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (char,int) | CStringT | CStringT | 1 | @@ -9609,23 +13132,40 @@ signatureMatches | taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | ftok | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (double,int) | | __ldexp | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (double,int) | | __scalbn | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (double[],int) | | getloadavg | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (float,int) | | __ldexpf | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (float,int) | | __scalbnf | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (gzFile,int) | | gzflush | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (gzFile,int) | | gzputc | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_PURPOSE_set | 0 | | taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_TRUST_set | 0 | | taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | __lll_unlock_elision | 0 | +| taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | BN_security_bits | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | __isctype | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | acttab_alloc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | div | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (long double,int) | | __ldexpl | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -9633,8 +13173,21 @@ signatureMatches | taint.cpp:307:6:307:14 | myAssign3 | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (rule *,int) | | Configlist_add | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -9662,6 +13215,8 @@ signatureMatches | taint.cpp:307:6:307:14 | myAssign3 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -9670,6 +13225,7 @@ signatureMatches | taint.cpp:307:6:307:14 | myAssign3 | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -9734,6 +13290,19 @@ signatureMatches | taint.cpp:312:6:312:14 | myAssign4 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FTS *,int) | | fts_children | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -9861,7 +13430,15 @@ signatureMatches | taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (char **,int) | | addrsort | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (char,int) | CStringT | CStringT | 1 | @@ -9926,23 +13503,40 @@ signatureMatches | taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | ftok | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (double,int) | | __ldexp | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (double,int) | | __scalbn | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (double[],int) | | getloadavg | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (float,int) | | __ldexpf | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (float,int) | | __scalbnf | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (gzFile,int) | | gzflush | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (gzFile,int) | | gzputc | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_PURPOSE_set | 0 | | taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_TRUST_set | 0 | | taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | __lll_unlock_elision | 0 | +| taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | BN_security_bits | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | __isctype | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | acttab_alloc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | div | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (long double,int) | | __ldexpl | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -9950,8 +13544,21 @@ signatureMatches | taint.cpp:312:6:312:14 | myAssign4 | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (rule *,int) | | Configlist_add | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -9979,6 +13586,8 @@ signatureMatches | taint.cpp:312:6:312:14 | myAssign4 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -9987,6 +13596,7 @@ signatureMatches | taint.cpp:312:6:312:14 | myAssign4 | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | BIO_gethostbyname | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | Curl_copy_header_value | 0 | @@ -10000,16 +13610,36 @@ signatureMatches | taint.cpp:361:7:361:12 | strdup | (const char *) | | UI_create_method | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | X509V3_parse_list | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __basename | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __gconv_find_shlib | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __gettext | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __hash_string | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __nss_action_parse | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __strdup | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __textdomain | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __tzset_parse_tz | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | __tzstring | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | a64l | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | charmap_opendir | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | ether_aton | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | getdate | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | inetstr2int | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | last_component | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | opt_path_end | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | opt_progname | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | repertoire_read | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | res_gethostbyname | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | sgetsgent | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | sgetspent | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | strhash | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | uc_script_byname | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | uv__strdup | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | xstrdup | 0 | | taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -10069,9 +13699,16 @@ signatureMatches | taint.cpp:362:7:362:13 | strndup | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | | taint.cpp:362:7:362:13 | strndup | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | taint.cpp:362:7:362:13 | strndup | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (__gconv_step *,size_t) | | __gconv_close_transform | 1 | +| taint.cpp:362:7:362:13 | strndup | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_lmargin | 1 | +| taint.cpp:362:7:362:13 | strndup | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_rmargin | 1 | +| taint.cpp:362:7:362:13 | strndup | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_wmargin | 1 | | taint.cpp:362:7:362:13 | strndup | (bufq *,size_t) | | Curl_bufq_skip | 1 | | taint.cpp:362:7:362:13 | strndup | (bufq *,size_t) | | Curl_bufq_unwrite | 1 | | taint.cpp:362:7:362:13 | strndup | (char *,size_t) | | RAND_file_name | 1 | +| taint.cpp:362:7:362:13 | strndup | (char *,size_t) | | __getcwd | 1 | +| taint.cpp:362:7:362:13 | strndup | (char *,size_t) | | __gets_chk | 1 | +| taint.cpp:362:7:362:13 | strndup | (char *,size_t) | | __getwd_chk | 1 | | taint.cpp:362:7:362:13 | strndup | (char *,size_t) | | plain_method | 1 | | taint.cpp:362:7:362:13 | strndup | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | | taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | Curl_getn_scheme_handler | 0 | @@ -10080,13 +13717,31 @@ signatureMatches | taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | Curl_memdup0 | 1 | | taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | OPENSSL_strnlen | 0 | | taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | OPENSSL_strnlen | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | __nss_module_allocate | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | __nss_module_allocate | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | __strndup | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | __strndup | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | charmap_hash | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | charmap_hash | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | locfile_hash | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | locfile_hash | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | mblen | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | mblen | 1 | | taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | uv__strndup | 0 | | taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | uv__strndup | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | xstrndup | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | xstrndup | 1 | | taint.cpp:362:7:362:13 | strndup | (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | | taint.cpp:362:7:362:13 | strndup | (const uint8_t *,size_t) | | nghttp2_hd_huff_encode_count | 1 | | taint.cpp:362:7:362:13 | strndup | (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | | taint.cpp:362:7:362:13 | strndup | (const void *,size_t) | | Curl_memdup | 1 | +| taint.cpp:362:7:362:13 | strndup | (const void *,size_t) | | __nis_hash | 1 | +| taint.cpp:362:7:362:13 | strndup | (const void *,size_t) | | __nss_hash | 1 | +| taint.cpp:362:7:362:13 | strndup | (const void *,size_t) | | compute_hashval | 1 | +| taint.cpp:362:7:362:13 | strndup | (const wchar_t *,size_t) | | __wcsnlen_generic | 1 | +| taint.cpp:362:7:362:13 | strndup | (const wchar_t *,size_t) | | wcswidth | 1 | | taint.cpp:362:7:362:13 | strndup | (curl_pushheaders *,size_t) | | curl_pushheader_bynum | 1 | +| taint.cpp:362:7:362:13 | strndup | (dl_find_object_internal *,size_t) | | _dlfo_sort_mappings | 1 | | taint.cpp:362:7:362:13 | strndup | (dynbuf *,size_t) | | Curl_dyn_init | 1 | | taint.cpp:362:7:362:13 | strndup | (dynbuf *,size_t) | | Curl_dyn_setlen | 1 | | taint.cpp:362:7:362:13 | strndup | (dynbuf *,size_t) | | Curl_dyn_tail | 1 | @@ -10095,7 +13750,10 @@ signatureMatches | taint.cpp:362:7:362:13 | strndup | (dynbuf *,size_t) | | curlx_dyn_tail | 1 | | taint.cpp:362:7:362:13 | strndup | (dynhds *,size_t) | | Curl_dynhds_getn | 1 | | taint.cpp:362:7:362:13 | strndup | (h1_req_parser *,size_t) | | Curl_h1_req_parse_init | 1 | +| taint.cpp:362:7:362:13 | strndup | (hash_table *,unsigned long) | | init_hash | 1 | | taint.cpp:362:7:362:13 | strndup | (int,size_t) | | ossl_calculate_comp_expansion | 1 | +| taint.cpp:362:7:362:13 | strndup | (link_map *,size_t) | | _dl_make_tlsdesc_dynamic | 1 | +| taint.cpp:362:7:362:13 | strndup | (locale_file *,size_t) | | init_locale_data | 1 | | taint.cpp:362:7:362:13 | strndup | (nghttp2_bufs *,size_t) | | nghttp2_bufs_realloc | 1 | | taint.cpp:362:7:362:13 | strndup | (nghttp2_frame *,size_t) | | nghttp2_frame_trail_padlen | 1 | | taint.cpp:362:7:362:13 | strndup | (nghttp2_hd_context *,size_t) | | nghttp2_hd_table_get | 1 | @@ -10112,11 +13770,22 @@ signatureMatches | taint.cpp:362:7:362:13 | strndup | (nghttp2_session *,size_t) | | nghttp2_session_consume_connection | 1 | | taint.cpp:362:7:362:13 | strndup | (nghttp2_session *,size_t) | | nghttp2_session_update_recv_connection_window_size | 1 | | taint.cpp:362:7:362:13 | strndup | (nghttp2_stream *,size_t) | | nghttp2_http_on_data_chunk | 1 | +| taint.cpp:362:7:362:13 | strndup | (nss_action *,size_t) | | __nss_action_allocate | 1 | +| taint.cpp:362:7:362:13 | strndup | (pthread_attr_t *,size_t) | | __pthread_attr_setguardsize | 1 | +| taint.cpp:362:7:362:13 | strndup | (pthread_attr_t *,size_t) | | __pthread_attr_setstacksize | 1 | +| taint.cpp:362:7:362:13 | strndup | (size_t,size_t) | | __libc_memalign | 1 | +| taint.cpp:362:7:362:13 | strndup | (size_t,size_t) | | aligned_alloc | 1 | +| taint.cpp:362:7:362:13 | strndup | (u_long,unsigned long) | | __p_option | 1 | | taint.cpp:362:7:362:13 | strndup | (uint8_t *,size_t) | | nghttp2_downcase | 1 | | taint.cpp:362:7:362:13 | strndup | (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | | taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | JimDefaultAllocator | 1 | +| taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | __arc4random_buf | 1 | +| taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | __libc_realloc | 1 | +| taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | __minimal_realloc | 1 | +| taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | getentropy | 1 | | taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | uv__random_devurandom | 1 | | taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | uv__random_getrandom | 1 | +| taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | xrealloc | 1 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | BIO_gethostbyname | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | Curl_copy_header_value | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | Curl_get_scheme_handler | 0 | @@ -10129,16 +13798,36 @@ signatureMatches | taint.cpp:364:7:364:13 | strdupa | (const char *) | | UI_create_method | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | X509V3_parse_list | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __basename | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __gconv_find_shlib | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __gettext | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __hash_string | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __nss_action_parse | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __strdup | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __textdomain | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __tzset_parse_tz | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | __tzstring | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | a64l | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | charmap_opendir | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | ether_aton | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | getdate | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | inetstr2int | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | last_component | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | opt_path_end | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | opt_progname | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | repertoire_read | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | res_gethostbyname | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | sgetsgent | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | sgetspent | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | strhash | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | uc_script_byname | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | uv__strdup | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | xstrdup | 0 | | taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -10198,9 +13887,16 @@ signatureMatches | taint.cpp:365:7:365:14 | strndupa | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | | taint.cpp:365:7:365:14 | strndupa | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | taint.cpp:365:7:365:14 | strndupa | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (__gconv_step *,size_t) | | __gconv_close_transform | 1 | +| taint.cpp:365:7:365:14 | strndupa | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_lmargin | 1 | +| taint.cpp:365:7:365:14 | strndupa | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_rmargin | 1 | +| taint.cpp:365:7:365:14 | strndupa | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_wmargin | 1 | | taint.cpp:365:7:365:14 | strndupa | (bufq *,size_t) | | Curl_bufq_skip | 1 | | taint.cpp:365:7:365:14 | strndupa | (bufq *,size_t) | | Curl_bufq_unwrite | 1 | | taint.cpp:365:7:365:14 | strndupa | (char *,size_t) | | RAND_file_name | 1 | +| taint.cpp:365:7:365:14 | strndupa | (char *,size_t) | | __getcwd | 1 | +| taint.cpp:365:7:365:14 | strndupa | (char *,size_t) | | __gets_chk | 1 | +| taint.cpp:365:7:365:14 | strndupa | (char *,size_t) | | __getwd_chk | 1 | | taint.cpp:365:7:365:14 | strndupa | (char *,size_t) | | plain_method | 1 | | taint.cpp:365:7:365:14 | strndupa | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | | taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | Curl_getn_scheme_handler | 0 | @@ -10209,13 +13905,31 @@ signatureMatches | taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | Curl_memdup0 | 1 | | taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | OPENSSL_strnlen | 0 | | taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | OPENSSL_strnlen | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | __nss_module_allocate | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | __nss_module_allocate | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | __strndup | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | __strndup | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | charmap_hash | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | charmap_hash | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | locfile_hash | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | locfile_hash | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | mblen | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | mblen | 1 | | taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | uv__strndup | 0 | | taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | uv__strndup | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | xstrndup | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | xstrndup | 1 | | taint.cpp:365:7:365:14 | strndupa | (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | | taint.cpp:365:7:365:14 | strndupa | (const uint8_t *,size_t) | | nghttp2_hd_huff_encode_count | 1 | | taint.cpp:365:7:365:14 | strndupa | (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | | taint.cpp:365:7:365:14 | strndupa | (const void *,size_t) | | Curl_memdup | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const void *,size_t) | | __nis_hash | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const void *,size_t) | | __nss_hash | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const void *,size_t) | | compute_hashval | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const wchar_t *,size_t) | | __wcsnlen_generic | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const wchar_t *,size_t) | | wcswidth | 1 | | taint.cpp:365:7:365:14 | strndupa | (curl_pushheaders *,size_t) | | curl_pushheader_bynum | 1 | +| taint.cpp:365:7:365:14 | strndupa | (dl_find_object_internal *,size_t) | | _dlfo_sort_mappings | 1 | | taint.cpp:365:7:365:14 | strndupa | (dynbuf *,size_t) | | Curl_dyn_init | 1 | | taint.cpp:365:7:365:14 | strndupa | (dynbuf *,size_t) | | Curl_dyn_setlen | 1 | | taint.cpp:365:7:365:14 | strndupa | (dynbuf *,size_t) | | Curl_dyn_tail | 1 | @@ -10224,7 +13938,10 @@ signatureMatches | taint.cpp:365:7:365:14 | strndupa | (dynbuf *,size_t) | | curlx_dyn_tail | 1 | | taint.cpp:365:7:365:14 | strndupa | (dynhds *,size_t) | | Curl_dynhds_getn | 1 | | taint.cpp:365:7:365:14 | strndupa | (h1_req_parser *,size_t) | | Curl_h1_req_parse_init | 1 | +| taint.cpp:365:7:365:14 | strndupa | (hash_table *,unsigned long) | | init_hash | 1 | | taint.cpp:365:7:365:14 | strndupa | (int,size_t) | | ossl_calculate_comp_expansion | 1 | +| taint.cpp:365:7:365:14 | strndupa | (link_map *,size_t) | | _dl_make_tlsdesc_dynamic | 1 | +| taint.cpp:365:7:365:14 | strndupa | (locale_file *,size_t) | | init_locale_data | 1 | | taint.cpp:365:7:365:14 | strndupa | (nghttp2_bufs *,size_t) | | nghttp2_bufs_realloc | 1 | | taint.cpp:365:7:365:14 | strndupa | (nghttp2_frame *,size_t) | | nghttp2_frame_trail_padlen | 1 | | taint.cpp:365:7:365:14 | strndupa | (nghttp2_hd_context *,size_t) | | nghttp2_hd_table_get | 1 | @@ -10241,15 +13958,39 @@ signatureMatches | taint.cpp:365:7:365:14 | strndupa | (nghttp2_session *,size_t) | | nghttp2_session_consume_connection | 1 | | taint.cpp:365:7:365:14 | strndupa | (nghttp2_session *,size_t) | | nghttp2_session_update_recv_connection_window_size | 1 | | taint.cpp:365:7:365:14 | strndupa | (nghttp2_stream *,size_t) | | nghttp2_http_on_data_chunk | 1 | +| taint.cpp:365:7:365:14 | strndupa | (nss_action *,size_t) | | __nss_action_allocate | 1 | +| taint.cpp:365:7:365:14 | strndupa | (pthread_attr_t *,size_t) | | __pthread_attr_setguardsize | 1 | +| taint.cpp:365:7:365:14 | strndupa | (pthread_attr_t *,size_t) | | __pthread_attr_setstacksize | 1 | +| taint.cpp:365:7:365:14 | strndupa | (size_t,size_t) | | __libc_memalign | 1 | +| taint.cpp:365:7:365:14 | strndupa | (size_t,size_t) | | aligned_alloc | 1 | +| taint.cpp:365:7:365:14 | strndupa | (u_long,unsigned long) | | __p_option | 1 | | taint.cpp:365:7:365:14 | strndupa | (uint8_t *,size_t) | | nghttp2_downcase | 1 | | taint.cpp:365:7:365:14 | strndupa | (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | | taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | JimDefaultAllocator | 1 | +| taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | __arc4random_buf | 1 | +| taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | __libc_realloc | 1 | +| taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | __minimal_realloc | 1 | +| taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | getentropy | 1 | | taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | uv__random_devurandom | 1 | | taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | uv__random_getrandom | 1 | +| taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | xrealloc | 1 | | taint.cpp:367:6:367:16 | test_strdup | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | _IO_gets | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | __mktemp | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | __nis_default_group | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | __nis_default_owner | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | __xpg_basename | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | ctermid | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | cuserid | 0 | | taint.cpp:367:6:367:16 | test_strdup | (char *) | | defossilize | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | des_setparity | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | dirname | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | getwd | 0 | | taint.cpp:367:6:367:16 | test_strdup | (char *) | | make_uppercase | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | mkdtemp | 0 | | taint.cpp:367:6:367:16 | test_strdup | (char *) | | next_item | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | strfry | 0 | | taint.cpp:367:6:367:16 | test_strdup | (char *) | CStringT | CStringT | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ASN1_tag2bit | 0 | @@ -10269,27 +14010,78 @@ signatureMatches | taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __btowc | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __current_locale_name | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __fdopendir | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __get_errlist | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __get_errname | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __math_invalid_i | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __math_invalidf_i | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __p_class | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __p_rcode | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __p_type | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __pkey_get | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __sigdescr_np | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | __strerrordesc_np | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | _tolower | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | _toupper | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | btowc | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | c_tolower | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | c_toupper | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | curlx_sitouz | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | inet6_option_space | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isalnum | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isalpha | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isblank | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | iscntrl | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isdigit | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isgraph | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | islower | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isprint | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ispunct | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isspace | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isupper | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | isxdigit | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_tolower | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_toupper | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | sigabbrev_np | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | sqlite3_errstr | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | strerrorname_np | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | support_report_failure | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | svcudp_create | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | tls13_alert_code | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | toascii | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | tolower | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | toupper | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | uabs | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | uv__accept | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | uv_err_name | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | uv_get_osfhandle | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | uv_strerror | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | uv_translate_sys_error | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | zError | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:387:6:387:16 | test_wcsdup | (wchar_t *) | CStringT | CStringT | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | _IO_gets | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | __mktemp | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | __nis_default_group | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | __nis_default_owner | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | __xpg_basename | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | ctermid | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | cuserid | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | | defossilize | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | des_setparity | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | dirname | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | getwd | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | | make_uppercase | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | mkdtemp | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | | next_item | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | strfry | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | CStringT | CStringT | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ASN1_tag2bit | 0 | @@ -10309,22 +14101,60 @@ signatureMatches | taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __btowc | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __current_locale_name | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __fdopendir | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __get_errlist | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __get_errname | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __math_invalid_i | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __math_invalidf_i | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __p_class | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __p_rcode | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __p_type | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __pkey_get | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __sigdescr_np | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | __strerrordesc_np | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | _tolower | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | _toupper | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | btowc | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | c_tolower | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | c_toupper | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | curlx_sitouz | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | inet6_option_space | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isalnum | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isalpha | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isblank | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | iscntrl | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isdigit | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isgraph | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | islower | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isprint | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ispunct | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isspace | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isupper | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | isxdigit | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_tolower | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_toupper | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | sigabbrev_np | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | sqlite3_errstr | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | strerrorname_np | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | support_report_failure | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | svcudp_create | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | tls13_alert_code | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | toascii | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | tolower | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | toupper | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | uabs | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | uv__accept | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | uv_err_name | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | uv_get_osfhandle | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | uv_strerror | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | uv_translate_sys_error | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | zError | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_tag2bit | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_tag2str | 0 | @@ -10343,22 +14173,60 @@ signatureMatches | taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __btowc | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __current_locale_name | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __fdopendir | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __get_errlist | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __get_errname | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __math_invalid_i | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __math_invalidf_i | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __p_class | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __p_rcode | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __p_type | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __pkey_get | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __sigdescr_np | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | __strerrordesc_np | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | _tolower | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | _toupper | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | btowc | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | c_tolower | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | c_toupper | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | curlx_sitouz | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | inet6_option_space | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isalnum | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isalpha | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isblank | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | iscntrl | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isdigit | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isgraph | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | islower | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isprint | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ispunct | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isspace | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isupper | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | isxdigit | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_tolower | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_toupper | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | sigabbrev_np | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | sqlite3_errstr | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | strerrorname_np | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | support_report_failure | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | svcudp_create | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | tls13_alert_code | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | toascii | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | tolower | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | toupper | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | uabs | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | uv__accept | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | uv_err_name | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | uv_get_osfhandle | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | uv_strerror | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | uv_translate_sys_error | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | zError | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_tag2bit | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_tag2str | 0 | @@ -10377,22 +14245,60 @@ signatureMatches | taint.cpp:422:7:422:15 | setMember | (int) | | X509_TRUST_get0 | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | X509_TRUST_get_by_id | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __btowc | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __current_locale_name | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __fdopendir | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __get_errlist | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __get_errname | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __math_invalid_i | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __math_invalidf_i | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __p_class | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __p_rcode | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __p_type | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __pkey_get | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __sigdescr_np | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | __strerrordesc_np | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | _tolower | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | _toupper | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | btowc | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | c_tolower | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | c_toupper | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | curlx_sitouz | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | inet6_option_space | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isalnum | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isalpha | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isblank | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | iscntrl | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isdigit | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isgraph | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | islower | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isprint | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ispunct | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isspace | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isupper | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | isxdigit | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ossl_tolower | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ossl_toupper | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | sigabbrev_np | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | sqlite3_errstr | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | strerrorname_np | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | support_report_failure | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | svcudp_create | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | tls13_alert_code | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | toascii | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | tolower | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | toupper | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | uabs | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | uv__accept | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | uv_err_name | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | uv_get_osfhandle | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | uv_strerror | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | uv_translate_sys_error | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | zError | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | __pthread_cleanup_class | __setdoit | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | BIO_gethostbyname | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | Curl_copy_header_value | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | Curl_get_scheme_handler | 0 | @@ -10405,16 +14311,36 @@ signatureMatches | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | UI_create_method | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | X509V3_parse_list | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __basename | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __gconv_find_shlib | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __gettext | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __hash_string | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __nss_action_parse | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __strdup | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __textdomain | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __tzset_parse_tz | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | __tzstring | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a64l | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | charmap_opendir | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | ether_aton | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | getdate | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | inetstr2int | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | last_component | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | opt_path_end | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | opt_progname | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | repertoire_read | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | res_gethostbyname | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | sgetsgent | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | sgetspent | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | strhash | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | uc_script_byname | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | uv__strdup | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | xstrdup | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | BIO_gethostbyname | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | Curl_copy_header_value | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | Curl_get_scheme_handler | 0 | @@ -10427,17 +14353,86 @@ signatureMatches | taint.cpp:431:7:431:15 | setString | (const char *) | | UI_create_method | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | X509V3_parse_list | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __basename | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __gconv_find_shlib | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __gettext | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __hash_string | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __nss_action_parse | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __strdup | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __textdomain | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __tzset_parse_tz | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | __tzstring | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | a64l | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | charmap_opendir | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | ether_aton | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | getdate | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | inetstr2int | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | last_component | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | opt_path_end | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | opt_progname | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | repertoire_read | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | res_gethostbyname | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | sgetsgent | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | sgetspent | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | strhash | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | uc_script_byname | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | uv__strdup | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | xstrdup | 0 | | taint.cpp:500:5:500:12 | getdelim | (URLGlob **,char *,curl_off_t *,FILE *) | | glob_url | 3 | +| taint.cpp:500:5:500:12 | getdelim | (char *,size_t,int,FILE *) | | __fgets_chk | 2 | +| taint.cpp:500:5:500:12 | getdelim | (char *,size_t,int,FILE *) | | __fgets_chk | 3 | +| taint.cpp:500:5:500:12 | getdelim | (char *,size_t,int,FILE *) | | __fgets_unlocked_chk | 2 | +| taint.cpp:500:5:500:12 | getdelim | (char *,size_t,int,FILE *) | | __fgets_unlocked_chk | 3 | +| taint.cpp:500:5:500:12 | getdelim | (const void *,size_t,size_t,FILE *) | | _IO_fwrite | 3 | +| taint.cpp:500:5:500:12 | getdelim | (void *,size_t,size_t,FILE *) | | _IO_fread | 3 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_default_uflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_feof | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_ferror | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_file_close_mmap | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_file_underflow_mmap | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_ftell | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_getc | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_getwc | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_new_file_underflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_peekc_locked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_str_count | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_str_underflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_sungetc | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_sungetwc | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_wdefault_uflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_wfile_underflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_wfile_underflow_mmap | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_wstr_count | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | _IO_wstr_underflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __fbufsize | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __feof_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __ferror_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __fileno | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __flbf | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __fopen_maybe_mmap | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __fpending | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __ftello | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __fwriting | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __getc_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __getwc_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __uflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __underflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __wuflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | __wunderflow | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | feof_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | ferror_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | fgetc_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | fgetgrent | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | fgetpwent | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | fgetsgent | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | fgetspent | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | getc_unlocked | 0 | +| taint.cpp:502:6:502:18 | test_getdelim | (FILE *) | | getmntent | 0 | | taint.cpp:512:7:512:12 | strtok | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | taint.cpp:512:7:512:12 | strtok | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | | taint.cpp:512:7:512:12 | strtok | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | @@ -10468,6 +14463,7 @@ signatureMatches | taint.cpp:512:7:512:12 | strtok | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:512:7:512:12 | strtok | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:512:7:512:12 | strtok | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:512:7:512:12 | strtok | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:512:7:512:12 | strtok | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:512:7:512:12 | strtok | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:512:7:512:12 | strtok | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -10524,22 +14520,52 @@ signatureMatches | taint.cpp:512:7:512:12 | strtok | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:512:7:512:12 | strtok | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:512:7:512:12 | strtok | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:512:7:512:12 | strtok | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:512:7:512:12 | strtok | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:512:7:512:12 | strtok | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:512:7:512:12 | strtok | (char **,const char *) | | __strsep | 1 | +| taint.cpp:512:7:512:12 | strtok | (char *,const char *) | | xstrdup | 0 | +| taint.cpp:512:7:512:12 | strtok | (char *,const char *) | | xstrdup | 1 | | taint.cpp:512:7:512:12 | strtok | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:512:7:512:12 | strtok | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | Configcmp | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | Curl_timestrcmp | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | advance | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | gzopen | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | ossl_pem_check_suffix | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | step | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:512:7:512:12 | strtok | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:512:7:512:12 | strtok | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:512:7:512:12 | strtok | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:512:7:512:12 | strtok | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:512:7:512:12 | strtok | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -10549,16 +14575,22 @@ signatureMatches | taint.cpp:512:7:512:12 | strtok | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:512:7:512:12 | strtok | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:512:7:512:12 | strtok | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:512:7:512:12 | strtok | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:512:7:512:12 | strtok | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:512:7:512:12 | strtok | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:512:7:512:12 | strtok | (int,const char *) | | gzdopen | 1 | +| taint.cpp:512:7:512:12 | strtok | (int,const char *) | | setlocale | 1 | +| taint.cpp:512:7:512:12 | strtok | (int,const char *) | | xsetlocale | 1 | | taint.cpp:512:7:512:12 | strtok | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:512:7:512:12 | strtok | (long *,const char *) | | secs2ms | 1 | | taint.cpp:512:7:512:12 | strtok | (long *,const char *) | | str2num | 1 | | taint.cpp:512:7:512:12 | strtok | (long *,const char *) | | str2unum | 1 | +| taint.cpp:512:7:512:12 | strtok | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:512:7:512:12 | strtok | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:512:7:512:12 | strtok | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:512:7:512:12 | strtok | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:512:7:512:12 | strtok | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:512:7:512:12 | strtok | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:512:7:512:12 | strtok | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:512:7:512:12 | strtok | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -10566,14 +14598,28 @@ signatureMatches | taint.cpp:512:7:512:12 | strtok | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:512:7:512:12 | strtok | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:512:7:512:12 | strtok | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:512:7:512:12 | strtok | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:512:7:512:12 | strtok | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:512:7:512:12 | strtok | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:512:7:512:12 | strtok | (unsigned long *,const char *) | | set_name_ex | 1 | | taint.cpp:512:7:512:12 | strtok | (uv_pipe_t *,const char *) | | uv_pipe_bind | 1 | | taint.cpp:514:6:514:16 | test_strtok | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | _IO_gets | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | __mktemp | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | __nis_default_group | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | __nis_default_owner | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | __xpg_basename | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | ctermid | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | cuserid | 0 | | taint.cpp:514:6:514:16 | test_strtok | (char *) | | defossilize | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | des_setparity | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | dirname | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | getwd | 0 | | taint.cpp:514:6:514:16 | test_strtok | (char *) | | make_uppercase | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | mkdtemp | 0 | | taint.cpp:514:6:514:16 | test_strtok | (char *) | | next_item | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | strfry | 0 | | taint.cpp:514:6:514:16 | test_strtok | (char *) | CStringT | CStringT | 0 | | taint.cpp:523:7:523:13 | _strset | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:523:7:523:13 | _strset | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -10638,6 +14684,19 @@ signatureMatches | taint.cpp:523:7:523:13 | _strset | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:523:7:523:13 | _strset | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:523:7:523:13 | _strset | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:523:7:523:13 | _strset | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:523:7:523:13 | _strset | (FTS *,int) | | fts_children | 1 | | taint.cpp:523:7:523:13 | _strset | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:523:7:523:13 | _strset | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:523:7:523:13 | _strset | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -10765,7 +14824,15 @@ signatureMatches | taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:523:7:523:13 | _strset | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:523:7:523:13 | _strset | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:523:7:523:13 | _strset | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:523:7:523:13 | _strset | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:523:7:523:13 | _strset | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:523:7:523:13 | _strset | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:523:7:523:13 | _strset | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:523:7:523:13 | _strset | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:523:7:523:13 | _strset | (char **,int) | | addrsort | 1 | | taint.cpp:523:7:523:13 | _strset | (char *,int) | | Curl_str2addr | 0 | | taint.cpp:523:7:523:13 | _strset | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:523:7:523:13 | _strset | (char *,int) | | PEM_proc_type | 0 | @@ -10832,21 +14899,37 @@ signatureMatches | taint.cpp:523:7:523:13 | _strset | (const char *,int) | | Jim_StrDupLen | 1 | | taint.cpp:523:7:523:13 | _strset | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:523:7:523:13 | _strset | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | ftok | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:523:7:523:13 | _strset | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:523:7:523:13 | _strset | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:523:7:523:13 | _strset | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:523:7:523:13 | _strset | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:523:7:523:13 | _strset | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:523:7:523:13 | _strset | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:523:7:523:13 | _strset | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:523:7:523:13 | _strset | (double,int) | | __ldexp | 1 | +| taint.cpp:523:7:523:13 | _strset | (double,int) | | __scalbn | 1 | +| taint.cpp:523:7:523:13 | _strset | (double[],int) | | getloadavg | 1 | | taint.cpp:523:7:523:13 | _strset | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:523:7:523:13 | _strset | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:523:7:523:13 | _strset | (float,int) | | __ldexpf | 1 | +| taint.cpp:523:7:523:13 | _strset | (float,int) | | __scalbnf | 1 | | taint.cpp:523:7:523:13 | _strset | (gzFile,int) | | gzflush | 1 | | taint.cpp:523:7:523:13 | _strset | (gzFile,int) | | gzputc | 1 | | taint.cpp:523:7:523:13 | _strset | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:523:7:523:13 | _strset | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:523:7:523:13 | _strset | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:523:7:523:13 | _strset | (int,int) | | BN_security_bits | 1 | | taint.cpp:523:7:523:13 | _strset | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:523:7:523:13 | _strset | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | __isctype | 1 | | taint.cpp:523:7:523:13 | _strset | (int,int) | | acttab_alloc | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | div | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:523:7:523:13 | _strset | (long double,int) | | __ldexpl | 1 | +| taint.cpp:523:7:523:13 | _strset | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:523:7:523:13 | _strset | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:523:7:523:13 | _strset | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:523:7:523:13 | _strset | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -10854,8 +14937,21 @@ signatureMatches | taint.cpp:523:7:523:13 | _strset | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:523:7:523:13 | _strset | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:523:7:523:13 | _strset | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:523:7:523:13 | _strset | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:523:7:523:13 | _strset | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:523:7:523:13 | _strset | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:523:7:523:13 | _strset | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:523:7:523:13 | _strset | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:523:7:523:13 | _strset | (rule *,int) | | Configlist_add | 1 | | taint.cpp:523:7:523:13 | _strset | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:523:7:523:13 | _strset | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:523:7:523:13 | _strset | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:523:7:523:13 | _strset | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:523:7:523:13 | _strset | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:523:7:523:13 | _strset | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -10883,6 +14979,8 @@ signatureMatches | taint.cpp:523:7:523:13 | _strset | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:523:7:523:13 | _strset | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:523:7:523:13 | _strset | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:523:7:523:13 | _strset | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:523:7:523:13 | _strset | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:523:7:523:13 | _strset | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:523:7:523:13 | _strset | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -10891,13 +14989,29 @@ signatureMatches | taint.cpp:523:7:523:13 | _strset | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:523:7:523:13 | _strset | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:523:7:523:13 | _strset | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:523:7:523:13 | _strset | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:523:7:523:13 | _strset | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:525:6:525:18 | test_strset_1 | (__printf_buffer *,char) | | __printf_buffer_putc_1 | 1 | | taint.cpp:525:6:525:18 | test_strset_1 | (char **,char) | | Curl_str_single | 1 | +| taint.cpp:525:6:525:18 | test_strset_1 | (char **,char) | | __old_strsep_1c | 1 | | taint.cpp:525:6:525:18 | test_strset_1 | (const CStringT &,char) | | operator+ | 1 | | taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | _IO_gets | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | __mktemp | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | __nis_default_group | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | __nis_default_owner | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | __xpg_basename | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | ctermid | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | cuserid | 0 | | taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | defossilize | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | des_setparity | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | dirname | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | getwd | 0 | | taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | make_uppercase | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | mkdtemp | 0 | | taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | next_item | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | strfry | 0 | | taint.cpp:531:6:531:18 | test_strset_2 | (char *) | CStringT | CStringT | 0 | | taint.cpp:538:7:538:13 | mempcpy | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | | taint.cpp:538:7:538:13 | mempcpy | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | @@ -10941,6 +15055,23 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | | taint.cpp:538:7:538:13 | mempcpy | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | | taint.cpp:538:7:538:13 | mempcpy | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const char *,size_t) | | _IO_new_do_write | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_default_xsputn | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_default_xsputn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,void *,size_t) | | _IO_default_xsgetn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,void *,size_t) | | _IO_file_xsgetn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 2 | | taint.cpp:538:7:538:13 | mempcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | | taint.cpp:538:7:538:13 | mempcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | | taint.cpp:538:7:538:13 | mempcpy | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | @@ -11034,6 +15165,7 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | | taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 1 | | taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (Strtab *,const char *,size_t) | | strtabadd | 2 | | taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 1 | | taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | | taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 1 | @@ -11050,6 +15182,15 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | | taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | | taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 2 | | taint.cpp:538:7:538:13 | mempcpy | (bufc_pool *,size_t,size_t) | | Curl_bufcp_init | 2 | | taint.cpp:538:7:538:13 | mempcpy | (bufq *,size_t,size_t) | | Curl_bufq_init | 2 | | taint.cpp:538:7:538:13 | mempcpy | (bufref *,const void *,size_t) | | Curl_bufref_memdup | 1 | @@ -11060,6 +15201,9 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | | taint.cpp:538:7:538:13 | mempcpy | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | | taint.cpp:538:7:538:13 | mempcpy | (char *,const char *,size_t) | | uv__strscpy | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (char *,size_t,size_t) | | __getcwd_chk | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | @@ -11073,20 +15217,33 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,char *,size_t) | | __libc_ns_makecanon | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,char *,size_t) | | __realpath_chk | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,char *,size_t) | | getpass_r | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,char *,size_t) | | ns_makecanon | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,const char *,size_t) | | c_strncasecmp | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,const char *,unsigned long) | | __ngettext | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const char *,void *,size_t) | | uv__random_readpath | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const charmap_t *,const char *,size_t) | | charmap_find_value | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const sockaddr *,char *,size_t) | | uv_ip_name | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | | taint.cpp:538:7:538:13 | mempcpy | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 1 | | taint.cpp:538:7:538:13 | mempcpy | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const void *,size_t,size_t) | | support_blob_repeat_allocate | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const_nis_name,char *,size_t) | | nis_domain_of_r | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const_nis_name,char *,size_t) | | nis_leaf_of_r | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const_nis_name,char *,size_t) | | nis_name_of_r | 2 | | taint.cpp:538:7:538:13 | mempcpy | (curl_mimepart *,const char *,size_t) | | curl_mime_data | 2 | | taint.cpp:538:7:538:13 | mempcpy | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | | taint.cpp:538:7:538:13 | mempcpy | (dynbuf *,const void *,size_t) | | Curl_dyn_addn | 1 | @@ -11099,9 +15256,17 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (int *,const char *,size_t) | | Curl_http_decode_status | 2 | | taint.cpp:538:7:538:13 | mempcpy | (int *,int *,size_t) | | EVP_PBE_get | 2 | | taint.cpp:538:7:538:13 | mempcpy | (int,char *,size_t) | | Curl_strerror | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (int,char *,size_t) | | __strerror_r | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (int,char *,size_t) | | __ttyname_r | 2 | | taint.cpp:538:7:538:13 | mempcpy | (int,char *,size_t) | | uv_err_name_r | 2 | | taint.cpp:538:7:538:13 | mempcpy | (int,char *,size_t) | | uv_strerror_r | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (int,const void *,size_t) | | _nl_intern_locale_data | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (int,const void *,size_t) | | _nl_intern_locale_data | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (int,const void *,size_t) | | writeall | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (int,const void *,size_t) | | writeall | 2 | | taint.cpp:538:7:538:13 | mempcpy | (int,int,size_t) | | BrotliEncoderEstimatePeakMemoryUsage | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (int,void *,size_t) | | __readall | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 2 | | taint.cpp:538:7:538:13 | mempcpy | (nghttp2_buf *,uint8_t *,size_t) | | nghttp2_buf_wrap_init | 2 | | taint.cpp:538:7:538:13 | mempcpy | (nghttp2_extension *,nghttp2_origin_entry *,size_t) | | nghttp2_frame_origin_init | 2 | | taint.cpp:538:7:538:13 | mempcpy | (nghttp2_extpri *,const uint8_t *,size_t) | | nghttp2_extpri_parse_priority | 2 | @@ -11112,6 +15277,9 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (nghttp2_session *,int32_t,size_t) | | nghttp2_session_consume | 2 | | taint.cpp:538:7:538:13 | mempcpy | (nghttp2_session *,nghttp2_settings_entry *,size_t) | | nghttp2_session_update_local_settings | 2 | | taint.cpp:538:7:538:13 | mempcpy | (nghttp2_settings *,nghttp2_settings_entry *,size_t) | | nghttp2_frame_unpack_settings_payload | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 2 | | taint.cpp:538:7:538:13 | mempcpy | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 2 | | taint.cpp:538:7:538:13 | mempcpy | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | | taint.cpp:538:7:538:13 | mempcpy | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | @@ -11125,11 +15293,19 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | | taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (unsigned int,char *,size_t) | | __initstate | 2 | | taint.cpp:538:7:538:13 | mempcpy | (uv_thread_t *,char *,size_t) | | uv__thread_getname | 2 | | taint.cpp:538:7:538:13 | mempcpy | (uv_thread_t *,char *,size_t) | | uv_thread_getaffinity | 2 | | taint.cpp:538:7:538:13 | mempcpy | (uv_thread_t *,char *,size_t) | | uv_thread_getname | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (void **,size_t,size_t) | | __posix_memalign | 2 | | taint.cpp:538:7:538:13 | mempcpy | (void *,size_t,size_t) | | Curl_hash_str | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (void *,size_t,size_t) | | __libc_reallocarray | 2 | | taint.cpp:538:7:538:13 | mempcpy | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 2 | +| taint.cpp:540:6:540:17 | test_mempcpy | (int *) | | rresvport | 0 | | taint.cpp:548:7:548:13 | memccpy | (BIGNUM **,EVP_PKEY *,const unsigned char *,size_t) | | _libssh2_ecdh_gen_k | 3 | | taint.cpp:548:7:548:13 | memccpy | (BIGNUM *,BIGNUM *,const unsigned char **,size_t) | | ossl_decode_der_dsa_sig | 3 | | taint.cpp:548:7:548:13 | memccpy | (BIO *,X509 *,unsigned long,unsigned long) | | X509_print_ex | 3 | @@ -11186,13 +15362,26 @@ signatureMatches | taint.cpp:548:7:548:13 | memccpy | (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_reserve_bytes__ | 3 | | taint.cpp:548:7:548:13 | memccpy | (WPACKET *,uint64_t,const unsigned char *,size_t) | | ossl_quic_wire_encode_transport_param_bytes | 3 | | taint.cpp:548:7:548:13 | memccpy | (WPACKET *,unsigned char *,size_t,size_t) | | WPACKET_init_static_len | 3 | +| taint.cpp:548:7:548:13 | memccpy | (alloc_buffer *,size_t,size_t,size_t) | | __libc_alloc_buffer_alloc_array | 3 | +| taint.cpp:548:7:548:13 | memccpy | (char *,const wchar_t *,size_t,size_t) | | __wcstombs_chk | 3 | +| taint.cpp:548:7:548:13 | memccpy | (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcat_chk | 3 | +| taint.cpp:548:7:548:13 | memccpy | (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcpy_chk | 3 | | taint.cpp:548:7:548:13 | memccpy | (const ML_DSA_KEY *,int,const uint8_t *,size_t) | | ossl_ml_dsa_mu_init | 3 | | taint.cpp:548:7:548:13 | memccpy | (const VECTOR *,uint32_t,uint8_t *,size_t) | | ossl_ml_dsa_w1_encode | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const char *,const char *,const char *,unsigned long) | | __dngettext | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const char *,u_char *,unsigned char *,size_t) | | __b64_pton | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const nis_error,const char *,char *,size_t) | | nis_sperror_r | 3 | | taint.cpp:548:7:548:13 | memccpy | (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 3 | | taint.cpp:548:7:548:13 | memccpy | (const unsigned char *,size_t,unsigned char *,size_t) | | Curl_hexencode | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const void *,size_t,const void *,size_t) | | __memmem | 3 | +| taint.cpp:548:7:548:13 | memccpy | (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize | 3 | +| taint.cpp:548:7:548:13 | memccpy | (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize_clear | 3 | +| taint.cpp:548:7:548:13 | memccpy | (in_addr_t,uint32_t,char *,size_t) | | inet_neta | 3 | | taint.cpp:548:7:548:13 | memccpy | (int *,X509 *,stack_st_X509 *,unsigned long) | | X509_chain_check_suiteb | 3 | | taint.cpp:548:7:548:13 | memccpy | (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_private_key | 3 | | taint.cpp:548:7:548:13 | memccpy | (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_public_key | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int,char *,size_t,size_t) | | __ttyname_r_chk | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int,const char *,void *,size_t) | | inet_net_pton | 3 | | taint.cpp:548:7:548:13 | memccpy | (int,const regex_t *,char *,size_t) | | jim_regerror | 3 | | taint.cpp:548:7:548:13 | memccpy | (int,const void *,char *,size_t) | | uv_inet_ntop | 3 | | taint.cpp:548:7:548:13 | memccpy | (int,int,size_t,size_t) | | ossl_rand_pool_new | 3 | @@ -11203,8 +15392,10 @@ signatureMatches | taint.cpp:548:7:548:13 | memccpy | (nghttp2_session *,uint8_t,const nghttp2_settings_entry *,size_t) | | nghttp2_session_add_settings | 3 | | taint.cpp:548:7:548:13 | memccpy | (nghttp2_session *,uint8_t,const nghttp2_settings_entry *,size_t) | | nghttp2_submit_settings | 3 | | taint.cpp:548:7:548:13 | memccpy | (nghttp2_settings *,uint8_t,nghttp2_settings_entry *,size_t) | | nghttp2_frame_settings_init | 3 | +| taint.cpp:548:7:548:13 | memccpy | (resolv_context *,const char *,char *,size_t) | | __res_context_hostalias | 3 | | taint.cpp:548:7:548:13 | memccpy | (size_t,size_t,size_t,size_t) | | Curl_multi_handle | 3 | | taint.cpp:548:7:548:13 | memccpy | (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 3 | +| taint.cpp:548:7:548:13 | memccpy | (u_long,unsigned long,char *,size_t) | | ns_format_ttl | 3 | | taint.cpp:548:7:548:13 | memccpy | (uint8_t *,size_t,const nghttp2_settings_entry *,size_t) | | nghttp2_pack_settings_payload | 3 | | taint.cpp:548:7:548:13 | memccpy | (uint8_t *,size_t,const nghttp2_settings_entry *,size_t) | | nghttp2_pack_settings_payload2 | 3 | | taint.cpp:548:7:548:13 | memccpy | (unsigned char *,const unsigned char *,const unsigned char *,size_t) | | _libssh2_xor_data | 3 | @@ -11214,9 +15405,16 @@ signatureMatches | taint.cpp:548:7:548:13 | memccpy | (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 2 | | taint.cpp:548:7:548:13 | memccpy | (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 3 | | taint.cpp:548:7:548:13 | memccpy | (uv_thread_t *,char *,char *,size_t) | | uv_thread_setaffinity | 3 | +| taint.cpp:548:7:548:13 | memccpy | (void *,const void *,int,size_t) | | __memccpy | 0 | +| taint.cpp:548:7:548:13 | memccpy | (void *,const void *,int,size_t) | | __memccpy | 1 | +| taint.cpp:548:7:548:13 | memccpy | (void *,const void *,int,size_t) | | __memccpy | 2 | +| taint.cpp:548:7:548:13 | memccpy | (void *,const void *,int,size_t) | | __memccpy | 3 | | taint.cpp:548:7:548:13 | memccpy | (void *,unsigned char *,size_t *,size_t) | | ossl_ccm_stream_final | 3 | | taint.cpp:548:7:548:13 | memccpy | (void *,unsigned char *,size_t *,size_t) | | ossl_cipher_generic_block_final | 3 | | taint.cpp:548:7:548:13 | memccpy | (void *,unsigned char *,size_t *,size_t) | | ossl_gcm_stream_final | 3 | +| taint.cpp:548:7:548:13 | memccpy | (wchar_t *,const char *,size_t,size_t) | | __mbstowcs_chk | 3 | +| taint.cpp:548:7:548:13 | memccpy | (wchar_t *,const wchar_t *,size_t,size_t) | | __wmemmove_chk | 3 | +| taint.cpp:550:6:550:17 | test_memccpy | (int *) | | rresvport | 0 | | taint.cpp:558:7:558:12 | strcat | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | taint.cpp:558:7:558:12 | strcat | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | | taint.cpp:558:7:558:12 | strcat | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | @@ -11247,6 +15445,7 @@ signatureMatches | taint.cpp:558:7:558:12 | strcat | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:558:7:558:12 | strcat | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:558:7:558:12 | strcat | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:558:7:558:12 | strcat | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:558:7:558:12 | strcat | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:558:7:558:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:558:7:558:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -11303,22 +15502,52 @@ signatureMatches | taint.cpp:558:7:558:12 | strcat | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:558:7:558:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:558:7:558:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:558:7:558:12 | strcat | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:558:7:558:12 | strcat | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:558:7:558:12 | strcat | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:558:7:558:12 | strcat | (char **,const char *) | | __strsep | 1 | +| taint.cpp:558:7:558:12 | strcat | (char *,const char *) | | xstrdup | 0 | +| taint.cpp:558:7:558:12 | strcat | (char *,const char *) | | xstrdup | 1 | | taint.cpp:558:7:558:12 | strcat | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:558:7:558:12 | strcat | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | Configcmp | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | Curl_timestrcmp | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | advance | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | gzopen | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | ossl_pem_check_suffix | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | step | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:558:7:558:12 | strcat | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:558:7:558:12 | strcat | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:558:7:558:12 | strcat | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:558:7:558:12 | strcat | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:558:7:558:12 | strcat | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -11328,16 +15557,22 @@ signatureMatches | taint.cpp:558:7:558:12 | strcat | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:558:7:558:12 | strcat | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:558:7:558:12 | strcat | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:558:7:558:12 | strcat | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:558:7:558:12 | strcat | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:558:7:558:12 | strcat | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:558:7:558:12 | strcat | (int,const char *) | | gzdopen | 1 | +| taint.cpp:558:7:558:12 | strcat | (int,const char *) | | setlocale | 1 | +| taint.cpp:558:7:558:12 | strcat | (int,const char *) | | xsetlocale | 1 | | taint.cpp:558:7:558:12 | strcat | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:558:7:558:12 | strcat | (long *,const char *) | | secs2ms | 1 | | taint.cpp:558:7:558:12 | strcat | (long *,const char *) | | str2num | 1 | | taint.cpp:558:7:558:12 | strcat | (long *,const char *) | | str2unum | 1 | +| taint.cpp:558:7:558:12 | strcat | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:558:7:558:12 | strcat | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:558:7:558:12 | strcat | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:558:7:558:12 | strcat | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:558:7:558:12 | strcat | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:558:7:558:12 | strcat | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:558:7:558:12 | strcat | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:558:7:558:12 | strcat | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -11345,6 +15580,7 @@ signatureMatches | taint.cpp:558:7:558:12 | strcat | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:558:7:558:12 | strcat | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:558:7:558:12 | strcat | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:558:7:558:12 | strcat | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:558:7:558:12 | strcat | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:558:7:558:12 | strcat | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:558:7:558:12 | strcat | (unsigned long *,const char *) | | set_name_ex | 1 | @@ -11354,9 +15590,12 @@ signatureMatches | taint.cpp:560:6:560:16 | test_strcat | (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 3 | | taint.cpp:560:6:560:16 | test_strcat | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 3 | | taint.cpp:560:6:560:16 | test_strcat | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (_IO_strfile *,char *,int,char *) | | _IO_str_init_static | 3 | | taint.cpp:560:6:560:16 | test_strcat | (action **,e_action,symbol *,char *) | | Action_add | 3 | | taint.cpp:560:6:560:16 | test_strcat | (const char *,const char *,char *,char *) | | uv__idna_toascii | 2 | | taint.cpp:560:6:560:16 | test_strcat | (const char *,const char *,char *,char *) | | uv__idna_toascii | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (int,const u_char *,const unsigned char *,char *) | | inet_nsap_ntoa | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (int,u_int,u_int,char *) | | svcunix_create | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (..(*)(..),..(*)(..),..(*)(..),void *) | | libssh2_session_init_ex | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 3 | @@ -11452,6 +15691,8 @@ signatureMatches | taint.cpp:570:16:570:25 | _mbsncat_l | (char *,size_t,size_t,void *) | | tool_mime_stdin_read | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (char *,size_t,size_t,void *) | | tool_read_cb | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (const char *,int,void *,void *) | | support_readdir_r_check | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (hash_table *,const void *,size_t,void *) | | insert_entry | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (nghttp2_session *,const uint8_t *,size_t,void *) | | nghttp2_session_upgrade | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 3 | @@ -11461,10 +15702,12 @@ signatureMatches | taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 3 | | taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (void *,const char *,const char *,void *) | | _dl_vsym | 3 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (EVP_CIPHER_CTX **,..(*)(..),int,unsigned char *,size_t,int) | | _libssh2_cipher_crypt | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (FILE *,const char *,int,int,int,int) | | _IO_file_open | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 5 | @@ -11489,6 +15732,11 @@ signatureMatches | taint.cpp:572:6:572:20 | test__mbsncat_l | (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 5 | @@ -11498,11 +15746,15 @@ signatureMatches | taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (int,char **,gengetopt_args_info *,int,int,int) | | cmdline_parser2 | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (nghttp2_hd_inflater *,nghttp2_hd_nv *,int *,const uint8_t *,size_t,int) | | nghttp2_hd_inflate_hd_nv | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (nghttp2_hd_inflater *,nghttp2_nv *,int *,const uint8_t *,size_t,int) | | nghttp2_hd_inflate_hd2 | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (nghttp2_hd_inflater *,nghttp2_nv *,int *,const uint8_t *,size_t,int) | | nghttp2_hd_inflate_hd3 | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (nghttp2_hd_inflater *,nghttp2_nv *,int *,uint8_t *,size_t,int) | | nghttp2_hd_inflate_hd | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 5 | | taint.cpp:589:7:589:12 | strsep | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | taint.cpp:589:7:589:12 | strsep | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | @@ -11534,6 +15786,7 @@ signatureMatches | taint.cpp:589:7:589:12 | strsep | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:589:7:589:12 | strsep | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:589:7:589:12 | strsep | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:589:7:589:12 | strsep | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:589:7:589:12 | strsep | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:589:7:589:12 | strsep | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:589:7:589:12 | strsep | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -11590,23 +15843,53 @@ signatureMatches | taint.cpp:589:7:589:12 | strsep | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:589:7:589:12 | strsep | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:589:7:589:12 | strsep | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:589:7:589:12 | strsep | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:589:7:589:12 | strsep | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:589:7:589:12 | strsep | (char **,const char *) | | Curl_setstropt | 0 | | taint.cpp:589:7:589:12 | strsep | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:589:7:589:12 | strsep | (char **,const char *) | | __strsep | 0 | +| taint.cpp:589:7:589:12 | strsep | (char **,const char *) | | __strsep | 1 | +| taint.cpp:589:7:589:12 | strsep | (char *,const char *) | | xstrdup | 1 | | taint.cpp:589:7:589:12 | strsep | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:589:7:589:12 | strsep | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | Configcmp | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | Curl_timestrcmp | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | advance | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | gzopen | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | ossl_pem_check_suffix | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | step | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:589:7:589:12 | strsep | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:589:7:589:12 | strsep | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:589:7:589:12 | strsep | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:589:7:589:12 | strsep | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:589:7:589:12 | strsep | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -11616,16 +15899,22 @@ signatureMatches | taint.cpp:589:7:589:12 | strsep | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:589:7:589:12 | strsep | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:589:7:589:12 | strsep | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:589:7:589:12 | strsep | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:589:7:589:12 | strsep | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:589:7:589:12 | strsep | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:589:7:589:12 | strsep | (int,const char *) | | gzdopen | 1 | +| taint.cpp:589:7:589:12 | strsep | (int,const char *) | | setlocale | 1 | +| taint.cpp:589:7:589:12 | strsep | (int,const char *) | | xsetlocale | 1 | | taint.cpp:589:7:589:12 | strsep | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:589:7:589:12 | strsep | (long *,const char *) | | secs2ms | 1 | | taint.cpp:589:7:589:12 | strsep | (long *,const char *) | | str2num | 1 | | taint.cpp:589:7:589:12 | strsep | (long *,const char *) | | str2unum | 1 | +| taint.cpp:589:7:589:12 | strsep | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:589:7:589:12 | strsep | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:589:7:589:12 | strsep | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:589:7:589:12 | strsep | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:589:7:589:12 | strsep | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:589:7:589:12 | strsep | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:589:7:589:12 | strsep | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:589:7:589:12 | strsep | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -11633,16 +15922,32 @@ signatureMatches | taint.cpp:589:7:589:12 | strsep | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:589:7:589:12 | strsep | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:589:7:589:12 | strsep | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:589:7:589:12 | strsep | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:589:7:589:12 | strsep | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:589:7:589:12 | strsep | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:589:7:589:12 | strsep | (unsigned long *,const char *) | | set_name_ex | 1 | | taint.cpp:589:7:589:12 | strsep | (uv_pipe_t *,const char *) | | uv_pipe_bind | 1 | | taint.cpp:591:6:591:16 | test_strsep | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | _IO_gets | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | __mktemp | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | __nis_default_group | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | __nis_default_owner | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | __xpg_basename | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | ctermid | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | cuserid | 0 | | taint.cpp:591:6:591:16 | test_strsep | (char *) | | defossilize | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | des_setparity | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | dirname | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | getwd | 0 | | taint.cpp:591:6:591:16 | test_strsep | (char *) | | make_uppercase | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | mkdtemp | 0 | | taint.cpp:591:6:591:16 | test_strsep | (char *) | | next_item | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | strfry | 0 | | taint.cpp:591:6:591:16 | test_strsep | (char *) | CStringT | CStringT | 0 | | taint.cpp:602:7:602:13 | _strinc | (..(*)(..),void *) | | OSSL_STORE_do_all_loaders | 1 | +| taint.cpp:602:7:602:13 | _strinc | (..(*)(..),void *) | | _dlerror_run | 1 | +| taint.cpp:602:7:602:13 | _strinc | (..(*)(..),void *) | __pthread_cleanup_class | __pthread_cleanup_class | 1 | | taint.cpp:602:7:602:13 | _strinc | (ASN1_SCTX *,void *) | | ASN1_SCTX_set_app_data | 1 | | taint.cpp:602:7:602:13 | _strinc | (BIO *,void *) | | BIO_set_data | 1 | | taint.cpp:602:7:602:13 | _strinc | (CONF_IMODULE *,void *) | | CONF_imodule_set_usr_data | 1 | @@ -11687,18 +15992,28 @@ signatureMatches | taint.cpp:602:7:602:13 | _strinc | (const OSSL_PARAM[],void *) | | ossl_store_handle_load_result | 1 | | taint.cpp:602:7:602:13 | _strinc | (const char *,void *) | | collect_names | 0 | | taint.cpp:602:7:602:13 | _strinc | (const char *,void *) | | collect_names | 1 | +| taint.cpp:602:7:602:13 | _strinc | (const md5_ctx *,void *) | | __md5_read_ctx | 1 | +| taint.cpp:602:7:602:13 | _strinc | (const void *,void *) | | inet6_rth_reverse | 1 | | taint.cpp:602:7:602:13 | _strinc | (int,void *) | | OSSL_STORE_INFO_new | 1 | | taint.cpp:602:7:602:13 | _strinc | (int,void *) | | sqlite3_randomness | 1 | +| taint.cpp:602:7:602:13 | _strinc | (md5_ctx *,void *) | | __md5_finish_ctx | 1 | | taint.cpp:602:7:602:13 | _strinc | (nghttp2_queue *,void *) | | nghttp2_queue_push | 1 | | taint.cpp:602:7:602:13 | _strinc | (nghttp2_session *,void *) | | nghttp2_session_set_user_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (obstack *,void *) | | _obstack_allocated_p | 1 | +| taint.cpp:602:7:602:13 | _strinc | (obstack *,void *) | | obstack_free | 1 | +| taint.cpp:602:7:602:13 | _strinc | (pthread_attr_t *,void *) | | __pthread_attr_setstackaddr | 1 | +| taint.cpp:602:7:602:13 | _strinc | (tunable_id_t,void *) | | __tunable_get_default | 1 | | taint.cpp:602:7:602:13 | _strinc | (unsigned char *,void *) | | pitem_new | 1 | | taint.cpp:602:7:602:13 | _strinc | (uv_handle_t *,void *) | | uv_handle_set_data | 1 | | taint.cpp:602:7:602:13 | _strinc | (uv_key_t *,void *) | | uv_key_set | 1 | | taint.cpp:602:7:602:13 | _strinc | (uv_loop_t *,void *) | | uv_loop_set_data | 1 | | taint.cpp:602:7:602:13 | _strinc | (uv_req_t *,void *) | | uv_req_set_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (void *,void *) | | insque | 1 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | Curl_read16_be | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | Curl_read16_le | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | Curl_read32_le | 0 | +| taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | _getlong | 0 | +| taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | _getshort | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | _libssh2_ntohu32 | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | _libssh2_ntohu64 | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | ossl_quic_vlint_decode_unchecked | 0 | @@ -11708,6 +16023,13 @@ signatureMatches | taint.cpp:604:16:604:22 | _strdec | (RIPEMD160_CTX *,const unsigned char *) | | RIPEMD160_Transform | 1 | | taint.cpp:604:16:604:22 | _strdec | (SM3_CTX *,const unsigned char *) | | ossl_sm3_transform | 1 | | taint.cpp:604:16:604:22 | _strdec | (TLS_RL_RECORD *,const unsigned char *) | | ossl_tls_rl_record_set_seq_num | 1 | +| taint.cpp:604:16:604:22 | _strdec | (const u_char *,const unsigned char *) | | ns_get16 | 1 | +| taint.cpp:604:16:604:22 | _strdec | (const u_char *,const unsigned char *) | | ns_get32 | 1 | +| taint.cpp:604:16:604:22 | _strdec | (const unsigned char **,const unsigned char *) | | ___ns_name_skip | 1 | +| taint.cpp:604:16:604:22 | _strdec | (const unsigned char *,const unsigned char *) | | ___dn_skipname | 0 | +| taint.cpp:604:16:604:22 | _strdec | (const unsigned char *,const unsigned char *) | | ___dn_skipname | 1 | +| taint.cpp:604:16:604:22 | _strdec | (const unsigned char *,const unsigned char *) | | __ns_name_length_uncompressed | 0 | +| taint.cpp:604:16:604:22 | _strdec | (const unsigned char *,const unsigned char *) | | __ns_name_length_uncompressed | 1 | | taint.cpp:606:6:606:17 | test__strinc | (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 4 | | taint.cpp:606:6:606:17 | test__strinc | (BrotliDecoderState *,BrotliDecoderStateInternal *,brotli_decoder_metadata_start_func,brotli_decoder_metadata_chunk_func,void *) | | BrotliDecoderSetMetadataCallbacks | 4 | | taint.cpp:606:6:606:17 | test__strinc | (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 4 | @@ -11717,6 +16039,7 @@ signatureMatches | taint.cpp:606:6:606:17 | test__strinc | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 4 | | taint.cpp:606:6:606:17 | test__strinc | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 4 | | taint.cpp:606:6:606:17 | test__strinc | (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 4 | | taint.cpp:606:6:606:17 | test__strinc | (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 4 | | taint.cpp:606:6:606:17 | test__strinc | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 4 | | taint.cpp:606:6:606:17 | test__strinc | (nghttp2_extension *,uint8_t,uint8_t,int32_t,void *) | | nghttp2_frame_extension_init | 4 | @@ -11727,8 +16050,11 @@ signatureMatches | taint.cpp:616:6:616:17 | test__mbsinc | (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 3 | | taint.cpp:616:6:616:17 | test__mbsinc | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 3 | | taint.cpp:616:6:616:17 | test__mbsinc | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (_IO_strfile *,char *,int,char *) | | _IO_str_init_static | 3 | | taint.cpp:616:6:616:17 | test__mbsinc | (action **,e_action,symbol *,char *) | | Action_add | 3 | | taint.cpp:616:6:616:17 | test__mbsinc | (const char *,const char *,char *,char *) | | uv__idna_toascii | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (int,const u_char *,const unsigned char *,char *) | | inet_nsap_ntoa | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (int,u_int,u_int,char *) | | svcunix_create | 3 | | taint.cpp:626:6:626:17 | test__strdec | (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 4 | | taint.cpp:626:6:626:17 | test__strdec | (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 4 | | taint.cpp:626:6:626:17 | test__strdec | (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 3 | @@ -11747,16 +16073,36 @@ signatureMatches | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | UI_create_method | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | X509V3_parse_list | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __basename | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __gconv_find_shlib | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __gettext | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __hash_string | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __nss_action_parse | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __strdup | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __textdomain | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __tzset_parse_tz | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | __tzstring | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a64l | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | charmap_opendir | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | ether_aton | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | getdate | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | inetstr2int | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | last_component | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | opt_path_end | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | opt_progname | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | repertoire_read | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | res_gethostbyname | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | sgetsgent | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | sgetspent | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | strhash | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | uc_script_byname | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | uv__strdup | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | xstrdup | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | BIO_gethostbyname | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | Curl_copy_header_value | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | Curl_get_scheme_handler | 0 | @@ -11769,34 +16115,90 @@ signatureMatches | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | UI_create_method | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | X509V3_parse_list | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __basename | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __gconv_find_shlib | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __gettext | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __hash_string | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __nss_action_parse | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __strdup | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __textdomain | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __tzset_parse_tz | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | __tzstring | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a64l | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | charmap_opendir | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | ether_aton | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | getdate | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | inetstr2int | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | last_component | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | new_glibc_hwcaps_subdirectory | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | opt_path_end | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | opt_progname | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | repertoire_read | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | res_gethostbyname | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | sgetsgent | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | sgetspent | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | strhash | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | uc_script_byname | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | uv__strdup | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | uv_wtf8_length_as_utf16 | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | xstrdup | 0 | | taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | _IO_gets | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | __mktemp | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | __nis_default_group | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | __nis_default_owner | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | __xpg_basename | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | ctermid | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | cuserid | 0 | | taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | defossilize | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | des_setparity | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | dirname | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | getwd | 0 | | taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | make_uppercase | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | mkdtemp | 0 | | taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | next_item | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | strfry | 0 | | taint.cpp:665:6:665:25 | test_no_const_member | (char *) | CStringT | CStringT | 0 | | taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | _IO_gets | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | __mktemp | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | __nis_default_group | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | __nis_default_owner | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | __xpg_basename | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | ctermid | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | cuserid | 0 | | taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | defossilize | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | des_setparity | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | dirname | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | getwd | 0 | | taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | make_uppercase | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | mkdtemp | 0 | | taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | next_item | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | strfry | 0 | | taint.cpp:677:6:677:27 | test_with_const_member | (char *) | CStringT | CStringT | 0 | | taint.cpp:683:6:683:20 | argument_source | (void *) | | Curl_cpool_upkeep | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | __dlclose | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | __libc_dlclose | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | __libc_free | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | __malloc_usable_size | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | _dl_allocate_tls | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | _dl_close | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | malloc_usable_size | 0 | | taint.cpp:683:6:683:20 | argument_source | (void *) | | ossl_kdf_data_new | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | support_shared_free | 0 | | taint.cpp:707:8:707:14 | strncpy | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | | taint.cpp:707:8:707:14 | strncpy | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | | taint.cpp:707:8:707:14 | strncpy | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | | taint.cpp:707:8:707:14 | strncpy | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | | taint.cpp:707:8:707:14 | strncpy | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | | taint.cpp:707:8:707:14 | strncpy | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| taint.cpp:707:8:707:14 | strncpy | (const char *,const char *,unsigned long) | | __ngettext | 1 | +| taint.cpp:707:8:707:14 | strncpy | (const char *,const char *,unsigned long) | | __ngettext | 2 | | taint.cpp:707:8:707:14 | strncpy | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | taint.cpp:709:6:709:17 | test_strncpy | (ARGS *,char *) | | chopup_args | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (BIO *,char *) | | BIO_set_callback_arg | 1 | @@ -11804,8 +16206,19 @@ signatureMatches | taint.cpp:709:6:709:17 | test_strncpy | (SRP_VBASE *,char *) | | SRP_VBASE_get_by_user | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (SSL_CTX *,char *) | | SSL_CTX_set_srp_password | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (SSL_CTX *,char *) | | SSL_CTX_set_srp_username | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (XDR *,char *) | | xdr_char | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (char *,char *) | | passwd2des_internal | 0 | +| taint.cpp:709:6:709:17 | test_strncpy | (char *,char *) | | passwd2des_internal | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (char *,char *) | | xdecrypt | 0 | +| taint.cpp:709:6:709:17 | test_strncpy | (char *,char *) | | xdecrypt | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (char *,char *) | | xencrypt | 0 | +| taint.cpp:709:6:709:17 | test_strncpy | (char *,char *) | | xencrypt | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (const char *,char *) | | __old_realpath | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (const char *,char *) | | __realpath | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (const char *,char *) | | sha1sum_file | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (const char *,char *) | | sha3sum_file | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (const ether_addr *,char *) | | ether_ntoa_r | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (const tm *,char *) | | __asctime_r | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (curl_slist *,char *) | | Curl_slist_append_nodup | 1 | | taint.cpp:709:6:709:17 | test_strncpy | (unsigned long,char *) | | ERR_error_string | 1 | | taint.cpp:725:10:725:15 | strtol | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | @@ -11858,9 +16271,14 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | | taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | | taint.cpp:725:10:725:15 | strtol | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,_IO_marker *,int) | | _IO_seekmark | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,_IO_marker *,int) | | _IO_seekwmark | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,__FILE *,int) | | fwide | 2 | | taint.cpp:725:10:725:15 | strtol | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | | taint.cpp:725:10:725:15 | strtol | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,off64_t,int) | | _IO_cookie_seek | 2 | | taint.cpp:725:10:725:15 | strtol | (FILE *,rule *,int) | | RulePrint | 2 | +| taint.cpp:725:10:725:15 | strtol | (FTS *,FTSENT *,int) | | fts_set | 2 | | taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | | taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | | taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | @@ -11946,8 +16364,12 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | taint.cpp:725:10:725:15 | strtol | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | taint.cpp:725:10:725:15 | strtol | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| taint.cpp:725:10:725:15 | strtol | (_Float128,_Float128,int) | | __kernel_sinf128 | 2 | +| taint.cpp:725:10:725:15 | strtol | (_Float128,_Float128,int) | | __kernel_tanf128 | 2 | +| taint.cpp:725:10:725:15 | strtol | (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 2 | | taint.cpp:725:10:725:15 | strtol | (action *,FILE *,int) | | PrintAction | 2 | | taint.cpp:725:10:725:15 | strtol | (acttab *,int,int) | | acttab_action | 2 | +| taint.cpp:725:10:725:15 | strtol | (char *,size_t,int) | | __argz_stringify | 2 | | taint.cpp:725:10:725:15 | strtol | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | | taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | | taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | @@ -11989,14 +16411,26 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | | taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | taint.cpp:725:10:725:15 | strtol | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | __strtol | 0 | +| taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | __strtol | 1 | +| taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | __strtol | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | __strtoul | 0 | +| taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | __strtoul | 1 | +| taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | __strtoul | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | idn2_to_ascii_8z | 0 | | taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | idn2_to_ascii_8z | 1 | | taint.cpp:725:10:725:15 | strtol | (const char *,char **,int) | | idn2_to_ascii_8z | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | __dcgettext | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,int,int) | | __old_strpbrk_c2 | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,long *,int) | | Jim_StringToWide | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,void *,int) | | support_readdir_check | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,wordexp_t *,int) | | wordexp | 2 | +| taint.cpp:725:10:725:15 | strtol | (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 2 | | taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | | taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | | taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | @@ -12006,16 +16440,32 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | | taint.cpp:725:10:725:15 | strtol | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | | taint.cpp:725:10:725:15 | strtol | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| taint.cpp:725:10:725:15 | strtol | (const void *,socklen_t,int) | | res_gethostbyaddr | 2 | +| taint.cpp:725:10:725:15 | strtol | (const wchar_t *,wchar_t **,int) | | __wcstol | 2 | +| taint.cpp:725:10:725:15 | strtol | (const wchar_t *,wchar_t **,int) | | __wcstoul | 2 | | taint.cpp:725:10:725:15 | strtol | (curl_mimepart *,curl_mime *,int) | | Curl_mime_set_subparts | 2 | | taint.cpp:725:10:725:15 | strtol | (curl_mimepart *,curl_slist *,int) | | curl_mime_headers | 2 | +| taint.cpp:725:10:725:15 | strtol | (database_dyn *,size_t,int) | | mempool_alloc | 2 | +| taint.cpp:725:10:725:15 | strtol | (database_dyn *,time_t,int) | | prune_cache | 2 | +| taint.cpp:725:10:725:15 | strtol | (double,double,int) | | __kernel_standard | 2 | +| taint.cpp:725:10:725:15 | strtol | (float,float,int) | | __kernel_standard_f | 2 | +| taint.cpp:725:10:725:15 | strtol | (gconv_spec *,__gconv_t *,int) | | __gconv_open | 2 | | taint.cpp:725:10:725:15 | strtol | (gzFile,char *,int) | | gzgets | 2 | | taint.cpp:725:10:725:15 | strtol | (gzFile,int,int) | | gzsetparams | 2 | | taint.cpp:725:10:725:15 | strtol | (gzFile,off64_t,int) | | gzseek64 | 2 | | taint.cpp:725:10:725:15 | strtol | (gzFile,off_t,int) | | gzseek | 2 | +| taint.cpp:725:10:725:15 | strtol | (int *,short *,int) | | __lll_lock_elision | 2 | | taint.cpp:725:10:725:15 | strtol | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | | taint.cpp:725:10:725:15 | strtol | (int,int,int) | | ASN1_object_size | 2 | | taint.cpp:725:10:725:15 | strtol | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (long double,long double,int) | | __kernel_sinl | 2 | +| taint.cpp:725:10:725:15 | strtol | (long double,long double,int) | | __kernel_standard_l | 2 | +| taint.cpp:725:10:725:15 | strtol | (long double,long double,int) | | __kernel_tanl | 2 | +| taint.cpp:725:10:725:15 | strtol | (mp_srcptr,int,int) | | __mpn_construct_double | 2 | +| taint.cpp:725:10:725:15 | strtol | (mp_srcptr,int,int) | | __mpn_construct_float | 2 | +| taint.cpp:725:10:725:15 | strtol | (mp_srcptr,int,int) | | __mpn_construct_float128 | 2 | | taint.cpp:725:10:725:15 | strtol | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| taint.cpp:725:10:725:15 | strtol | (requestlist *,requestlist *,int) | | __aio_remove_request | 2 | | taint.cpp:725:10:725:15 | strtol | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | | taint.cpp:725:10:725:15 | strtol | (sqlite3 *,int,int) | | sqlite3_limit | 2 | | taint.cpp:725:10:725:15 | strtol | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | @@ -12036,11 +16486,15 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | | taint.cpp:725:10:725:15 | strtol | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | | taint.cpp:725:10:725:15 | strtol | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 2 | | taint.cpp:725:10:725:15 | strtol | (uint8_t[56],const gf,int) | | gf_serialize | 2 | | taint.cpp:725:10:725:15 | strtol | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned char *,const char *,int) | | data_string | 2 | | taint.cpp:725:10:725:15 | strtol | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | | taint.cpp:725:10:725:15 | strtol | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | | taint.cpp:725:10:725:15 | strtol | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned int,const char *,int) | | _IO_adjust_column | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 2 | | taint.cpp:725:10:725:15 | strtol | (unsigned int,int,int) | | ossl_blob_length | 2 | | taint.cpp:725:10:725:15 | strtol | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | | taint.cpp:725:10:725:15 | strtol | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | @@ -12051,27 +16505,51 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start | 2 | | taint.cpp:725:10:725:15 | strtol | (uv_signal_t *,uv_signal_cb,int) | | uv_signal_start_oneshot | 2 | | taint.cpp:725:10:725:15 | strtol | (uv_stream_t *,int,int) | | uv__stream_open | 2 | +| taint.cpp:725:10:725:15 | strtol | (void *,cmsghdr **,int) | | inet6_option_init | 2 | | taint.cpp:725:10:725:15 | strtol | (void *,const char *,int) | | CRYPTO_secure_free | 2 | | taint.cpp:725:10:725:15 | strtol | (void *,curl_off_t,int) | | tool_mime_stdin_seek | 2 | +| taint.cpp:725:10:725:15 | strtol | (void *,socklen_t,int) | | inet6_opt_finish | 2 | | taint.cpp:727:6:727:16 | test_strtol | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | _IO_gets | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | __mktemp | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | __nis_default_group | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | __nis_default_owner | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | __xpg_basename | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | ctermid | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | cuserid | 0 | | taint.cpp:727:6:727:16 | test_strtol | (char *) | | defossilize | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | des_setparity | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | dirname | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | getwd | 0 | | taint.cpp:727:6:727:16 | test_strtol | (char *) | | make_uppercase | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | mkdtemp | 0 | | taint.cpp:727:6:727:16 | test_strtol | (char *) | | next_item | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | strfry | 0 | | taint.cpp:727:6:727:16 | test_strtol | (char *) | CStringT | CStringT | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | BrotliEncoderMaxCompressedSize | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | __libc_malloc | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | __libc_valloc | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | _dl_early_allocate | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | curlx_uztosi | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | curlx_uztosz | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | curlx_uztoui | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | curlx_uztoul | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | malloc | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_get_extension_type | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_param_bytes_to_blocks | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_quic_sstream_new | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | ssl_cert_new | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | support_next_to_fault_allocate | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | support_next_to_fault_allocate_before | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | support_stack_alloc | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | xalloc_sigstack | 0 | | taint.cpp:735:7:735:12 | malloc | (unsigned long) | | BN_num_bits_word | 0 | | taint.cpp:735:7:735:12 | malloc | (unsigned long) | | BUF_MEM_new_ex | 0 | | taint.cpp:735:7:735:12 | malloc | (unsigned long) | | curlx_ultouc | 0 | | taint.cpp:735:7:735:12 | malloc | (unsigned long) | | curlx_ultous | 0 | +| taint.cpp:735:7:735:12 | malloc | (unsigned long) | | next_prime | 0 | | taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -12131,20 +16609,39 @@ signatureMatches | taint.cpp:736:7:736:13 | realloc | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | | taint.cpp:736:7:736:13 | realloc | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | | taint.cpp:736:7:736:13 | realloc | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (__gconv_step *,size_t) | | __gconv_close_transform | 1 | +| taint.cpp:736:7:736:13 | realloc | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_lmargin | 1 | +| taint.cpp:736:7:736:13 | realloc | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_rmargin | 1 | +| taint.cpp:736:7:736:13 | realloc | (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_wmargin | 1 | | taint.cpp:736:7:736:13 | realloc | (bufq *,size_t) | | Curl_bufq_skip | 1 | | taint.cpp:736:7:736:13 | realloc | (bufq *,size_t) | | Curl_bufq_unwrite | 1 | | taint.cpp:736:7:736:13 | realloc | (char *,size_t) | | RAND_file_name | 1 | +| taint.cpp:736:7:736:13 | realloc | (char *,size_t) | | __getcwd | 1 | +| taint.cpp:736:7:736:13 | realloc | (char *,size_t) | | __gets_chk | 1 | +| taint.cpp:736:7:736:13 | realloc | (char *,size_t) | | __getwd_chk | 1 | | taint.cpp:736:7:736:13 | realloc | (char *,size_t) | | plain_method | 1 | | taint.cpp:736:7:736:13 | realloc | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | | taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | Curl_getn_scheme_handler | 1 | | taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | Curl_memdup0 | 1 | | taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | OPENSSL_strnlen | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | __nss_module_allocate | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | __strndup | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | charmap_hash | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | locfile_hash | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | mblen | 1 | | taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | uv__strndup | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | xstrndup | 1 | | taint.cpp:736:7:736:13 | realloc | (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | | taint.cpp:736:7:736:13 | realloc | (const uint8_t *,size_t) | | nghttp2_hd_huff_encode_count | 1 | | taint.cpp:736:7:736:13 | realloc | (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | | taint.cpp:736:7:736:13 | realloc | (const void *,size_t) | | Curl_memdup | 1 | +| taint.cpp:736:7:736:13 | realloc | (const void *,size_t) | | __nis_hash | 1 | +| taint.cpp:736:7:736:13 | realloc | (const void *,size_t) | | __nss_hash | 1 | +| taint.cpp:736:7:736:13 | realloc | (const void *,size_t) | | compute_hashval | 1 | +| taint.cpp:736:7:736:13 | realloc | (const wchar_t *,size_t) | | __wcsnlen_generic | 1 | +| taint.cpp:736:7:736:13 | realloc | (const wchar_t *,size_t) | | wcswidth | 1 | | taint.cpp:736:7:736:13 | realloc | (curl_pushheaders *,size_t) | | curl_pushheader_bynum | 1 | +| taint.cpp:736:7:736:13 | realloc | (dl_find_object_internal *,size_t) | | _dlfo_sort_mappings | 1 | | taint.cpp:736:7:736:13 | realloc | (dynbuf *,size_t) | | Curl_dyn_init | 1 | | taint.cpp:736:7:736:13 | realloc | (dynbuf *,size_t) | | Curl_dyn_setlen | 1 | | taint.cpp:736:7:736:13 | realloc | (dynbuf *,size_t) | | Curl_dyn_tail | 1 | @@ -12153,7 +16650,10 @@ signatureMatches | taint.cpp:736:7:736:13 | realloc | (dynbuf *,size_t) | | curlx_dyn_tail | 1 | | taint.cpp:736:7:736:13 | realloc | (dynhds *,size_t) | | Curl_dynhds_getn | 1 | | taint.cpp:736:7:736:13 | realloc | (h1_req_parser *,size_t) | | Curl_h1_req_parse_init | 1 | +| taint.cpp:736:7:736:13 | realloc | (hash_table *,unsigned long) | | init_hash | 1 | | taint.cpp:736:7:736:13 | realloc | (int,size_t) | | ossl_calculate_comp_expansion | 1 | +| taint.cpp:736:7:736:13 | realloc | (link_map *,size_t) | | _dl_make_tlsdesc_dynamic | 1 | +| taint.cpp:736:7:736:13 | realloc | (locale_file *,size_t) | | init_locale_data | 1 | | taint.cpp:736:7:736:13 | realloc | (nghttp2_bufs *,size_t) | | nghttp2_bufs_realloc | 1 | | taint.cpp:736:7:736:13 | realloc | (nghttp2_frame *,size_t) | | nghttp2_frame_trail_padlen | 1 | | taint.cpp:736:7:736:13 | realloc | (nghttp2_hd_context *,size_t) | | nghttp2_hd_table_get | 1 | @@ -12170,17 +16670,35 @@ signatureMatches | taint.cpp:736:7:736:13 | realloc | (nghttp2_session *,size_t) | | nghttp2_session_consume_connection | 1 | | taint.cpp:736:7:736:13 | realloc | (nghttp2_session *,size_t) | | nghttp2_session_update_recv_connection_window_size | 1 | | taint.cpp:736:7:736:13 | realloc | (nghttp2_stream *,size_t) | | nghttp2_http_on_data_chunk | 1 | +| taint.cpp:736:7:736:13 | realloc | (nss_action *,size_t) | | __nss_action_allocate | 1 | +| taint.cpp:736:7:736:13 | realloc | (pthread_attr_t *,size_t) | | __pthread_attr_setguardsize | 1 | +| taint.cpp:736:7:736:13 | realloc | (pthread_attr_t *,size_t) | | __pthread_attr_setstacksize | 1 | +| taint.cpp:736:7:736:13 | realloc | (size_t,size_t) | | __libc_memalign | 1 | +| taint.cpp:736:7:736:13 | realloc | (size_t,size_t) | | aligned_alloc | 1 | +| taint.cpp:736:7:736:13 | realloc | (u_long,unsigned long) | | __p_option | 1 | | taint.cpp:736:7:736:13 | realloc | (uint8_t *,size_t) | | nghttp2_downcase | 1 | | taint.cpp:736:7:736:13 | realloc | (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | | taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | JimDefaultAllocator | 0 | | taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | JimDefaultAllocator | 1 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | __arc4random_buf | 0 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | __arc4random_buf | 1 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | __libc_realloc | 0 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | __libc_realloc | 1 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | __minimal_realloc | 0 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | __minimal_realloc | 1 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | getentropy | 0 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | getentropy | 1 | | taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | uv__random_devurandom | 0 | | taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | uv__random_devurandom | 1 | | taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | uv__random_getrandom | 0 | | taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | uv__random_getrandom | 1 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | xrealloc | 0 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | xrealloc | 1 | | taint.cpp:758:5:758:11 | sprintf | (CURLSH *,CURLSHoption,...) | | curl_share_setopt | 2 | | taint.cpp:758:5:758:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | | taint.cpp:758:5:758:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | +| taint.cpp:758:5:758:11 | sprintf | (char **,const char *,...) | | ___asprintf | 1 | +| taint.cpp:758:5:758:11 | sprintf | (char **,const char *,...) | | ___asprintf | 2 | | taint.cpp:758:5:758:11 | sprintf | (curl_httppost **,curl_httppost **,...) | | curl_formadd | 2 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (ARGS *,char *) | | chopup_args | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (BIO *,char *) | | BIO_set_callback_arg | 1 | @@ -12188,8 +16706,19 @@ signatureMatches | taint.cpp:760:6:760:23 | call_sprintf_twice | (SRP_VBASE *,char *) | | SRP_VBASE_get_by_user | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (SSL_CTX *,char *) | | SSL_CTX_set_srp_password | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (SSL_CTX *,char *) | | SSL_CTX_set_srp_username | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (XDR *,char *) | | xdr_char | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (char *,char *) | | passwd2des_internal | 0 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (char *,char *) | | passwd2des_internal | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (char *,char *) | | xdecrypt | 0 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (char *,char *) | | xdecrypt | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (char *,char *) | | xencrypt | 0 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (char *,char *) | | xencrypt | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (const char *,char *) | | __old_realpath | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (const char *,char *) | | __realpath | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (const char *,char *) | | sha1sum_file | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (const char *,char *) | | sha3sum_file | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (const ether_addr *,char *) | | ether_ntoa_r | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (const tm *,char *) | | __asctime_r | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (curl_slist *,char *) | | Curl_slist_append_nodup | 1 | | taint.cpp:760:6:760:23 | call_sprintf_twice | (unsigned long,char *) | | ERR_error_string | 1 | | taint.cpp:782:7:782:11 | fopen | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | @@ -12222,6 +16751,7 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:782:7:782:11 | fopen | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:782:7:782:11 | fopen | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:782:7:782:11 | fopen | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:782:7:782:11 | fopen | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:782:7:782:11 | fopen | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:782:7:782:11 | fopen | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -12278,7 +16808,12 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:782:7:782:11 | fopen | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:782:7:782:11 | fopen | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:782:7:782:11 | fopen | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:782:7:782:11 | fopen | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:782:7:782:11 | fopen | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:782:7:782:11 | fopen | (char **,const char *) | | __strsep | 1 | +| taint.cpp:782:7:782:11 | fopen | (char *,const char *) | | xstrdup | 1 | | taint.cpp:782:7:782:11 | fopen | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:782:7:782:11 | fopen | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | Configcmp | 0 | @@ -12289,14 +16824,52 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __bind_textdomain_codeset | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __bindtextdomain | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __dgettext | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __gconv_compare_alias | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strcasestr | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strcspn_generic | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strcspn_sse42 | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strpbrk_generic | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strpbrk_sse42 | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strspn_generic | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strspn_sse42 | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strstr_generic | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strverscmp | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | _dl_cache_libcmp | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | advance | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | advance | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | c_strcasecmp | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | charmap_aliases | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | charmap_open | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | chroot_canon | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | get_passwd | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | gzopen | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | gzopen | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | gzopen64 | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | iconv_open | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | openssl_fopen | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | ossl_pem_check_suffix | 0 | @@ -12307,6 +16880,14 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_stricmp | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | step | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | step | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | tempnam | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | xfopen | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:782:7:782:11 | fopen | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:782:7:782:11 | fopen | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:782:7:782:11 | fopen | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:782:7:782:11 | fopen | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:782:7:782:11 | fopen | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -12316,16 +16897,22 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:782:7:782:11 | fopen | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:782:7:782:11 | fopen | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:782:7:782:11 | fopen | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:782:7:782:11 | fopen | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:782:7:782:11 | fopen | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:782:7:782:11 | fopen | (int,const char *) | | gzdopen | 1 | +| taint.cpp:782:7:782:11 | fopen | (int,const char *) | | setlocale | 1 | +| taint.cpp:782:7:782:11 | fopen | (int,const char *) | | xsetlocale | 1 | | taint.cpp:782:7:782:11 | fopen | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:782:7:782:11 | fopen | (long *,const char *) | | secs2ms | 1 | | taint.cpp:782:7:782:11 | fopen | (long *,const char *) | | str2num | 1 | | taint.cpp:782:7:782:11 | fopen | (long *,const char *) | | str2unum | 1 | +| taint.cpp:782:7:782:11 | fopen | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:782:7:782:11 | fopen | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:782:7:782:11 | fopen | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:782:7:782:11 | fopen | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:782:7:782:11 | fopen | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:782:7:782:11 | fopen | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:782:7:782:11 | fopen | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:782:7:782:11 | fopen | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -12333,6 +16920,7 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:782:7:782:11 | fopen | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:782:7:782:11 | fopen | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:782:7:782:11 | fopen | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:782:7:782:11 | fopen | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:782:7:782:11 | fopen | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:782:7:782:11 | fopen | (unsigned long *,const char *) | | set_name_ex | 1 | @@ -12346,6 +16934,8 @@ signatureMatches | taint.cpp:783:5:783:11 | fopen_s | (EVP_PKEY_CTX *,const char *,const char *) | | EVP_PKEY_CTX_ctrl_str | 2 | | taint.cpp:783:5:783:11 | fopen_s | (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 1 | | taint.cpp:783:5:783:11 | fopen_s | (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (FILE *,const char *,const char *) | | _IO_new_proc_open | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (FILE *,const char *,const char *) | | _IO_new_proc_open | 2 | | taint.cpp:783:5:783:11 | fopen_s | (GlobalConfig *,char **,const char *) | | get_url_file_name | 2 | | taint.cpp:783:5:783:11 | fopen_s | (Jim_Interp *,Jim_Obj *,const char *) | | Jim_CompareStringImmediate | 2 | | taint.cpp:783:5:783:11 | fopen_s | (Jim_Interp *,const char *,const char *) | | Jim_SetVariableStrWithStr | 1 | @@ -12374,6 +16964,10 @@ signatureMatches | taint.cpp:783:5:783:11 | fopen_s | (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_UTF8STRING | 2 | | taint.cpp:783:5:783:11 | fopen_s | (X509_CRL *,OSSL_LIB_CTX *,const char *) | | ossl_x509_crl_set0_libctx | 2 | | taint.cpp:783:5:783:11 | fopen_s | (X509_REQ *,OSSL_LIB_CTX *,const char *) | | ossl_x509_req_set0_libctx | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (char **,size_t *,const char *) | | envz_remove | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (char[256],const char *,const char *) | | host2netname | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (char[256],const char *,const char *) | | host2netname | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (char[256],const uid_t,const char *) | | user2netname | 2 | | taint.cpp:783:5:783:11 | fopen_s | (const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_new_ex | 2 | | taint.cpp:783:5:783:11 | fopen_s | (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_AuthEnvelopedData_create_ex | 2 | | taint.cpp:783:5:783:11 | fopen_s | (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_create_ex | 2 | @@ -12391,21 +16985,48 @@ signatureMatches | taint.cpp:783:5:783:11 | fopen_s | (const X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_param_from_x509_algor | 2 | | taint.cpp:783:5:783:11 | fopen_s | (const char **,char **,const char *) | | Curl_get_pathname | 2 | | taint.cpp:783:5:783:11 | fopen_s | (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const char *,size_t,const char *) | | __argz_next | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const char *,size_t,const char *) | | argz_next | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const char *,size_t,const char *) | | envz_entry | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const char *,size_t,const char *) | | envz_get | 2 | | taint.cpp:783:5:783:11 | fopen_s | (const char *,sqlite3_filename,const char *) | | sqlite3_uri_parameter | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (dl_exception *,const char *,const char *) | | _dl_exception_create | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (dl_exception *,const char *,const char *) | | _dl_exception_create | 2 | | taint.cpp:783:5:783:11 | fopen_s | (dynhds *,const char *,const char *) | | Curl_dynhds_cadd | 1 | | taint.cpp:783:5:783:11 | fopen_s | (dynhds *,const char *,const char *) | | Curl_dynhds_cadd | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (gconv_spec *,const char *,const char *) | | __gconv_create_spec | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (gconv_spec *,const char *,const char *) | | __gconv_create_spec | 2 | | taint.cpp:783:5:783:11 | fopen_s | (gz_statep,int,const char *) | | gz_error | 2 | | taint.cpp:783:5:783:11 | fopen_s | (http_resp **,int,const char *) | | Curl_http_resp_make | 2 | | taint.cpp:783:5:783:11 | fopen_s | (int,OSSL_LIB_CTX *,const char *) | | PKCS12_init_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (int,char *const *,const char *) | | __posix_getopt | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (int,char *const *,const char *) | | getopt | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (int,dl_exception *,const char *) | | _dl_signal_cexception | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (int,dl_exception *,const char *) | | _dl_signal_exception | 2 | | taint.cpp:783:5:783:11 | fopen_s | (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 2 | | taint.cpp:783:5:783:11 | fopen_s | (lemon *,const char *,const char *) | | file_open | 1 | | taint.cpp:783:5:783:11 | fopen_s | (lemon *,const char *,const char *) | | file_open | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (locale_t,const char *,const char *) | | __translated_number_width | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (locale_t,const char *,const char *) | | __translated_number_width | 2 | | taint.cpp:783:5:783:11 | fopen_s | (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 1 | | taint.cpp:783:5:783:11 | fopen_s | (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 2 | | taint.cpp:785:6:785:15 | fopen_test | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | _IO_gets | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | __mktemp | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | __nis_default_group | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | __nis_default_owner | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | __nis_default_ttl | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | __xpg_basename | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | ctermid | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | cuserid | 0 | | taint.cpp:785:6:785:15 | fopen_test | (char *) | | defossilize | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | des_setparity | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | dirname | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | getwd | 0 | | taint.cpp:785:6:785:15 | fopen_test | (char *) | | make_uppercase | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | mkdtemp | 0 | | taint.cpp:785:6:785:15 | fopen_test | (char *) | | next_item | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | strfry | 0 | | taint.cpp:785:6:785:15 | fopen_test | (char *) | CStringT | CStringT | 0 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (Curl_easy *,unsigned int) | | Curl_ssl_supports | 1 | @@ -12423,11 +17044,17 @@ signatureMatches | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (char *,unsigned int) | | __nis_default_access | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (char *,unsigned int) | | utf8_fromunicode | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (char *,unsigned int) | | uv_buf_init | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (const uv__io_t *,unsigned int) | | uv__io_active | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (const uv_buf_t[],unsigned int) | | uv__count_bufs | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (const_nis_name,unsigned int) | | __create_ib_request | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (grouping_iterator *,unsigned int) | | __grouping_iterator_init_none | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (gzFile,unsigned int) | | gzbuffer | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (res_state,unsigned int) | | __res_get_nsaddr | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (unsigned int,unsigned int) | | __gnu_dev_makedev | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (unsigned int,unsigned int) | | gnu_dev_makedev | 1 | | taint.cpp:801:6:801:26 | SysAllocStringByteLen | (z_streamp,unsigned int) | | inflate_fast | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (Curl_easy *,unsigned int) | | Curl_ssl_supports | 1 | @@ -12445,11 +17072,17 @@ signatureMatches | taint.cpp:802:6:802:22 | SysAllocStringLen | (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (char *,unsigned int) | | __nis_default_access | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (char *,unsigned int) | | utf8_fromunicode | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (char *,unsigned int) | | uv_buf_init | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (const uv__io_t *,unsigned int) | | uv__io_active | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (const uv_buf_t[],unsigned int) | | uv__count_bufs | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (const_nis_name,unsigned int) | | __create_ib_request | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (grouping_iterator *,unsigned int) | | __grouping_iterator_init_none | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (gzFile,unsigned int) | | gzbuffer | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (res_state,unsigned int) | | __res_get_nsaddr | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (unsigned int,unsigned int) | | __gnu_dev_makedev | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (unsigned int,unsigned int) | | gnu_dev_makedev | 1 | | taint.cpp:802:6:802:22 | SysAllocStringLen | (z_streamp,unsigned int) | | inflate_fast | 1 | | taint.cpp:815:7:815:12 | strchr | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:815:7:815:12 | strchr | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | @@ -12514,6 +17147,19 @@ signatureMatches | taint.cpp:815:7:815:12 | strchr | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | taint.cpp:815:7:815:12 | strchr | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | taint.cpp:815:7:815:12 | strchr | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_default_pbackfail | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_fwide | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_init | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_init_internal | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_new_file_attach | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_new_file_overflow | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_old_init | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_sputbackc | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_str_overflow | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | _IO_str_pbackfail | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| taint.cpp:815:7:815:12 | strchr | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| taint.cpp:815:7:815:12 | strchr | (FTS *,int) | | fts_children | 1 | | taint.cpp:815:7:815:12 | strchr | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | taint.cpp:815:7:815:12 | strchr | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | taint.cpp:815:7:815:12 | strchr | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -12641,7 +17287,15 @@ signatureMatches | taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:815:7:815:12 | strchr | (_Float128,int) | | __ldexpf128 | 1 | +| taint.cpp:815:7:815:12 | strchr | (_Float128,int) | | __scalbnf128 | 1 | +| taint.cpp:815:7:815:12 | strchr | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| taint.cpp:815:7:815:12 | strchr | (__sigset_t *,int) | | __sigdelset_compat | 1 | | taint.cpp:815:7:815:12 | strchr | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:815:7:815:12 | strchr | (addrinfo *,int) | | support_format_addrinfo | 1 | +| taint.cpp:815:7:815:12 | strchr | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| taint.cpp:815:7:815:12 | strchr | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| taint.cpp:815:7:815:12 | strchr | (char **,int) | | addrsort | 1 | | taint.cpp:815:7:815:12 | strchr | (char *,int) | | Curl_str2addr | 1 | | taint.cpp:815:7:815:12 | strchr | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:815:7:815:12 | strchr | (char,int) | CStringT | CStringT | 1 | @@ -12711,22 +17365,41 @@ signatureMatches | taint.cpp:815:7:815:12 | strchr | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | taint.cpp:815:7:815:12 | strchr | (const char *,int) | | RSA_meth_new | 0 | | taint.cpp:815:7:815:12 | strchr | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | ftok | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | ftok | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | gethostbyname2 | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | gethostbyname2 | 1 | | taint.cpp:815:7:815:12 | strchr | (const char *,int) | | parse_yesno | 0 | | taint.cpp:815:7:815:12 | strchr | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | res_gethostbyname2 | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | res_gethostbyname2 | 1 | | taint.cpp:815:7:815:12 | strchr | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | taint.cpp:815:7:815:12 | strchr | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | taint.cpp:815:7:815:12 | strchr | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | taint.cpp:815:7:815:12 | strchr | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | taint.cpp:815:7:815:12 | strchr | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:815:7:815:12 | strchr | (const void *,int) | | inet6_rth_getaddr | 1 | +| taint.cpp:815:7:815:12 | strchr | (double,int) | | __ldexp | 1 | +| taint.cpp:815:7:815:12 | strchr | (double,int) | | __scalbn | 1 | +| taint.cpp:815:7:815:12 | strchr | (double[],int) | | getloadavg | 1 | | taint.cpp:815:7:815:12 | strchr | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| taint.cpp:815:7:815:12 | strchr | (fexcept_t *,int) | | fegetexceptflag | 1 | +| taint.cpp:815:7:815:12 | strchr | (float,int) | | __ldexpf | 1 | +| taint.cpp:815:7:815:12 | strchr | (float,int) | | __scalbnf | 1 | | taint.cpp:815:7:815:12 | strchr | (gzFile,int) | | gzflush | 1 | | taint.cpp:815:7:815:12 | strchr | (gzFile,int) | | gzputc | 1 | | taint.cpp:815:7:815:12 | strchr | (int *,int) | | X509_PURPOSE_set | 1 | | taint.cpp:815:7:815:12 | strchr | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:815:7:815:12 | strchr | (int *,int) | | __lll_unlock_elision | 1 | | taint.cpp:815:7:815:12 | strchr | (int,int) | | BN_security_bits | 1 | | taint.cpp:815:7:815:12 | strchr | (int,int) | | EVP_MD_meth_new | 1 | | taint.cpp:815:7:815:12 | strchr | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | __isctype | 1 | | taint.cpp:815:7:815:12 | strchr | (int,int) | | acttab_alloc | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | div | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | inet6_rth_space | 1 | +| taint.cpp:815:7:815:12 | strchr | (long double,int) | | __ldexpl | 1 | +| taint.cpp:815:7:815:12 | strchr | (netlink_handle *,int) | | __netlink_request | 1 | | taint.cpp:815:7:815:12 | strchr | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | taint.cpp:815:7:815:12 | strchr | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | taint.cpp:815:7:815:12 | strchr | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -12734,8 +17407,21 @@ signatureMatches | taint.cpp:815:7:815:12 | strchr | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | taint.cpp:815:7:815:12 | strchr | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | taint.cpp:815:7:815:12 | strchr | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| taint.cpp:815:7:815:12 | strchr | (ns_msg,int) | | ns_msg_getflag | 1 | +| taint.cpp:815:7:815:12 | strchr | (obstack *,int) | | _obstack_newchunk | 1 | +| taint.cpp:815:7:815:12 | strchr | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| taint.cpp:815:7:815:12 | strchr | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| taint.cpp:815:7:815:12 | strchr | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | taint.cpp:815:7:815:12 | strchr | (rule *,int) | | Configlist_add | 1 | | taint.cpp:815:7:815:12 | strchr | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:815:7:815:12 | strchr | (sigset_t *,int) | | sigaddset | 1 | +| taint.cpp:815:7:815:12 | strchr | (sigset_t *,int) | | sigdelset | 1 | | taint.cpp:815:7:815:12 | strchr | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | taint.cpp:815:7:815:12 | strchr | (sqlite3 *,int) | | sqlite3_db_name | 1 | | taint.cpp:815:7:815:12 | strchr | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -12763,6 +17449,8 @@ signatureMatches | taint.cpp:815:7:815:12 | strchr | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | taint.cpp:815:7:815:12 | strchr | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | taint.cpp:815:7:815:12 | strchr | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (timespec *,int) | | __timespec_get | 1 | +| taint.cpp:815:7:815:12 | strchr | (timespec *,int) | | __timespec_getres | 1 | | taint.cpp:815:7:815:12 | strchr | (uint16_t,int) | | tls1_group_id2nid | 1 | | taint.cpp:815:7:815:12 | strchr | (unsigned char *,int) | | RAND_bytes | 1 | | taint.cpp:815:7:815:12 | strchr | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -12771,10 +17459,12 @@ signatureMatches | taint.cpp:815:7:815:12 | strchr | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | taint.cpp:815:7:815:12 | strchr | (void *,int) | | DSO_dsobyaddr | 1 | | taint.cpp:815:7:815:12 | strchr | (void *,int) | | sqlite3_realloc | 1 | +| taint.cpp:815:7:815:12 | strchr | (void *const *,int) | | __backtrace_symbols | 1 | | taint.cpp:815:7:815:12 | strchr | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_ptr | 1 | | taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_string_ptr | 1 | | taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (const X509_NAME *,const char **) | | OCSP_url_svcloc_new | 1 | +| taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (int,const char **) | | _nl_load_locale_from_archive | 1 | | taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (sqlite3_intck *,const char **) | | sqlite3_intck_error | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | @@ -12806,6 +17496,7 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (LIBSSH2_AGENT *,const char *) | | libssh2_agent_set_identity_path | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (LIBSSH2_SESSION *,const char *) | | libssh2_banner_set | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (LIBSSH2_SESSION *,const char *) | | libssh2_session_banner_set | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (Lmid_t,const char *) | | _dl_lookup_map | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | @@ -12862,7 +17553,12 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (char **,const char *) | | Curl_setstropt | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (char **,const char *) | | __strsep | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (char *,const char *) | | xstrdup | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char **,const char *) | | uv__utf8_decode1 | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | Configcmp | 0 | @@ -12873,14 +17569,52 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | DES_crypt | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __bind_textdomain_codeset | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __bind_textdomain_codeset | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __bindtextdomain | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __bindtextdomain | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __dgettext | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __dgettext | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __gconv_compare_alias | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __gconv_compare_alias | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strcasestr | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strcasestr | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strcspn_generic | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strcspn_generic | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strcspn_sse42 | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strcspn_sse42 | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strpbrk_generic | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strpbrk_generic | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strpbrk_sse42 | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strpbrk_sse42 | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strspn_generic | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strspn_generic | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strspn_sse42 | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strspn_sse42 | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strstr_generic | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strstr_generic | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strverscmp | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | __strverscmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | _dl_cache_libcmp | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | _dl_cache_libcmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | advance | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | advance | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | c_strcasecmp | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | c_strcasecmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | charmap_aliases | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | charmap_aliases | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | charmap_open | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | charmap_open | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | chroot_canon | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | chroot_canon | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | get_passwd | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | get_passwd | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | gzopen | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | gzopen | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | gzopen64 | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | gzopen64 | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | iconv_open | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | iconv_open | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | openssl_fopen | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | openssl_fopen | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | ossl_pem_check_suffix | 0 | @@ -12891,6 +17625,14 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_stricmp | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | step | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | step | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | tempnam | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | tempnam | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | xfopen | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | xfopen | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const mntent *,const char *) | | __hasmntopt | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const nis_error,const char *) | | nis_sperror | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (curl_mimepart *,const char *) | | curl_mime_filedata | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (curl_off_t *,const char *) | | str2offset | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (curl_pushheaders *,const char *) | | curl_pushheader_byname | 1 | @@ -12900,16 +17642,22 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (dynbuf *,const char *) | | curlx_dyn_add | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (dynhds *,const char *) | | Curl_dynhds_cget | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (dynhds *,const char *) | | Curl_dynhds_h1_cadd_line | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (gzFile,const char *) | | gzputs | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | _IO_new_fdopen | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | gzdopen | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | setlocale | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | xsetlocale | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (long *,const char *) | | secs2ms | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (long *,const char *) | | str2num | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (long *,const char *) | | str2unum | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (nss_module *,const char *) | | __nss_module_get_function | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (size_t *,const char *) | | next_protos_parse | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (slist_wc **,const char *) | | easysrc_add | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (slist_wc *,const char *) | | slist_wc_append | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | @@ -12917,10 +17665,451 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (stringtable *,const char *) | | stringtable_add | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (unsigned long *,const char *) | | set_cert_ex | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (unsigned long *,const char *) | | set_name_ex | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (uv_pipe_t *,const char *) | | uv_pipe_bind | 1 | +| thread.cpp:4:6:4:9 | sink | (int) | | ASN1_STRING_type_new | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | ASN1_tag2bit | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | ASN1_tag2str | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | EVP_PKEY_asn1_get0 | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | Jim_ReturnCode | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | Jim_SignalId | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | OBJ_nid2ln | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | OBJ_nid2obj | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | OBJ_nid2sn | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | OSSL_STORE_INFO_type_string | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | OSSL_trace_get_category_name | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | PKCS12_init | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | Symbol_Nth | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | X509_PURPOSE_get0 | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | X509_PURPOSE_get_by_id | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | X509_TRUST_get0 | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __btowc | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __current_locale_name | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __fdopendir | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __get_errlist | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __get_errname | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __math_invalid_i | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __math_invalidf_i | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __p_class | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __p_rcode | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __p_type | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __pkey_get | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __sigdescr_np | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | __strerrordesc_np | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | _tolower | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | _toupper | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | btowc | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | c_tolower | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | c_toupper | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | curlx_sitouz | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | evp_pkey_type2name | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | inet6_option_space | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isalnum | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isalpha | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isblank | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | iscntrl | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isdigit | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isgraph | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | islower | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isprint | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | ispunct | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isspace | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isupper | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | isxdigit | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | ossl_tolower | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | ossl_toupper | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | sigabbrev_np | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | sqlite3_compileoption_get | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | sqlite3_errstr | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | strerrorname_np | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | support_report_failure | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | svcudp_create | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | tls13_alert_code | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | toascii | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | tolower | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | toupper | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | uabs | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | uv__accept | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | uv_err_name | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | uv_get_osfhandle | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | uv_strerror | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | uv_translate_sys_error | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | | zError | 0 | +| thread.cpp:4:6:4:9 | sink | (int) | __pthread_cleanup_class | __setdoit | 0 | +| thread.cpp:18:6:18:22 | thread_function_3 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | BN_clear_bit | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | BN_mask_bits | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | BN_set_bit | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | BN_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | bn_expand2 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | bn_wexpand | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | BIO_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | BIO_find_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | BIO_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | BIO_set_init | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | BIO_set_retry_reason | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | BIO_set_shutdown | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (BIO *,int) | | TXT_DB_read | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (CURL *,int) | | curl_easy_pause | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (Curl_easy *,int) | | Curl_conn_get_socket | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (DH *,int) | | DH_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (DH *,int) | | DH_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (DSA *,int) | | DSA_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (DSA *,int) | | DSA_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_default_pbackfail | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_fwide | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_init | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_init_internal | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_new_file_attach | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_new_file_overflow | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_old_init | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_sputbackc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_str_overflow | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | _IO_str_pbackfail | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (FTS *,int) | | fts_children | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_handle_extended_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_handle_extended_data2 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_set_blocking | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_SESSION *,int) | | _libssh2_session_set_blocking | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_SESSION *,int) | | libssh2_hostkey_hash | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_SESSION *,int) | | libssh2_session_methods | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_SESSION *,int) | | libssh2_session_set_blocking | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LIBSSH2_SESSION *,int) | | libssh2_session_startup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA *,int) | | RSA_clear_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA *,int) | | RSA_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_key_update | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_purpose | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_read_ahead | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_security_level | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_shutdown | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_trust | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL *,int) | | SSL_set_verify_depth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_CTX *,int) | | ssl_md | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509 *,int) | | X509_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509 *,int) | | X509_self_signed | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (_Float128,int) | | __ldexpf128 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (_Float128,int) | | __scalbnf128 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (__sigset_t *,int) | | __sigdelset_compat | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (acttab *,int) | | acttab_insert | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (addrinfo *,int) | | support_format_addrinfo | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (char **,int) | | addrsort | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (char *,int) | | Curl_str2addr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (char *,int) | | PEM_proc_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (char,int) | CStringT | CStringT | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (connectdata *,int) | | Curl_conn_is_ssl | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const BIGNUM *,int) | | BN_get_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const BIO *,int) | | BIO_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const BIO *,int) | | BIO_test_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const DH *,int) | | DH_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const DH *,int) | | DH_test_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const DH *,int) | | ossl_dh_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const DSA *,int) | | DSA_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const DSA *,int) | | DSA_test_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const DSA *,int) | | ossl_dsa_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const RSA *,int) | | RSA_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const RSA *,int) | | RSA_test_flags | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const RSA *,int) | | ossl_rsa_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const SSL *,int) | | SSL_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const UI *,int) | | UI_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509 *,int) | | X509_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509 *,int) | | X509_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const XCHAR *,int) | CStringT | CStringT | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const YCHAR *,int) | CStringT | CStringT | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | DH_meth_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | DSA_meth_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | Jim_StrDupLen | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | RSA_meth_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | ftok | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | gethostbyname2 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | parse_yesno | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const char *,int) | | res_gethostbyname2 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (const void *,int) | | inet6_rth_getaddr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (double,int) | | __ldexp | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (double,int) | | __scalbn | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (double[],int) | | getloadavg | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (fexcept_t *,int) | | fegetexceptflag | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (float,int) | | __ldexpf | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (float,int) | | __scalbnf | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (gzFile,int) | | gzflush | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (gzFile,int) | | gzputc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int *,int) | | X509_PURPOSE_set | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int *,int) | | X509_TRUST_set | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int *,int) | | __lll_unlock_elision | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | BN_security_bits | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | EVP_MD_meth_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | EVP_PKEY_meth_new | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | __isctype | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | acttab_alloc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | div | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (int,int) | | inet6_rth_space | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (long double,int) | | __ldexpl | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (netlink_handle *,int) | | __netlink_request | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_no_http_messaging | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (ns_msg,int) | | ns_msg_getflag | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (obstack *,int) | | _obstack_newchunk | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (rule *,int) | | Configlist_add | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (rule *,int) | | Configlist_addbasis | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sigset_t *,int) | | sigaddset | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sigset_t *,int) | | sigdelset | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (timespec *,int) | | __timespec_get | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (timespec *,int) | | __timespec_getres | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (uint16_t,int) | | tls1_group_id2nid | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (unsigned char *,int) | | RAND_bytes | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (void *,int) | | DSO_dsobyaddr | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (void *,int) | | sqlite3_realloc | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (void *const *,int) | | __backtrace_symbols | 1 | +| thread.cpp:18:6:18:22 | thread_function_3 | (wchar_t,int) | CStringT | CStringT | 1 | | vector.cpp:13:6:13:9 | sink | (int) | | ASN1_STRING_type_new | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ASN1_tag2bit | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ASN1_tag2str | 0 | @@ -12939,22 +18128,60 @@ signatureMatches | vector.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get0 | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __btowc | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __current_locale_name | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __fdopendir | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __get_errlist | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __get_errname | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __math_invalid_i | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __math_invalidf_i | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __p_class | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __p_rcode | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __p_type | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __pkey_get | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __sigdescr_np | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | __strerrordesc_np | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | _tolower | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | _toupper | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | btowc | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | c_tolower | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | c_toupper | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | curlx_sitouz | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | inet6_option_space | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isalnum | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isalpha | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isblank | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | iscntrl | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isdigit | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isgraph | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | islower | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isprint | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | ispunct | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isspace | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isupper | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | isxdigit | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ossl_tolower | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ossl_toupper | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | sigabbrev_np | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | sqlite3_errstr | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | strerrorname_np | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | support_report_failure | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | svcudp_create | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | tls13_alert_code | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | toascii | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | tolower | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | toupper | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | uabs | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | uv__accept | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | uv_err_name | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | uv_get_osfhandle | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | uv_strerror | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | uv_translate_sys_error | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | zError | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | __pthread_cleanup_class | __setdoit | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_STRING_type_new | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_tag2bit | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_tag2str | 0 | @@ -12973,22 +18200,60 @@ signatureMatches | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_TRUST_get0 | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_TRUST_get_by_id | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __btowc | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __current_locale_name | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __fdopendir | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __get_errlist | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __get_errname | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __math_invalid_i | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __math_invalidf_i | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __p_class | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __p_rcode | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __p_type | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __pkey_get | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __sigdescr_np | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | __strerrordesc_np | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | _tolower | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | _toupper | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | btowc | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | c_tolower | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | c_toupper | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | curlx_sitouz | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | inet6_option_space | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isalnum | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isalpha | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isblank | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | iscntrl | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isdigit | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isgraph | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | islower | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isprint | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ispunct | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isspace | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isupper | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | isxdigit | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_tolower | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_toupper | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sigabbrev_np | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sqlite3_errstr | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | strerrorname_np | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | support_report_failure | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | svcudp_create | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | tls13_alert_code | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | toascii | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | tolower | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | toupper | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | uabs | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | uv__accept | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | uv_err_name | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | uv_get_osfhandle | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | uv_strerror | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | uv_translate_sys_error | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | zError | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | __pthread_cleanup_class | __setdoit | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_STRING_type_new | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_tag2bit | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_tag2str | 0 | @@ -13007,22 +18272,61 @@ signatureMatches | vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_TRUST_get0 | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_TRUST_get_by_id | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __btowc | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __current_locale_name | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __fdopendir | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __get_errlist | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __get_errname | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __math_invalid_i | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __math_invalidf_i | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __p_class | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __p_rcode | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __p_type | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __pkey_get | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __sigdescr_np | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | __strerrordesc_np | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | _tolower | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | _toupper | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | btowc | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | c_tolower | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | c_toupper | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | curlx_sitouz | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | inet6_option_space | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isalnum | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isalpha | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isblank | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | iscntrl | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isdigit | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isgraph | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | islower | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isprint | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ispunct | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isspace | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isupper | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | isxdigit | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_tolower | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_toupper | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | sigabbrev_np | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | sqlite3_errstr | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | strerrorname_np | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | support_report_failure | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | svcudp_create | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | tls13_alert_code | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | toascii | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | tolower | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | toupper | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | uabs | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | uv__accept | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | uv_err_name | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | uv_get_osfhandle | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | uv_strerror | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | uv_translate_sys_error | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | zError | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | __pthread_cleanup_class | __setdoit | 0 | +| vector.cpp:279:6:279:9 | sink | (int *) | | rresvport | 0 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -13086,6 +18390,19 @@ signatureMatches | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_default_pbackfail | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_fwide | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_init | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_init_internal | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_new_file_attach | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_new_file_overflow | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_old_init | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_sputbackc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_str_overflow | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | _IO_str_pbackfail | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FTS *,int) | | fts_children | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_extended_data | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (LIBSSH2_CHANNEL *,int) | | _libssh2_channel_flush | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (LIBSSH2_CHANNEL *,int) | | libssh2_channel_flush_ex | 1 | @@ -13213,7 +18530,15 @@ signatureMatches | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (_Float128,int) | | __ldexpf128 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (_Float128,int) | | __scalbnf128 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (__sigset_t *,int) | | __sigaddset_compat | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (__sigset_t *,int) | | __sigdelset_compat | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (acttab *,int) | | acttab_insert | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (addrinfo *,int) | | support_format_addrinfo | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (aiocb_union *,int) | | __aio_enqueue_request | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (char **,int) | | addrsort | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (char *,int) | | Curl_str2addr | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (char *,int) | | PEM_proc_type | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (char,int) | CStringT | CStringT | 1 | @@ -13278,21 +18603,37 @@ signatureMatches | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | Jim_StrDupLen | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | RSA_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | ftok | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | gethostbyname2 | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | parse_yesno | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | res_gethostbyname2 | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const void *,int) | | inet6_rth_getaddr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (double,int) | | __ldexp | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (double,int) | | __scalbn | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (double[],int) | | getloadavg | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (dynhds *,int) | | Curl_dynhds_set_opts | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (fexcept_t *,int) | | fegetexceptflag | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (float,int) | | __ldexpf | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (float,int) | | __scalbnf | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (gzFile,int) | | gzflush | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (gzFile,int) | | gzputc | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int *,int) | | X509_PURPOSE_set | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int *,int) | | X509_TRUST_set | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int *,int) | | __lll_unlock_elision | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | BN_security_bits | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | EVP_MD_meth_new | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | EVP_PKEY_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | __isctype | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | acttab_alloc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | div | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | inet6_rth_space | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (long double,int) | | __ldexpl | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (netlink_handle *,int) | | __netlink_request | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_ping_ack | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (nghttp2_option *,int) | | nghttp2_option_set_no_auto_window_update | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (nghttp2_option *,int) | | nghttp2_option_set_no_closed_streams | 1 | @@ -13300,8 +18641,21 @@ signatureMatches | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (nghttp2_option *,int) | | nghttp2_option_set_no_recv_client_magic | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (nghttp2_option *,int) | | nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (nghttp2_option *,int) | | nghttp2_option_set_server_fallback_rfc7540_priorities | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ns_msg,int) | | ns_msg_getflag | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (obstack *,int) | | _obstack_newchunk | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (rule *,int) | | Configlist_add | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (rule *,int) | | Configlist_addbasis | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sigset_t *,int) | | sigaddset | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sigset_t *,int) | | sigdelset | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3 *,int) | | sqlite3_db_name | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | @@ -13329,6 +18683,8 @@ signatureMatches | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (timespec *,int) | | __timespec_get | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (timespec *,int) | | __timespec_getres | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (uint16_t,int) | | tls1_group_id2nid | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (unsigned char *,int) | | RAND_bytes | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (unsigned char *,int) | | RAND_priv_bytes | 1 | @@ -13337,6 +18693,7 @@ signatureMatches | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (uv_env_item_t *,int) | | uv_os_free_environ | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (void *,int) | | DSO_dsobyaddr | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (void *,int) | | sqlite3_realloc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (void *const *,int) | | __backtrace_symbols | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (wchar_t,int) | CStringT | CStringT | 1 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ASN1_STRING_type_new | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ASN1_tag2bit | 0 | @@ -13356,26 +18713,77 @@ signatureMatches | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_TRUST_get0 | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_TRUST_get_by_id | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __btowc | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __current_locale_name | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __fdopendir | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __get_errlist | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __get_errname | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __math_invalid_i | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __math_invalidf_i | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __p_class | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __p_rcode | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __p_type | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __pkey_get | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __sigdescr_np | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | __strerrordesc_np | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | _tolower | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | _toupper | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | btowc | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | c_tolower | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | c_toupper | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | curlx_sitouz | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | inet6_option_space | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isalnum | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isalpha | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isblank | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | iscntrl | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isdigit | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isgraph | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | islower | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isprint | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ispunct | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isspace | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isupper | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | isxdigit | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_tolower | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_toupper | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sigabbrev_np | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sqlite3_errstr | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | strerrorname_np | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | support_report_failure | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | svcudp_create | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | tls13_alert_code | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | toascii | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | tolower | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | toupper | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | uabs | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | uv__accept | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | uv_err_name | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | uv_get_osfhandle | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | uv_strerror | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | uv_translate_sys_error | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | zError | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | __pthread_cleanup_class | __setdoit | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | SRP_VBASE_new | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | _IO_gets | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | __mktemp | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | __nis_default_group | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | __nis_default_owner | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | __nis_default_ttl | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | __xpg_basename | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | ctermid | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | cuserid | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | defossilize | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | des_setparity | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | dirname | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | getwd | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | make_uppercase | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | mkdtemp | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | next_item | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | strfry | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | CStringT | CStringT | 0 | | vector.cpp:454:7:454:12 | memcpy | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | | vector.cpp:454:7:454:12 | memcpy | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | @@ -13419,6 +18827,23 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | | vector.cpp:454:7:454:12 | memcpy | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | | vector.cpp:454:7:454:12 | memcpy | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const char *,size_t) | | _IO_new_do_write | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_default_xsputn | 1 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_default_xsputn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 1 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 1 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 1 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 1 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 1 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,void *,size_t) | | _IO_default_xsgetn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,void *,size_t) | | _IO_file_xsgetn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 2 | | vector.cpp:454:7:454:12 | memcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | | vector.cpp:454:7:454:12 | memcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | | vector.cpp:454:7:454:12 | memcpy | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | @@ -13512,6 +18937,7 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | | vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 1 | | vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| vector.cpp:454:7:454:12 | memcpy | (Strtab *,const char *,size_t) | | strtabadd | 2 | | vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 1 | | vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | | vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 1 | @@ -13528,6 +18954,15 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | | vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | | vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| vector.cpp:454:7:454:12 | memcpy | (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 2 | +| vector.cpp:454:7:454:12 | memcpy | (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 2 | +| vector.cpp:454:7:454:12 | memcpy | (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 2 | +| vector.cpp:454:7:454:12 | memcpy | (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 2 | +| vector.cpp:454:7:454:12 | memcpy | (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 2 | +| vector.cpp:454:7:454:12 | memcpy | (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 1 | +| vector.cpp:454:7:454:12 | memcpy | (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 2 | +| vector.cpp:454:7:454:12 | memcpy | (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 2 | +| vector.cpp:454:7:454:12 | memcpy | (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 2 | | vector.cpp:454:7:454:12 | memcpy | (bufc_pool *,size_t,size_t) | | Curl_bufcp_init | 2 | | vector.cpp:454:7:454:12 | memcpy | (bufq *,size_t,size_t) | | Curl_bufq_init | 2 | | vector.cpp:454:7:454:12 | memcpy | (bufref *,const void *,size_t) | | Curl_bufref_memdup | 1 | @@ -13538,6 +18973,9 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | | vector.cpp:454:7:454:12 | memcpy | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | | vector.cpp:454:7:454:12 | memcpy | (char *,const char *,size_t) | | uv__strscpy | 2 | +| vector.cpp:454:7:454:12 | memcpy | (char *,size_t,size_t) | | __getcwd_chk | 2 | +| vector.cpp:454:7:454:12 | memcpy | (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 2 | +| vector.cpp:454:7:454:12 | memcpy | (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 2 | | vector.cpp:454:7:454:12 | memcpy | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | | vector.cpp:454:7:454:12 | memcpy | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | | vector.cpp:454:7:454:12 | memcpy | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | @@ -13551,20 +18989,33 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,char *,size_t) | | __libc_ns_makecanon | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,char *,size_t) | | __realpath_chk | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,char *,size_t) | | getpass_r | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,char *,size_t) | | ns_makecanon | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,const char *,size_t) | | c_strncasecmp | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,const char *,unsigned long) | | __ngettext | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | | vector.cpp:454:7:454:12 | memcpy | (const char *,void *,size_t) | | uv__random_readpath | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const charmap_t *,const char *,size_t) | | charmap_find_value | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 2 | | vector.cpp:454:7:454:12 | memcpy | (const sockaddr *,char *,size_t) | | uv_ip_name | 2 | | vector.cpp:454:7:454:12 | memcpy | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 2 | | vector.cpp:454:7:454:12 | memcpy | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 2 | | vector.cpp:454:7:454:12 | memcpy | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | | vector.cpp:454:7:454:12 | memcpy | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 1 | | vector.cpp:454:7:454:12 | memcpy | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const void *,size_t,size_t) | | support_blob_repeat_allocate | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const_nis_name,char *,size_t) | | nis_domain_of_r | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const_nis_name,char *,size_t) | | nis_leaf_of_r | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const_nis_name,char *,size_t) | | nis_name_of_r | 2 | | vector.cpp:454:7:454:12 | memcpy | (curl_mimepart *,const char *,size_t) | | curl_mime_data | 2 | | vector.cpp:454:7:454:12 | memcpy | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | | vector.cpp:454:7:454:12 | memcpy | (dynbuf *,const void *,size_t) | | Curl_dyn_addn | 1 | @@ -13577,9 +19028,17 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (int *,const char *,size_t) | | Curl_http_decode_status | 2 | | vector.cpp:454:7:454:12 | memcpy | (int *,int *,size_t) | | EVP_PBE_get | 2 | | vector.cpp:454:7:454:12 | memcpy | (int,char *,size_t) | | Curl_strerror | 2 | +| vector.cpp:454:7:454:12 | memcpy | (int,char *,size_t) | | __strerror_r | 2 | +| vector.cpp:454:7:454:12 | memcpy | (int,char *,size_t) | | __ttyname_r | 2 | | vector.cpp:454:7:454:12 | memcpy | (int,char *,size_t) | | uv_err_name_r | 2 | | vector.cpp:454:7:454:12 | memcpy | (int,char *,size_t) | | uv_strerror_r | 2 | +| vector.cpp:454:7:454:12 | memcpy | (int,const void *,size_t) | | _nl_intern_locale_data | 1 | +| vector.cpp:454:7:454:12 | memcpy | (int,const void *,size_t) | | _nl_intern_locale_data | 2 | +| vector.cpp:454:7:454:12 | memcpy | (int,const void *,size_t) | | writeall | 1 | +| vector.cpp:454:7:454:12 | memcpy | (int,const void *,size_t) | | writeall | 2 | | vector.cpp:454:7:454:12 | memcpy | (int,int,size_t) | | BrotliEncoderEstimatePeakMemoryUsage | 2 | +| vector.cpp:454:7:454:12 | memcpy | (int,void *,size_t) | | __readall | 2 | +| vector.cpp:454:7:454:12 | memcpy | (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 2 | | vector.cpp:454:7:454:12 | memcpy | (nghttp2_buf *,uint8_t *,size_t) | | nghttp2_buf_wrap_init | 2 | | vector.cpp:454:7:454:12 | memcpy | (nghttp2_extension *,nghttp2_origin_entry *,size_t) | | nghttp2_frame_origin_init | 2 | | vector.cpp:454:7:454:12 | memcpy | (nghttp2_extpri *,const uint8_t *,size_t) | | nghttp2_extpri_parse_priority | 2 | @@ -13590,6 +19049,9 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (nghttp2_session *,int32_t,size_t) | | nghttp2_session_consume | 2 | | vector.cpp:454:7:454:12 | memcpy | (nghttp2_session *,nghttp2_settings_entry *,size_t) | | nghttp2_session_update_local_settings | 2 | | vector.cpp:454:7:454:12 | memcpy | (nghttp2_settings *,nghttp2_settings_entry *,size_t) | | nghttp2_frame_unpack_settings_payload | 2 | +| vector.cpp:454:7:454:12 | memcpy | (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 2 | +| vector.cpp:454:7:454:12 | memcpy | (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 2 | +| vector.cpp:454:7:454:12 | memcpy | (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 2 | | vector.cpp:454:7:454:12 | memcpy | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 2 | | vector.cpp:454:7:454:12 | memcpy | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | | vector.cpp:454:7:454:12 | memcpy | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | @@ -13603,11 +19065,18 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | vector.cpp:454:7:454:12 | memcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | | vector.cpp:454:7:454:12 | memcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| vector.cpp:454:7:454:12 | memcpy | (unsigned int,char *,size_t) | | __initstate | 2 | | vector.cpp:454:7:454:12 | memcpy | (uv_thread_t *,char *,size_t) | | uv__thread_getname | 2 | | vector.cpp:454:7:454:12 | memcpy | (uv_thread_t *,char *,size_t) | | uv_thread_getaffinity | 2 | | vector.cpp:454:7:454:12 | memcpy | (uv_thread_t *,char *,size_t) | | uv_thread_getname | 2 | +| vector.cpp:454:7:454:12 | memcpy | (void **,size_t,size_t) | | __posix_memalign | 2 | | vector.cpp:454:7:454:12 | memcpy | (void *,size_t,size_t) | | Curl_hash_str | 2 | +| vector.cpp:454:7:454:12 | memcpy | (void *,size_t,size_t) | | __libc_reallocarray | 2 | | vector.cpp:454:7:454:12 | memcpy | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| vector.cpp:454:7:454:12 | memcpy | (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 2 | +| vector.cpp:454:7:454:12 | memcpy | (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 2 | +| vector.cpp:454:7:454:12 | memcpy | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 2 | +| vector.cpp:454:7:454:12 | memcpy | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 2 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (BrotliDecoderState *,BrotliDecoderStateInternal *,brotli_decoder_metadata_start_func,brotli_decoder_metadata_chunk_func,void *) | | BrotliDecoderSetMetadataCallbacks | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 4 | @@ -13617,6 +19086,7 @@ signatureMatches | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 4 | | zmq.cpp:14:5:14:21 | zmq_msg_init_data | (nghttp2_extension *,uint8_t,uint8_t,int32_t,void *) | | nghttp2_frame_extension_init | 4 | @@ -13658,6 +19128,17 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const char *,size_t) | | _IO_new_do_write | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const void *,size_t) | | _IO_default_xsputn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,void *,size_t) | | _IO_default_xsgetn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,void *,size_t) | | _IO_file_xsgetn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | @@ -13733,6 +19214,7 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (Strtab *,const char *,size_t) | | strtabadd | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | @@ -13746,6 +19228,15 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (bufc_pool *,size_t,size_t) | | Curl_bufcp_init | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (bufq *,size_t,size_t) | | Curl_bufq_init | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (bufref *,const void *,size_t) | | Curl_bufref_memdup | 2 | @@ -13755,6 +19246,9 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (char *,const char *,size_t) | | uv__strscpy | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (char *,size_t,size_t) | | __getcwd_chk | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | @@ -13771,23 +19265,43 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | __libc_ns_makecanon | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | __libc_ns_makecanon | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | __realpath_chk | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | __realpath_chk | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | getpass_r | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | getpass_r | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | ns_makecanon | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | ns_makecanon | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,const char *,size_t) | | c_strncasecmp | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,const char *,unsigned long) | | __ngettext | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const char *,void *,size_t) | | uv__random_readpath | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const charmap_t *,const char *,size_t) | | charmap_find_value | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const sockaddr *,char *,size_t) | | uv_ip_name | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (const sockaddr *,char *,size_t) | | uv_ip_name | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const void *,size_t,size_t) | | support_blob_repeat_allocate | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const_nis_name,char *,size_t) | | nis_domain_of_r | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const_nis_name,char *,size_t) | | nis_domain_of_r | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const_nis_name,char *,size_t) | | nis_leaf_of_r | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const_nis_name,char *,size_t) | | nis_leaf_of_r | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const_nis_name,char *,size_t) | | nis_name_of_r | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const_nis_name,char *,size_t) | | nis_name_of_r | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (curl_mimepart *,const char *,size_t) | | curl_mime_data | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (dynbuf *,const void *,size_t) | | Curl_dyn_addn | 2 | @@ -13799,11 +19313,19 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (int *,int *,size_t) | | EVP_PBE_get | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | Curl_strerror | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | Curl_strerror | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | __strerror_r | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | __strerror_r | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | __ttyname_r | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | __ttyname_r | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | uv_err_name_r | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | uv_err_name_r | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | uv_strerror_r | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (int,char *,size_t) | | uv_strerror_r | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,const void *,size_t) | | _nl_intern_locale_data | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,const void *,size_t) | | writeall | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (int,int,size_t) | | BrotliEncoderEstimatePeakMemoryUsage | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (int,void *,size_t) | | __readall | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (nghttp2_buf *,uint8_t *,size_t) | | nghttp2_buf_wrap_init | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (nghttp2_extension *,nghttp2_origin_entry *,size_t) | | nghttp2_frame_origin_init | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (nghttp2_extpri *,const uint8_t *,size_t) | | nghttp2_extpri_parse_priority | 2 | @@ -13814,6 +19336,9 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (nghttp2_session *,int32_t,size_t) | | nghttp2_session_consume | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (nghttp2_session *,nghttp2_settings_entry *,size_t) | | nghttp2_session_update_local_settings | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (nghttp2_settings *,nghttp2_settings_entry *,size_t) | | nghttp2_frame_unpack_settings_payload | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | @@ -13826,14 +19351,22 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (unsigned int,char *,size_t) | | __initstate | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (unsigned int,char *,size_t) | | __initstate | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (uv_thread_t *,char *,size_t) | | uv__thread_getname | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (uv_thread_t *,char *,size_t) | | uv__thread_getname | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (uv_thread_t *,char *,size_t) | | uv_thread_getaffinity | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (uv_thread_t *,char *,size_t) | | uv_thread_getaffinity | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (uv_thread_t *,char *,size_t) | | uv_thread_getname | 1 | | zmq.cpp:17:6:17:13 | test_zmc | (uv_thread_t *,char *,size_t) | | uv_thread_getname | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (void **,size_t,size_t) | | __posix_memalign | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (void *,size_t,size_t) | | Curl_hash_str | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (void *,size_t,size_t) | | __libc_reallocarray | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 2 | getSignatureParameterName | (..(*)(..)) | | ASN1_SCTX_new | 0 | ..(*)(..) | | (..(*)(..)) | | ossl_pqueue_new | 0 | ..(*)(..) | @@ -13845,6 +19378,9 @@ getSignatureParameterName | (..(*)(..),..(*)(..),..(*)(..),void *) | | libssh2_session_init_ex | 1 | ..(*)(..) | | (..(*)(..),..(*)(..),..(*)(..),void *) | | libssh2_session_init_ex | 2 | ..(*)(..) | | (..(*)(..),..(*)(..),..(*)(..),void *) | | libssh2_session_init_ex | 3 | void * | +| (..(*)(..),const void *,unsigned int) | | __nis_create_callback | 0 | ..(*)(..) | +| (..(*)(..),const void *,unsigned int) | | __nis_create_callback | 1 | const void * | +| (..(*)(..),const void *,unsigned int) | | __nis_create_callback | 2 | unsigned int | | (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 0 | ..(*)(..) | | (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 1 | d2i_of_void * | | (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 2 | BIO * | @@ -13853,13 +19389,27 @@ getSignatureParameterName | (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 1 | d2i_of_void * | | (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 2 | FILE * | | (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 3 | void ** | +| (..(*)(..),int,char **,..(*)(..),..(*)(..),void *) | | __libc_start_main_impl | 0 | ..(*)(..) | +| (..(*)(..),int,char **,..(*)(..),..(*)(..),void *) | | __libc_start_main_impl | 1 | int | +| (..(*)(..),int,char **,..(*)(..),..(*)(..),void *) | | __libc_start_main_impl | 2 | char ** | +| (..(*)(..),int,char **,..(*)(..),..(*)(..),void *) | | __libc_start_main_impl | 3 | ..(*)(..) | +| (..(*)(..),int,char **,..(*)(..),..(*)(..),void *) | | __libc_start_main_impl | 4 | ..(*)(..) | +| (..(*)(..),int,char **,..(*)(..),..(*)(..),void *) | | __libc_start_main_impl | 5 | void * | | (..(*)(..),void *) | | OSSL_STORE_do_all_loaders | 0 | ..(*)(..) | | (..(*)(..),void *) | | OSSL_STORE_do_all_loaders | 1 | void * | +| (..(*)(..),void *) | | _dlerror_run | 0 | ..(*)(..) | +| (..(*)(..),void *) | | _dlerror_run | 1 | void * | +| (..(*)(..),void *) | __pthread_cleanup_class | __pthread_cleanup_class | 0 | ..(*)(..) | +| (..(*)(..),void *) | __pthread_cleanup_class | __pthread_cleanup_class | 1 | void * | | (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 0 | ..(*)(..) | | (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 1 | void * | | (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 2 | OSSL_STATM * | | (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 3 | const OSSL_CC_METHOD * | | (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 4 | OSSL_CC_DATA * | +| (..(*)(..),void *,void *,exit_function_list **) | | __internal_atexit | 0 | ..(*)(..) | +| (..(*)(..),void *,void *,exit_function_list **) | | __internal_atexit | 1 | void * | +| (..(*)(..),void *,void *,exit_function_list **) | | __internal_atexit | 2 | void * | +| (..(*)(..),void *,void *,exit_function_list **) | | __internal_atexit | 3 | exit_function_list ** | | (ACCESS_DESCRIPTION *) | | ACCESS_DESCRIPTION_free | 0 | ACCESS_DESCRIPTION * | | (ACCESS_DESCRIPTION **,const unsigned char **,long) | | d2i_ACCESS_DESCRIPTION | 0 | ACCESS_DESCRIPTION ** | | (ACCESS_DESCRIPTION **,const unsigned char **,long) | | d2i_ACCESS_DESCRIPTION | 1 | const unsigned char ** | @@ -15800,6 +21350,7 @@ getSignatureParameterName | (CERTIFICATEPOLICIES **,const unsigned char **,long) | | d2i_CERTIFICATEPOLICIES | 0 | CERTIFICATEPOLICIES ** | | (CERTIFICATEPOLICIES **,const unsigned char **,long) | | d2i_CERTIFICATEPOLICIES | 1 | const unsigned char ** | | (CERTIFICATEPOLICIES **,const unsigned char **,long) | | d2i_CERTIFICATEPOLICIES | 2 | long | +| (CHARMAP_DIR *) | | charmap_readdir | 0 | CHARMAP_DIR * | | (CMAC_CTX *) | | CMAC_CTX_get0_cipher_ctx | 0 | CMAC_CTX * | | (CMAC_CTX *,const CMAC_CTX *) | | CMAC_CTX_copy | 0 | CMAC_CTX * | | (CMAC_CTX *,const CMAC_CTX *) | | CMAC_CTX_copy | 1 | const CMAC_CTX * | @@ -16673,6 +22224,18 @@ getSignatureParameterName | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | int | | (DH_METHOD *,void *) | | DH_meth_set0_app_data | 0 | DH_METHOD * | | (DH_METHOD *,void *) | | DH_meth_set0_app_data | 1 | void * | +| (DIR *) | | __dirfd | 0 | DIR * | +| (DIR *) | | __readdir64 | 0 | DIR * | +| (DIR *) | | telldir | 0 | DIR * | +| (DIR *,dirent64 ***,..(*)(..),..(*)(..)) | | __scandir64_tail | 0 | DIR * | +| (DIR *,dirent64 ***,..(*)(..),..(*)(..)) | | __scandir64_tail | 1 | dirent64 *** | +| (DIR *,dirent64 ***,..(*)(..),..(*)(..)) | | __scandir64_tail | 2 | ..(*)(..) | +| (DIR *,dirent64 ***,..(*)(..),..(*)(..)) | | __scandir64_tail | 3 | ..(*)(..) | +| (DIR *,dirent64 *,dirent64 **) | | __readdir64_r | 0 | DIR * | +| (DIR *,dirent64 *,dirent64 **) | | __readdir64_r | 1 | dirent64 * | +| (DIR *,dirent64 *,dirent64 **) | | __readdir64_r | 2 | dirent64 ** | +| (DIR *,long) | | seekdir | 0 | DIR * | +| (DIR *,long) | | seekdir | 1 | long | | (DIST_POINT *) | | DIST_POINT_free | 0 | DIST_POINT * | | (DIST_POINT **,const unsigned char **,long) | | d2i_DIST_POINT | 0 | DIST_POINT ** | | (DIST_POINT **,const unsigned char **,long) | | d2i_DIST_POINT | 1 | const unsigned char ** | @@ -17037,6 +22600,12 @@ getSignatureParameterName | (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 1 | int | | (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 2 | const char * | | (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 3 | int | +| (ENTRY,ACTION) | | hsearch | 0 | ENTRY | +| (ENTRY,ACTION) | | hsearch | 1 | ACTION | +| (ENTRY,ACTION,ENTRY **,hsearch_data *) | | __hsearch_r | 0 | ENTRY | +| (ENTRY,ACTION,ENTRY **,hsearch_data *) | | __hsearch_r | 1 | ACTION | +| (ENTRY,ACTION,ENTRY **,hsearch_data *) | | __hsearch_r | 2 | ENTRY ** | +| (ENTRY,ACTION,ENTRY **,hsearch_data *) | | __hsearch_r | 3 | hsearch_data * | | (ESS_CERT_ID *) | | ESS_CERT_ID_free | 0 | ESS_CERT_ID * | | (ESS_CERT_ID **,const unsigned char **,long) | | d2i_ESS_CERT_ID | 0 | ESS_CERT_ID ** | | (ESS_CERT_ID **,const unsigned char **,long) | | d2i_ESS_CERT_ID | 1 | const unsigned char ** | @@ -18041,6 +23610,31 @@ getSignatureParameterName | (EXTENDED_KEY_USAGE **,const unsigned char **,long) | | d2i_EXTENDED_KEY_USAGE | 0 | EXTENDED_KEY_USAGE ** | | (EXTENDED_KEY_USAGE **,const unsigned char **,long) | | d2i_EXTENDED_KEY_USAGE | 1 | const unsigned char ** | | (EXTENDED_KEY_USAGE **,const unsigned char **,long) | | d2i_EXTENDED_KEY_USAGE | 2 | long | +| (Elf64_Addr,Lmid_t) | | _dl_debug_initialize | 0 | Elf64_Addr | +| (Elf64_Addr,Lmid_t) | | _dl_debug_initialize | 1 | Lmid_t | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 0 | Elf64_Sym * | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 1 | Elf_Sym * | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 2 | unsigned int | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 3 | uintptr_t * | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 4 | uintptr_t * | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 5 | unsigned int * | +| (Elf64_Sym *,Elf_Sym *,unsigned int,uintptr_t *,uintptr_t *,unsigned int *,const char *) | | la_symbind64 | 6 | const char * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 0 | Elf64_Sym * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 1 | unsigned int | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 2 | uintptr_t * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 3 | uintptr_t * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 4 | La_x86_64_regs * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 5 | unsigned int * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 6 | const char * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,La_x86_64_regs *,unsigned int *,const char *,long *) | | la_x86_64_gnu_pltenter | 7 | long * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 0 | Elf64_Sym * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 1 | unsigned int | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 2 | uintptr_t * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 3 | uintptr_t * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 4 | const La_x86_64_regs * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 5 | La_x86_64_retval * | +| (Elf64_Sym *,unsigned int,uintptr_t *,uintptr_t *,const La_x86_64_regs *,La_x86_64_retval *,const char *) | | la_x86_64_gnu_pltexit | 6 | const char * | +| (Elf64_auxv_t *) | | _dl_aux_init | 0 | Elf64_auxv_t * | | (FFC_PARAMS *,BIGNUM *) | | ossl_ffc_params_set0_j | 0 | FFC_PARAMS * | | (FFC_PARAMS *,BIGNUM *) | | ossl_ffc_params_set0_j | 1 | BIGNUM * | | (FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_ffc_params_set0_pqg | 0 | FFC_PARAMS * | @@ -18074,6 +23668,49 @@ getSignatureParameterName | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 0 | FFC_PARAMS * | | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 1 | unsigned int | | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | int | +| (FILE *) | | _IO_default_uflow | 0 | FILE * | +| (FILE *) | | _IO_feof | 0 | FILE * | +| (FILE *) | | _IO_ferror | 0 | FILE * | +| (FILE *) | | _IO_file_close_mmap | 0 | FILE * | +| (FILE *) | | _IO_file_underflow_mmap | 0 | FILE * | +| (FILE *) | | _IO_ftell | 0 | FILE * | +| (FILE *) | | _IO_getc | 0 | FILE * | +| (FILE *) | | _IO_getwc | 0 | FILE * | +| (FILE *) | | _IO_new_file_underflow | 0 | FILE * | +| (FILE *) | | _IO_peekc_locked | 0 | FILE * | +| (FILE *) | | _IO_str_count | 0 | FILE * | +| (FILE *) | | _IO_str_underflow | 0 | FILE * | +| (FILE *) | | _IO_sungetc | 0 | FILE * | +| (FILE *) | | _IO_sungetwc | 0 | FILE * | +| (FILE *) | | _IO_wdefault_uflow | 0 | FILE * | +| (FILE *) | | _IO_wfile_underflow | 0 | FILE * | +| (FILE *) | | _IO_wfile_underflow_mmap | 0 | FILE * | +| (FILE *) | | _IO_wstr_count | 0 | FILE * | +| (FILE *) | | _IO_wstr_underflow | 0 | FILE * | +| (FILE *) | | __fbufsize | 0 | FILE * | +| (FILE *) | | __feof_unlocked | 0 | FILE * | +| (FILE *) | | __ferror_unlocked | 0 | FILE * | +| (FILE *) | | __fileno | 0 | FILE * | +| (FILE *) | | __flbf | 0 | FILE * | +| (FILE *) | | __fopen_maybe_mmap | 0 | FILE * | +| (FILE *) | | __fpending | 0 | FILE * | +| (FILE *) | | __ftello | 0 | FILE * | +| (FILE *) | | __fwriting | 0 | FILE * | +| (FILE *) | | __getc_unlocked | 0 | FILE * | +| (FILE *) | | __getwc_unlocked | 0 | FILE * | +| (FILE *) | | __uflow | 0 | FILE * | +| (FILE *) | | __underflow | 0 | FILE * | +| (FILE *) | | __wuflow | 0 | FILE * | +| (FILE *) | | __wunderflow | 0 | FILE * | +| (FILE *) | | feof_unlocked | 0 | FILE * | +| (FILE *) | | ferror_unlocked | 0 | FILE * | +| (FILE *) | | fgetc_unlocked | 0 | FILE * | +| (FILE *) | | fgetgrent | 0 | FILE * | +| (FILE *) | | fgetpwent | 0 | FILE * | +| (FILE *) | | fgetsgent | 0 | FILE * | +| (FILE *) | | fgetspent | 0 | FILE * | +| (FILE *) | | getc_unlocked | 0 | FILE * | +| (FILE *) | | getmntent | 0 | FILE * | | (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 0 | FILE * | | (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 1 | CMS_ContentInfo ** | | (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 2 | pem_password_cb * | @@ -18150,6 +23787,25 @@ getSignatureParameterName | (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 3 | void * | | (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 4 | OSSL_LIB_CTX * | | (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 5 | const char * | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfscanf | 0 | FILE * | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfscanf | 1 | FILE *__restrict__ | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfscanf | 2 | const char * | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfscanf | 3 | const char *__restrict__ | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfscanf | 4 | __gnuc_va_list | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfscanf | 5 | va_list | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfscanf | 0 | FILE * | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfscanf | 1 | FILE *__restrict__ | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfscanf | 2 | const char * | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfscanf | 3 | const char *__restrict__ | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfscanf | 4 | __gnuc_va_list | +| (FILE *,FILE *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfscanf | 5 | va_list | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 0 | FILE * | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 1 | FILE *__restrict__ | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 2 | int | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 3 | const wchar_t * | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 4 | const wchar_t *__restrict__ | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 5 | __gnuc_va_list | +| (FILE *,FILE *__restrict__,int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwprintf_chk | 6 | va_list | | (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 0 | FILE * | | (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 1 | NETSCAPE_CERT_SEQUENCE ** | | (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 2 | pem_password_cb * | @@ -18238,11 +23894,68 @@ getSignatureParameterName | (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 1 | X509_SIG ** | | (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 2 | pem_password_cb * | | (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 3 | void * | +| (FILE *,_IO_marker *,int) | | _IO_seekmark | 0 | FILE * | +| (FILE *,_IO_marker *,int) | | _IO_seekmark | 1 | _IO_marker * | +| (FILE *,_IO_marker *,int) | | _IO_seekmark | 2 | int | +| (FILE *,_IO_marker *,int) | | _IO_seekwmark | 0 | FILE * | +| (FILE *,_IO_marker *,int) | | _IO_seekwmark | 1 | _IO_marker * | +| (FILE *,_IO_marker *,int) | | _IO_seekwmark | 2 | int | +| (FILE *,__FILE *,int) | | fwide | 0 | FILE * | +| (FILE *,__FILE *,int) | | fwide | 1 | __FILE * | +| (FILE *,__FILE *,int) | | fwide | 2 | int | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfwscanf | 0 | FILE * | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfwscanf | 1 | __FILE *__restrict__ | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfwscanf | 2 | const wchar_t * | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfwscanf | 3 | const wchar_t *__restrict__ | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfwscanf | 4 | __gnuc_va_list | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vfwscanf | 5 | va_list | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfwscanf | 0 | FILE * | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfwscanf | 1 | __FILE *__restrict__ | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfwscanf | 2 | const wchar_t * | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfwscanf | 3 | const wchar_t *__restrict__ | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfwscanf | 4 | __gnuc_va_list | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vfwscanf | 5 | va_list | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwscanf | 0 | FILE * | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwscanf | 1 | __FILE *__restrict__ | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwscanf | 2 | const wchar_t * | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwscanf | 3 | const wchar_t *__restrict__ | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwscanf | 4 | __gnuc_va_list | +| (FILE *,__FILE *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vfwscanf | 5 | va_list | +| (FILE *,__fpos_t *) | | _IO_new_fgetpos | 0 | FILE * | +| (FILE *,__fpos_t *) | | _IO_new_fgetpos | 1 | __fpos_t * | | (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 0 | FILE * | | (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 1 | char ** | | (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 2 | char ** | | (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 3 | unsigned char ** | | (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 4 | long * | +| (FILE *,char *,char *,int) | | _IO_setb | 0 | FILE * | +| (FILE *,char *,char *,int) | | _IO_setb | 1 | char * | +| (FILE *,char *,char *,int) | | _IO_setb | 2 | char * | +| (FILE *,char *,char *,int) | | _IO_setb | 3 | int | +| (FILE *,char *,size_t,int,int) | | _IO_getline | 0 | FILE * | +| (FILE *,char *,size_t,int,int) | | _IO_getline | 1 | char * | +| (FILE *,char *,size_t,int,int) | | _IO_getline | 2 | size_t | +| (FILE *,char *,size_t,int,int) | | _IO_getline | 3 | int | +| (FILE *,char *,size_t,int,int) | | _IO_getline | 4 | int | +| (FILE *,char *,size_t,int,int,int *) | | _IO_getline_info | 0 | FILE * | +| (FILE *,char *,size_t,int,int,int *) | | _IO_getline_info | 1 | char * | +| (FILE *,char *,size_t,int,int,int *) | | _IO_getline_info | 2 | size_t | +| (FILE *,char *,size_t,int,int,int *) | | _IO_getline_info | 3 | int | +| (FILE *,char *,size_t,int,int,int *) | | _IO_getline_info | 4 | int | +| (FILE *,char *,size_t,int,int,int *) | | _IO_getline_info | 5 | int * | +| (FILE *,char *,size_t,off64_t *) | | __nss_readline | 0 | FILE * | +| (FILE *,char *,size_t,off64_t *) | | __nss_readline | 1 | char * | +| (FILE *,char *,size_t,off64_t *) | | __nss_readline | 2 | size_t | +| (FILE *,char *,size_t,off64_t *) | | __nss_readline | 3 | off64_t * | +| (FILE *,char *,ssize_t) | | _IO_default_setbuf | 0 | FILE * | +| (FILE *,char *,ssize_t) | | _IO_default_setbuf | 1 | char * | +| (FILE *,char *,ssize_t) | | _IO_default_setbuf | 2 | ssize_t | +| (FILE *,char *,ssize_t) | | _IO_file_setbuf_mmap | 0 | FILE * | +| (FILE *,char *,ssize_t) | | _IO_file_setbuf_mmap | 1 | char * | +| (FILE *,char *,ssize_t) | | _IO_file_setbuf_mmap | 2 | ssize_t | +| (FILE *,char *,ssize_t) | | _IO_new_file_setbuf | 0 | FILE * | +| (FILE *,char *,ssize_t) | | _IO_new_file_setbuf | 1 | char * | +| (FILE *,char *,ssize_t) | | _IO_new_file_setbuf | 2 | ssize_t | | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 0 | FILE * | | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 1 | const ASN1_STRING * | | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | unsigned long | @@ -18389,6 +24102,16 @@ getSignatureParameterName | (FILE *,const X509_REQ *) | | i2d_X509_REQ_fp | 1 | const X509_REQ * | | (FILE *,const X509_SIG *) | | PEM_write_PKCS8 | 0 | FILE * | | (FILE *,const X509_SIG *) | | PEM_write_PKCS8 | 1 | const X509_SIG * | +| (FILE *,const __fpos_t *) | | _IO_new_fsetpos | 0 | FILE * | +| (FILE *,const __fpos_t *) | | _IO_new_fsetpos | 1 | const __fpos_t * | +| (FILE *,const char *,__gnuc_va_list,va_list,unsigned int) | | __vfxprintf | 0 | FILE * | +| (FILE *,const char *,__gnuc_va_list,va_list,unsigned int) | | __vfxprintf | 1 | const char * | +| (FILE *,const char *,__gnuc_va_list,va_list,unsigned int) | | __vfxprintf | 2 | __gnuc_va_list | +| (FILE *,const char *,__gnuc_va_list,va_list,unsigned int) | | __vfxprintf | 3 | va_list | +| (FILE *,const char *,__gnuc_va_list,va_list,unsigned int) | | __vfxprintf | 4 | unsigned int | +| (FILE *,const char *,const char *) | | _IO_new_proc_open | 0 | FILE * | +| (FILE *,const char *,const char *) | | _IO_new_proc_open | 1 | const char * | +| (FILE *,const char *,const char *) | | _IO_new_proc_open | 2 | const char * | | (FILE *,const char *,const char *,const char *,...) | | version_etc | 0 | FILE * | | (FILE *,const char *,const char *,const char *,...) | | version_etc | 1 | const char * | | (FILE *,const char *,const char *,const char *,...) | | version_etc | 2 | const char * | @@ -18410,14 +24133,123 @@ getSignatureParameterName | (FILE *,const char *,const char *,const char *,va_list) | | version_etc_va | 2 | const char * | | (FILE *,const char *,const char *,const char *,va_list) | | version_etc_va | 3 | const char * | | (FILE *,const char *,const char *,const char *,va_list) | | version_etc_va | 4 | va_list | +| (FILE *,const char *,const char *,int) | | _IO_new_file_fopen | 0 | FILE * | +| (FILE *,const char *,const char *,int) | | _IO_new_file_fopen | 1 | const char * | +| (FILE *,const char *,const char *,int) | | _IO_new_file_fopen | 2 | const char * | +| (FILE *,const char *,const char *,int) | | _IO_new_file_fopen | 3 | int | +| (FILE *,const char *,int,int,int,int) | | _IO_file_open | 0 | FILE * | +| (FILE *,const char *,int,int,int,int) | | _IO_file_open | 1 | const char * | +| (FILE *,const char *,int,int,int,int) | | _IO_file_open | 2 | int | +| (FILE *,const char *,int,int,int,int) | | _IO_file_open | 3 | int | +| (FILE *,const char *,int,int,int,int) | | _IO_file_open | 4 | int | +| (FILE *,const char *,int,int,int,int) | | _IO_file_open | 5 | int | +| (FILE *,const char *,kw_hash_fct_t) | | lr_create | 0 | FILE * | +| (FILE *,const char *,kw_hash_fct_t) | | lr_create | 1 | const char * | +| (FILE *,const char *,kw_hash_fct_t) | | lr_create | 2 | kw_hash_fct_t | +| (FILE *,const char *,size_t) | | _IO_new_do_write | 0 | FILE * | +| (FILE *,const char *,size_t) | | _IO_new_do_write | 1 | const char * | +| (FILE *,const char *,size_t) | | _IO_new_do_write | 2 | size_t | +| (FILE *,const char *,va_list) | | ___vfscanf | 0 | FILE * | +| (FILE *,const char *,va_list) | | ___vfscanf | 1 | const char * | +| (FILE *,const char *,va_list) | | ___vfscanf | 2 | va_list | +| (FILE *,const char *,va_list) | | __vfprintf | 0 | FILE * | +| (FILE *,const char *,va_list) | | __vfprintf | 1 | const char * | +| (FILE *,const char *,va_list) | | __vfprintf | 2 | va_list | | (FILE *,const char *,va_list) | | curl_mvfprintf | 0 | FILE * | | (FILE *,const char *,va_list) | | curl_mvfprintf | 1 | const char * | | (FILE *,const char *,va_list) | | curl_mvfprintf | 2 | va_list | +| (FILE *,const char *,va_list,int *) | | __IO_vfscanf | 0 | FILE * | +| (FILE *,const char *,va_list,int *) | | __IO_vfscanf | 1 | const char * | +| (FILE *,const char *,va_list,int *) | | __IO_vfscanf | 2 | va_list | +| (FILE *,const char *,va_list,int *) | | __IO_vfscanf | 3 | int * | +| (FILE *,const char *,va_list,unsigned int) | | __vfprintf_internal | 0 | FILE * | +| (FILE *,const char *,va_list,unsigned int) | | __vfprintf_internal | 1 | const char * | +| (FILE *,const char *,va_list,unsigned int) | | __vfprintf_internal | 2 | va_list | +| (FILE *,const char *,va_list,unsigned int) | | __vfprintf_internal | 3 | unsigned int | +| (FILE *,const char *,va_list,unsigned int) | | __vfscanf_internal | 0 | FILE * | +| (FILE *,const char *,va_list,unsigned int) | | __vfscanf_internal | 1 | const char * | +| (FILE *,const char *,va_list,unsigned int) | | __vfscanf_internal | 2 | va_list | +| (FILE *,const char *,va_list,unsigned int) | | __vfscanf_internal | 3 | unsigned int | +| (FILE *,const mntent *) | | __addmntent | 0 | FILE * | +| (FILE *,const mntent *) | | __addmntent | 1 | const mntent * | +| (FILE *,const printf_info *,const void *const *) | | __printf_size | 0 | FILE * | +| (FILE *,const printf_info *,const void *const *) | | __printf_size | 1 | const printf_info * | +| (FILE *,const printf_info *,const void *const *) | | __printf_size | 2 | const void *const * | +| (FILE *,const void *,size_t) | | _IO_default_xsputn | 0 | FILE * | +| (FILE *,const void *,size_t) | | _IO_default_xsputn | 1 | const void * | +| (FILE *,const void *,size_t) | | _IO_default_xsputn | 2 | size_t | +| (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 0 | FILE * | +| (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 1 | const void * | +| (FILE *,const void *,size_t) | | _IO_new_file_xsputn | 2 | size_t | +| (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 0 | FILE * | +| (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 1 | const void * | +| (FILE *,const void *,size_t) | | _IO_wdefault_xsputn | 2 | size_t | +| (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 0 | FILE * | +| (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 1 | const void * | +| (FILE *,const void *,size_t) | | _IO_wfile_xsputn | 2 | size_t | +| (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 0 | FILE * | +| (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 1 | const void * | +| (FILE *,const void *,size_t) | | __printf_buffer_as_file_xsputn | 2 | size_t | +| (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 0 | FILE * | +| (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 1 | const void * | +| (FILE *,const void *,size_t) | | __wprintf_buffer_as_file_xsputn | 2 | size_t | +| (FILE *,const void *,ssize_t) | | _IO_new_file_write | 0 | FILE * | +| (FILE *,const void *,ssize_t) | | _IO_new_file_write | 1 | const void * | +| (FILE *,const void *,ssize_t) | | _IO_new_file_write | 2 | ssize_t | +| (FILE *,const wchar_t *,va_list) | | __vfwprintf | 0 | FILE * | +| (FILE *,const wchar_t *,va_list) | | __vfwprintf | 1 | const wchar_t * | +| (FILE *,const wchar_t *,va_list) | | __vfwprintf | 2 | va_list | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwprintf_internal | 0 | FILE * | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwprintf_internal | 1 | const wchar_t * | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwprintf_internal | 2 | va_list | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwprintf_internal | 3 | unsigned int | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwscanf_internal | 0 | FILE * | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwscanf_internal | 1 | const wchar_t * | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwscanf_internal | 2 | va_list | +| (FILE *,const wchar_t *,va_list,unsigned int) | | __vfwscanf_internal | 3 | unsigned int | +| (FILE *,group *,char *,size_t,group **) | | __fgetgrent_r | 0 | FILE * | +| (FILE *,group *,char *,size_t,group **) | | __fgetgrent_r | 1 | group * | +| (FILE *,group *,char *,size_t,group **) | | __fgetgrent_r | 2 | char * | +| (FILE *,group *,char *,size_t,group **) | | __fgetgrent_r | 3 | size_t | +| (FILE *,group *,char *,size_t,group **) | | __fgetgrent_r | 4 | group ** | | (FILE *,int *) | | tplt_skip_header | 0 | FILE * | | (FILE *,int *) | | tplt_skip_header | 1 | int * | +| (FILE *,int) | | _IO_default_pbackfail | 0 | FILE * | +| (FILE *,int) | | _IO_default_pbackfail | 1 | int | +| (FILE *,int) | | _IO_fwide | 0 | FILE * | +| (FILE *,int) | | _IO_fwide | 1 | int | +| (FILE *,int) | | _IO_init | 0 | FILE * | +| (FILE *,int) | | _IO_init | 1 | int | +| (FILE *,int) | | _IO_init_internal | 0 | FILE * | +| (FILE *,int) | | _IO_init_internal | 1 | int | +| (FILE *,int) | | _IO_new_file_attach | 0 | FILE * | +| (FILE *,int) | | _IO_new_file_attach | 1 | int | +| (FILE *,int) | | _IO_new_file_overflow | 0 | FILE * | +| (FILE *,int) | | _IO_new_file_overflow | 1 | int | +| (FILE *,int) | | _IO_old_init | 0 | FILE * | +| (FILE *,int) | | _IO_old_init | 1 | int | +| (FILE *,int) | | _IO_sputbackc | 0 | FILE * | +| (FILE *,int) | | _IO_sputbackc | 1 | int | +| (FILE *,int) | | _IO_str_overflow | 0 | FILE * | +| (FILE *,int) | | _IO_str_overflow | 1 | int | +| (FILE *,int) | | _IO_str_pbackfail | 0 | FILE * | +| (FILE *,int) | | _IO_str_pbackfail | 1 | int | +| (FILE *,int) | | __printf_buffer_as_file_overflow | 0 | FILE * | +| (FILE *,int) | | __printf_buffer_as_file_overflow | 1 | int | +| (FILE *,int) | | __wprintf_buffer_as_file_overflow | 0 | FILE * | +| (FILE *,int) | | __wprintf_buffer_as_file_overflow | 1 | int | | (FILE *,int,char *) | | tplt_linedir | 0 | FILE * | | (FILE *,int,char *) | | tplt_linedir | 1 | int | | (FILE *,int,char *) | | tplt_linedir | 2 | char * | +| (FILE *,int,const char *,va_list) | | ___vfprintf_chk | 0 | FILE * | +| (FILE *,int,const char *,va_list) | | ___vfprintf_chk | 1 | int | +| (FILE *,int,const char *,va_list) | | ___vfprintf_chk | 2 | const char * | +| (FILE *,int,const char *,va_list) | | ___vfprintf_chk | 3 | va_list | +| (FILE *,int,int,_IO_wide_data *,const _IO_jump_t *) | | _IO_no_init | 0 | FILE * | +| (FILE *,int,int,_IO_wide_data *,const _IO_jump_t *) | | _IO_no_init | 1 | int | +| (FILE *,int,int,_IO_wide_data *,const _IO_jump_t *) | | _IO_no_init | 2 | int | +| (FILE *,int,int,_IO_wide_data *,const _IO_jump_t *) | | _IO_no_init | 3 | _IO_wide_data * | +| (FILE *,int,int,_IO_wide_data *,const _IO_jump_t *) | | _IO_no_init | 4 | const _IO_jump_t * | | (FILE *,lemon *,char *,int *) | | tplt_print | 0 | FILE * | | (FILE *,lemon *,char *,int *) | | tplt_print | 1 | lemon * | | (FILE *,lemon *,char *,int *) | | tplt_print | 2 | char * | @@ -18426,6 +24258,38 @@ getSignatureParameterName | (FILE *,lemon *,int *,int) | | print_stack_union | 1 | lemon * | | (FILE *,lemon *,int *,int) | | print_stack_union | 2 | int * | | (FILE *,lemon *,int *,int) | | print_stack_union | 3 | int | +| (FILE *,mntent *,char *,int) | | __getmntent_r | 0 | FILE * | +| (FILE *,mntent *,char *,int) | | __getmntent_r | 1 | mntent * | +| (FILE *,mntent *,char *,int) | | __getmntent_r | 2 | char * | +| (FILE *,mntent *,char *,int) | | __getmntent_r | 3 | int | +| (FILE *,off64_t,int) | | _IO_cookie_seek | 0 | FILE * | +| (FILE *,off64_t,int) | | _IO_cookie_seek | 1 | off64_t | +| (FILE *,off64_t,int) | | _IO_cookie_seek | 2 | int | +| (FILE *,off64_t,int,int) | | _IO_file_seekoff_mmap | 0 | FILE * | +| (FILE *,off64_t,int,int) | | _IO_file_seekoff_mmap | 1 | off64_t | +| (FILE *,off64_t,int,int) | | _IO_file_seekoff_mmap | 2 | int | +| (FILE *,off64_t,int,int) | | _IO_file_seekoff_mmap | 3 | int | +| (FILE *,off64_t,int,int) | | _IO_new_file_seekoff | 0 | FILE * | +| (FILE *,off64_t,int,int) | | _IO_new_file_seekoff | 1 | off64_t | +| (FILE *,off64_t,int,int) | | _IO_new_file_seekoff | 2 | int | +| (FILE *,off64_t,int,int) | | _IO_new_file_seekoff | 3 | int | +| (FILE *,off64_t,int,int) | | _IO_str_seekoff | 0 | FILE * | +| (FILE *,off64_t,int,int) | | _IO_str_seekoff | 1 | off64_t | +| (FILE *,off64_t,int,int) | | _IO_str_seekoff | 2 | int | +| (FILE *,off64_t,int,int) | | _IO_str_seekoff | 3 | int | +| (FILE *,off64_t,int,int) | | _IO_wfile_seekoff | 0 | FILE * | +| (FILE *,off64_t,int,int) | | _IO_wfile_seekoff | 1 | off64_t | +| (FILE *,off64_t,int,int) | | _IO_wfile_seekoff | 2 | int | +| (FILE *,off64_t,int,int) | | _IO_wfile_seekoff | 3 | int | +| (FILE *,off64_t,int,int) | | _IO_wstr_seekoff | 0 | FILE * | +| (FILE *,off64_t,int,int) | | _IO_wstr_seekoff | 1 | off64_t | +| (FILE *,off64_t,int,int) | | _IO_wstr_seekoff | 2 | int | +| (FILE *,off64_t,int,int) | | _IO_wstr_seekoff | 3 | int | +| (FILE *,passwd *,char *,size_t,passwd **) | | __fgetpwent_r | 0 | FILE * | +| (FILE *,passwd *,char *,size_t,passwd **) | | __fgetpwent_r | 1 | passwd * | +| (FILE *,passwd *,char *,size_t,passwd **) | | __fgetpwent_r | 2 | char * | +| (FILE *,passwd *,char *,size_t,passwd **) | | __fgetpwent_r | 3 | size_t | +| (FILE *,passwd *,char *,size_t,passwd **) | | __fgetpwent_r | 4 | passwd ** | | (FILE *,rule *) | | rule_print | 0 | FILE * | | (FILE *,rule *) | | rule_print | 1 | rule * | | (FILE *,rule *,int) | | RulePrint | 0 | FILE * | @@ -18435,6 +24299,20 @@ getSignatureParameterName | (FILE *,rule *,lemon *,int *) | | emit_code | 1 | rule * | | (FILE *,rule *,lemon *,int *) | | emit_code | 2 | lemon * | | (FILE *,rule *,lemon *,int *) | | emit_code | 3 | int * | +| (FILE *,sgrp *,char *,size_t,sgrp **) | | __fgetsgent_r | 0 | FILE * | +| (FILE *,sgrp *,char *,size_t,sgrp **) | | __fgetsgent_r | 1 | sgrp * | +| (FILE *,sgrp *,char *,size_t,sgrp **) | | __fgetsgent_r | 2 | char * | +| (FILE *,sgrp *,char *,size_t,sgrp **) | | __fgetsgent_r | 3 | size_t | +| (FILE *,sgrp *,char *,size_t,sgrp **) | | __fgetsgent_r | 4 | sgrp ** | +| (FILE *,size_t,size_t,ssize_t) | | __argp_make_fmtstream | 0 | FILE * | +| (FILE *,size_t,size_t,ssize_t) | | __argp_make_fmtstream | 1 | size_t | +| (FILE *,size_t,size_t,ssize_t) | | __argp_make_fmtstream | 2 | size_t | +| (FILE *,size_t,size_t,ssize_t) | | __argp_make_fmtstream | 3 | ssize_t | +| (FILE *,spwd *,char *,size_t,spwd **) | | __fgetspent_r | 0 | FILE * | +| (FILE *,spwd *,char *,size_t,spwd **) | | __fgetspent_r | 1 | spwd * | +| (FILE *,spwd *,char *,size_t,spwd **) | | __fgetspent_r | 2 | char * | +| (FILE *,spwd *,char *,size_t,spwd **) | | __fgetspent_r | 3 | size_t | +| (FILE *,spwd *,char *,size_t,spwd **) | | __fgetspent_r | 4 | spwd ** | | (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 0 | FILE * | | (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 1 | stack_st_X509_INFO * | | (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 2 | pem_password_cb * | @@ -18449,6 +24327,61 @@ getSignatureParameterName | (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 1 | symbol * | | (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 2 | lemon * | | (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 3 | int * | +| (FILE *,void *,char *,size_t,nss_files_parse_line) | | __nss_fgetent_r | 0 | FILE * | +| (FILE *,void *,char *,size_t,nss_files_parse_line) | | __nss_fgetent_r | 1 | void * | +| (FILE *,void *,char *,size_t,nss_files_parse_line) | | __nss_fgetent_r | 2 | char * | +| (FILE *,void *,char *,size_t,nss_files_parse_line) | | __nss_fgetent_r | 3 | size_t | +| (FILE *,void *,char *,size_t,nss_files_parse_line) | | __nss_fgetent_r | 4 | nss_files_parse_line | +| (FILE *,void *,size_t) | | _IO_default_xsgetn | 0 | FILE * | +| (FILE *,void *,size_t) | | _IO_default_xsgetn | 1 | void * | +| (FILE *,void *,size_t) | | _IO_default_xsgetn | 2 | size_t | +| (FILE *,void *,size_t) | | _IO_file_xsgetn | 0 | FILE * | +| (FILE *,void *,size_t) | | _IO_file_xsgetn | 1 | void * | +| (FILE *,void *,size_t) | | _IO_file_xsgetn | 2 | size_t | +| (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 0 | FILE * | +| (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 1 | void * | +| (FILE *,void *,size_t) | | _IO_file_xsgetn_mmap | 2 | size_t | +| (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 0 | FILE * | +| (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 1 | void * | +| (FILE *,void *,size_t) | | _IO_wdefault_xsgetn | 2 | size_t | +| (FILE *,wchar_t *) | | _IO_least_wmarker | 0 | FILE * | +| (FILE *,wchar_t *) | | _IO_least_wmarker | 1 | wchar_t * | +| (FILE *,wchar_t *,size_t,wchar_t *) | | _IO_wstr_init_static | 0 | FILE * | +| (FILE *,wchar_t *,size_t,wchar_t *) | | _IO_wstr_init_static | 1 | wchar_t * | +| (FILE *,wchar_t *,size_t,wchar_t *) | | _IO_wstr_init_static | 2 | size_t | +| (FILE *,wchar_t *,size_t,wchar_t *) | | _IO_wstr_init_static | 3 | wchar_t * | +| (FILE *,wchar_t *,size_t,wint_t,int) | | _IO_getwline | 0 | FILE * | +| (FILE *,wchar_t *,size_t,wint_t,int) | | _IO_getwline | 1 | wchar_t * | +| (FILE *,wchar_t *,size_t,wint_t,int) | | _IO_getwline | 2 | size_t | +| (FILE *,wchar_t *,size_t,wint_t,int) | | _IO_getwline | 3 | wint_t | +| (FILE *,wchar_t *,size_t,wint_t,int) | | _IO_getwline | 4 | int | +| (FILE *,wchar_t *,size_t,wint_t,int,wint_t *) | | _IO_getwline_info | 0 | FILE * | +| (FILE *,wchar_t *,size_t,wint_t,int,wint_t *) | | _IO_getwline_info | 1 | wchar_t * | +| (FILE *,wchar_t *,size_t,wint_t,int,wint_t *) | | _IO_getwline_info | 2 | size_t | +| (FILE *,wchar_t *,size_t,wint_t,int,wint_t *) | | _IO_getwline_info | 3 | wint_t | +| (FILE *,wchar_t *,size_t,wint_t,int,wint_t *) | | _IO_getwline_info | 4 | int | +| (FILE *,wchar_t *,size_t,wint_t,int,wint_t *) | | _IO_getwline_info | 5 | wint_t * | +| (FILE *,wchar_t *,wchar_t *,int) | | _IO_wsetb | 0 | FILE * | +| (FILE *,wchar_t *,wchar_t *,int) | | _IO_wsetb | 1 | wchar_t * | +| (FILE *,wchar_t *,wchar_t *,int) | | _IO_wsetb | 2 | wchar_t * | +| (FILE *,wchar_t *,wchar_t *,int) | | _IO_wsetb | 3 | int | +| (FILE *,wint_t) | | _IO_sputbackwc | 0 | FILE * | +| (FILE *,wint_t) | | _IO_sputbackwc | 1 | wint_t | +| (FILE *,wint_t) | | _IO_wdefault_pbackfail | 0 | FILE * | +| (FILE *,wint_t) | | _IO_wdefault_pbackfail | 1 | wint_t | +| (FILE *,wint_t) | | _IO_wfile_overflow | 0 | FILE * | +| (FILE *,wint_t) | | _IO_wfile_overflow | 1 | wint_t | +| (FILE *,wint_t) | | _IO_wstr_overflow | 0 | FILE * | +| (FILE *,wint_t) | | _IO_wstr_overflow | 1 | wint_t | +| (FILE *,wint_t) | | _IO_wstr_pbackfail | 0 | FILE * | +| (FILE *,wint_t) | | _IO_wstr_pbackfail | 1 | wint_t | +| (FTS *) | | fts_close | 0 | FTS * | +| (FTS *) | | fts_read | 0 | FTS * | +| (FTS *,FTSENT *,int) | | fts_set | 0 | FTS * | +| (FTS *,FTSENT *,int) | | fts_set | 1 | FTSENT * | +| (FTS *,FTSENT *,int) | | fts_set | 2 | int | +| (FTS *,int) | | fts_children | 0 | FTS * | +| (FTS *,int) | | fts_children | 1 | int | | (FUNCTION *,DISPLAY_COLUMNS *) | | calculate_columns | 0 | FUNCTION * | | (FUNCTION *,DISPLAY_COLUMNS *) | | calculate_columns | 1 | DISPLAY_COLUMNS * | | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 0 | GCM128_CONTEXT * | @@ -19528,6 +25461,9 @@ getSignatureParameterName | (LPTSTR,LPCTSTR,DWORD *) | CRegKey | QueryValue | 0 | LPTSTR | | (LPTSTR,LPCTSTR,DWORD *) | CRegKey | QueryValue | 1 | LPCTSTR | | (LPTSTR,LPCTSTR,DWORD *) | CRegKey | QueryValue | 2 | DWORD * | +| (Lmid_t) | | _dl_debug_update | 0 | Lmid_t | +| (Lmid_t,const char *) | | _dl_lookup_map | 0 | Lmid_t | +| (Lmid_t,const char *) | | _dl_lookup_map | 1 | const char * | | (MD4_CTX *,const unsigned char *) | | MD4_Transform | 0 | MD4_CTX * | | (MD4_CTX *,const unsigned char *) | | MD4_Transform | 1 | const unsigned char * | | (MD4_CTX *,const void *,size_t) | | MD4_Update | 0 | MD4_CTX * | @@ -24172,6 +30108,12 @@ getSignatureParameterName | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 1 | sqlite3_str * | | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 2 | const char * | | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | ... | +| (Strent *) | | strtaboffset | 0 | Strent * | +| (Strtab *,const char *,size_t) | | strtabadd | 0 | Strtab * | +| (Strtab *,const char *,size_t) | | strtabadd | 1 | const char * | +| (Strtab *,const char *,size_t) | | strtabadd | 2 | size_t | +| (Strtab *,size_t *) | | strtabfinalize | 0 | Strtab * | +| (Strtab *,size_t *) | | strtabfinalize | 1 | size_t * | | (TLS_FEATURE *) | | TLS_FEATURE_free | 0 | TLS_FEATURE * | | (TLS_RL_RECORD *,const unsigned char *) | | ossl_tls_rl_record_set_seq_num | 0 | TLS_RL_RECORD * | | (TLS_RL_RECORD *,const unsigned char *) | | ossl_tls_rl_record_set_seq_num | 1 | const unsigned char * | @@ -25233,7 +31175,677 @@ getSignatureParameterName | (XCHAR) | CStringT | operator= | 0 | XCHAR | | (XCHAR,XCHAR) | CStringT | Replace | 0 | XCHAR | | (XCHAR,XCHAR) | CStringT | Replace | 1 | XCHAR | +| (XDR *,FILE *,xdr_op) | | xdrstdio_create | 0 | XDR * | +| (XDR *,FILE *,xdr_op) | | xdrstdio_create | 1 | FILE * | +| (XDR *,FILE *,xdr_op) | | xdrstdio_create | 2 | xdr_op | +| (XDR *,bool_t *) | | xdr_bool | 0 | XDR * | +| (XDR *,bool_t *) | | xdr_bool | 1 | bool_t * | +| (XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t) | | xdr_array | 0 | XDR * | +| (XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t) | | xdr_array | 1 | caddr_t * | +| (XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t) | | xdr_array | 2 | u_int * | +| (XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t) | | xdr_array | 3 | u_int | +| (XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t) | | xdr_array | 4 | u_int | +| (XDR *,caddr_t *,u_int *,u_int,u_int,xdrproc_t) | | xdr_array | 5 | xdrproc_t | +| (XDR *,caddr_t *,u_int,xdrproc_t) | | xdr_reference | 0 | XDR * | +| (XDR *,caddr_t *,u_int,xdrproc_t) | | xdr_reference | 1 | caddr_t * | +| (XDR *,caddr_t *,u_int,xdrproc_t) | | xdr_reference | 2 | u_int | +| (XDR *,caddr_t *,u_int,xdrproc_t) | | xdr_reference | 3 | xdrproc_t | +| (XDR *,char *) | | xdr_char | 0 | XDR * | +| (XDR *,char *) | | xdr_char | 1 | char * | +| (XDR *,char **) | | xdr_wrapstring | 0 | XDR * | +| (XDR *,char **) | | xdr_wrapstring | 1 | char ** | +| (XDR *,char **,u_int *,u_int) | | xdr_bytes | 0 | XDR * | +| (XDR *,char **,u_int *,u_int) | | xdr_bytes | 1 | char ** | +| (XDR *,char **,u_int *,u_int) | | xdr_bytes | 2 | u_int * | +| (XDR *,char **,u_int *,u_int) | | xdr_bytes | 3 | u_int | +| (XDR *,char **,u_int) | | xdr_string | 0 | XDR * | +| (XDR *,char **,u_int) | | xdr_string | 1 | char ** | +| (XDR *,char **,u_int) | | xdr_string | 2 | u_int | +| (XDR *,char **,u_int,xdrproc_t) | | xdr_pointer | 0 | XDR * | +| (XDR *,char **,u_int,xdrproc_t) | | xdr_pointer | 1 | char ** | +| (XDR *,char **,u_int,xdrproc_t) | | xdr_pointer | 2 | u_int | +| (XDR *,char **,u_int,xdrproc_t) | | xdr_pointer | 3 | xdrproc_t | +| (XDR *,const caddr_t,u_int,xdr_op) | | xdrmem_create | 0 | XDR * | +| (XDR *,const caddr_t,u_int,xdr_op) | | xdrmem_create | 1 | const caddr_t | +| (XDR *,const caddr_t,u_int,xdr_op) | | xdrmem_create | 2 | u_int | +| (XDR *,const caddr_t,u_int,xdr_op) | | xdrmem_create | 3 | xdr_op | +| (XDR *,domainname *) | | xdr_domainname | 0 | XDR * | +| (XDR *,domainname *) | | xdr_domainname | 1 | domainname * | +| (XDR *,enum_t *) | | xdr_enum | 0 | XDR * | +| (XDR *,enum_t *) | | xdr_enum | 1 | enum_t * | +| (XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t) | | xdr_union | 0 | XDR * | +| (XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t) | | xdr_union | 1 | enum_t * | +| (XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t) | | xdr_union | 2 | char * | +| (XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t) | | xdr_union | 3 | const xdr_discrim * | +| (XDR *,enum_t *,char *,const xdr_discrim *,xdrproc_t) | | xdr_union | 4 | xdrproc_t | +| (XDR *,float *) | | xdr_float | 0 | XDR * | +| (XDR *,float *) | | xdr_float | 1 | float * | +| (XDR *,int8_t *) | | xdr_int8_t | 0 | XDR * | +| (XDR *,int8_t *) | | xdr_int8_t | 1 | int8_t * | +| (XDR *,int16_t *) | | xdr_int16_t | 0 | XDR * | +| (XDR *,int16_t *) | | xdr_int16_t | 1 | int16_t * | +| (XDR *,int64_t *) | | xdr_int64_t | 0 | XDR * | +| (XDR *,int64_t *) | | xdr_int64_t | 1 | int64_t * | +| (XDR *,int *) | | xdr_int | 0 | XDR * | +| (XDR *,int *) | | xdr_int | 1 | int * | +| (XDR *,keystatus *) | | xdr_keystatus | 0 | XDR * | +| (XDR *,keystatus *) | | xdr_keystatus | 1 | keystatus * | +| (XDR *,long *) | | xdr_long | 0 | XDR * | +| (XDR *,long *) | | xdr_long | 1 | long * | +| (XDR *,mapname *) | | xdr_mapname | 0 | XDR * | +| (XDR *,mapname *) | | xdr_mapname | 1 | mapname * | +| (XDR *,netnamestr *) | | xdr_netnamestr | 0 | XDR * | +| (XDR *,netnamestr *) | | xdr_netnamestr | 1 | netnamestr * | +| (XDR *,nis_error *) | | _xdr_nis_error | 0 | XDR * | +| (XDR *,nis_error *) | | _xdr_nis_error | 1 | nis_error * | +| (XDR *,nis_name *) | | _xdr_nis_name | 0 | XDR * | +| (XDR *,nis_name *) | | _xdr_nis_name | 1 | nis_name * | +| (XDR *,obj_p *) | | xdr_obj_p | 0 | XDR * | +| (XDR *,obj_p *) | | xdr_obj_p | 1 | obj_p * | +| (XDR *,peername *) | | xdr_peername | 0 | XDR * | +| (XDR *,peername *) | | xdr_peername | 1 | peername * | +| (XDR *,pmaplist **) | | xdr_pmaplist | 0 | XDR * | +| (XDR *,pmaplist **) | | xdr_pmaplist | 1 | pmaplist ** | +| (XDR *,quad_t *) | | xdr_hyper | 0 | XDR * | +| (XDR *,quad_t *) | | xdr_hyper | 1 | quad_t * | +| (XDR *,quad_t *) | | xdr_longlong_t | 0 | XDR * | +| (XDR *,quad_t *) | | xdr_longlong_t | 1 | quad_t * | +| (XDR *,quad_t *) | | xdr_quad_t | 0 | XDR * | +| (XDR *,quad_t *) | | xdr_quad_t | 1 | quad_t * | +| (XDR *,short *) | | xdr_short | 0 | XDR * | +| (XDR *,short *) | | xdr_short | 1 | short * | +| (XDR *,u_char *) | | xdr_u_char | 0 | XDR * | +| (XDR *,u_char *) | | xdr_u_char | 1 | u_char * | +| (XDR *,u_int *) | | xdr_u_int | 0 | XDR * | +| (XDR *,u_int *) | | xdr_u_int | 1 | u_int * | +| (XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..)) | | xdrrec_create | 0 | XDR * | +| (XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..)) | | xdrrec_create | 1 | u_int | +| (XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..)) | | xdrrec_create | 2 | u_int | +| (XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..)) | | xdrrec_create | 3 | caddr_t | +| (XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..)) | | xdrrec_create | 4 | ..(*)(..) | +| (XDR *,u_int,u_int,caddr_t,..(*)(..),..(*)(..)) | | xdrrec_create | 5 | ..(*)(..) | +| (XDR *,u_long *) | | xdr_u_long | 0 | XDR * | +| (XDR *,u_long *) | | xdr_u_long | 1 | u_long * | +| (XDR *,u_quad_t *) | | xdr_u_hyper | 0 | XDR * | +| (XDR *,u_quad_t *) | | xdr_u_hyper | 1 | u_quad_t * | +| (XDR *,u_quad_t *) | | xdr_u_longlong_t | 0 | XDR * | +| (XDR *,u_quad_t *) | | xdr_u_longlong_t | 1 | u_quad_t * | +| (XDR *,u_quad_t *) | | xdr_u_quad_t | 0 | XDR * | +| (XDR *,u_quad_t *) | | xdr_u_quad_t | 1 | u_quad_t * | +| (XDR *,u_short *) | | xdr_u_short | 0 | XDR * | +| (XDR *,u_short *) | | xdr_u_short | 1 | u_short * | +| (XDR *,uint8_t *) | | xdr_uint8_t | 0 | XDR * | +| (XDR *,uint8_t *) | | xdr_uint8_t | 1 | uint8_t * | +| (XDR *,uint16_t *) | | xdr_uint16_t | 0 | XDR * | +| (XDR *,uint16_t *) | | xdr_uint16_t | 1 | uint16_t * | +| (XDR *,uint64_t *) | | xdr_uint64_t | 0 | XDR * | +| (XDR *,uint64_t *) | | xdr_uint64_t | 1 | uint64_t * | +| (XDR *,ypbind_resptype *) | | xdr_ypbind_resptype | 0 | XDR * | +| (XDR *,ypbind_resptype *) | | xdr_ypbind_resptype | 1 | ypbind_resptype * | +| (XDR *,yppush_status *) | | xdr_yppush_status | 0 | XDR * | +| (XDR *,yppush_status *) | | xdr_yppush_status | 1 | yppush_status * | +| (XDR *,ypstat *) | | xdr_ypstat | 0 | XDR * | +| (XDR *,ypstat *) | | xdr_ypstat | 1 | ypstat * | +| (XDR *,ypxfrstat *) | | xdr_ypxfrstat | 0 | XDR * | +| (XDR *,ypxfrstat *) | | xdr_ypxfrstat | 1 | ypxfrstat * | | (YCHAR) | CStringT | operator= | 0 | YCHAR | +| (_Float64,_Float64) | | __f32xaddf64 | 0 | _Float64 | +| (_Float64,_Float64) | | __f32xaddf64 | 1 | _Float64 | +| (_Float64,_Float64) | | __f32xdivf64 | 0 | _Float64 | +| (_Float64,_Float64) | | __f32xdivf64 | 1 | _Float64 | +| (_Float64,_Float64) | | __f32xmulf64 | 0 | _Float64 | +| (_Float64,_Float64) | | __f32xmulf64 | 1 | _Float64 | +| (_Float64,_Float64) | | __f32xsubf64 | 0 | _Float64 | +| (_Float64,_Float64) | | __f32xsubf64 | 1 | _Float64 | +| (_Float128 *,_Float128) | | __setpayloadf128 | 0 | _Float128 * | +| (_Float128 *,_Float128) | | __setpayloadf128 | 1 | _Float128 | +| (_Float128 *,_Float128) | | __setpayloadsigf128 | 0 | _Float128 * | +| (_Float128 *,_Float128) | | __setpayloadsigf128 | 1 | _Float128 | +| (_Float128 *,const _Float128 *) | | __canonicalizef128 | 0 | _Float128 * | +| (_Float128 *,const _Float128 *) | | __canonicalizef128 | 1 | const _Float128 * | +| (_Float128) | | __acosf128 | 0 | _Float128 | +| (_Float128) | | __acoshf128 | 0 | _Float128 | +| (_Float128) | | __acospif128 | 0 | _Float128 | +| (_Float128) | | __asinf128 | 0 | _Float128 | +| (_Float128) | | __asinhf128 | 0 | _Float128 | +| (_Float128) | | __asinpif128 | 0 | _Float128 | +| (_Float128) | | __atanf128 | 0 | _Float128 | +| (_Float128) | | __atanhf128 | 0 | _Float128 | +| (_Float128) | | __atanpif128 | 0 | _Float128 | +| (_Float128) | | __cbrtf128 | 0 | _Float128 | +| (_Float128) | | __ceilf128 | 0 | _Float128 | +| (_Float128) | | __cosf128 | 0 | _Float128 | +| (_Float128) | | __coshf128 | 0 | _Float128 | +| (_Float128) | | __erfcf128 | 0 | _Float128 | +| (_Float128) | | __erff128 | 0 | _Float128 | +| (_Float128) | | __exp2f128 | 0 | _Float128 | +| (_Float128) | | __exp2m1f128 | 0 | _Float128 | +| (_Float128) | | __exp10f128 | 0 | _Float128 | +| (_Float128) | | __exp10m1f128 | 0 | _Float128 | +| (_Float128) | | __expf128 | 0 | _Float128 | +| (_Float128) | | __finitef128 | 0 | _Float128 | +| (_Float128) | | __floorf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_acosf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_acoshf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_asinf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_atanhf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_coshf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_exp2f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_exp10f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_expf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_ilogbf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_j0f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_j1f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_log2f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_log10f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_logf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_sinhf128 | 0 | _Float128 | +| (_Float128) | | __ieee754_y0f128 | 0 | _Float128 | +| (_Float128) | | __ieee754_y1f128 | 0 | _Float128 | +| (_Float128) | | __ilogbf128 | 0 | _Float128 | +| (_Float128) | | __isinff128 | 0 | _Float128 | +| (_Float128) | | __isnanf128 | 0 | _Float128 | +| (_Float128) | | __isnanf128_impl | 0 | _Float128 | +| (_Float128) | | __j0f128 | 0 | _Float128 | +| (_Float128) | | __j1f128 | 0 | _Float128 | +| (_Float128) | | __lgammaf128 | 0 | _Float128 | +| (_Float128) | | __llogbf128 | 0 | _Float128 | +| (_Float128) | | __llrintf128 | 0 | _Float128 | +| (_Float128) | | __llroundf128 | 0 | _Float128 | +| (_Float128) | | __log1pf128 | 0 | _Float128 | +| (_Float128) | | __log2f128 | 0 | _Float128 | +| (_Float128) | | __log2p1f128 | 0 | _Float128 | +| (_Float128) | | __log10f128 | 0 | _Float128 | +| (_Float128) | | __log10p1f128 | 0 | _Float128 | +| (_Float128) | | __logbf128 | 0 | _Float128 | +| (_Float128) | | __logf128 | 0 | _Float128 | +| (_Float128) | | __lrintf128 | 0 | _Float128 | +| (_Float128) | | __lroundf128 | 0 | _Float128 | +| (_Float128) | | __nearbyintf128 | 0 | _Float128 | +| (_Float128) | | __nextdownf128 | 0 | _Float128 | +| (_Float128) | | __nextupf128 | 0 | _Float128 | +| (_Float128) | | __rintf128 | 0 | _Float128 | +| (_Float128) | | __roundevenf128 | 0 | _Float128 | +| (_Float128) | | __roundf128 | 0 | _Float128 | +| (_Float128) | | __sinf128 | 0 | _Float128 | +| (_Float128) | | __sinhf128 | 0 | _Float128 | +| (_Float128) | | __sinpif128 | 0 | _Float128 | +| (_Float128) | | __sqrtf128 | 0 | _Float128 | +| (_Float128) | | __tanf128 | 0 | _Float128 | +| (_Float128) | | __tanhf128 | 0 | _Float128 | +| (_Float128) | | __tanpif128 | 0 | _Float128 | +| (_Float128) | | __tgammaf128 | 0 | _Float128 | +| (_Float128) | | __truncf128 | 0 | _Float128 | +| (_Float128) | | __w_log1pf128 | 0 | _Float128 | +| (_Float128) | | __y0f128 | 0 | _Float128 | +| (_Float128) | | __y1f128 | 0 | _Float128 | +| (_Float128,_Float128 *) | | __ieee754_rem_pio2f128 | 0 | _Float128 | +| (_Float128,_Float128 *) | | __ieee754_rem_pio2f128 | 1 | _Float128 * | +| (_Float128,_Float128 *) | | __modff128 | 0 | _Float128 | +| (_Float128,_Float128 *) | | __modff128 | 1 | _Float128 * | +| (_Float128,_Float128 *,_Float128 *) | | __sincosf128 | 0 | _Float128 | +| (_Float128,_Float128 *,_Float128 *) | | __sincosf128 | 1 | _Float128 * | +| (_Float128,_Float128 *,_Float128 *) | | __sincosf128 | 2 | _Float128 * | +| (_Float128,_Float128) | | __atan2f128 | 0 | _Float128 | +| (_Float128,_Float128) | | __atan2f128 | 1 | _Float128 | +| (_Float128,_Float128) | | __atan2pif128 | 0 | _Float128 | +| (_Float128,_Float128) | | __atan2pif128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f32addf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f32addf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f32divf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f32divf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f32mulf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f32mulf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f32subf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f32subf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64addf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64addf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64divf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64divf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64mulf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64mulf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64subf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64subf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64xaddf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64xaddf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64xdivf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64xdivf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64xmulf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64xmulf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __f64xsubf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __f64xsubf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fdimf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fdimf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmaxf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmaxf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmaximum_mag_numf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmaximum_mag_numf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmaximum_magf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmaximum_magf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmaximum_numf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmaximum_numf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmaximumf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmaximumf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmaxmagf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmaxmagf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fminf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fminf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fminimum_mag_numf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fminimum_mag_numf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fminimum_magf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fminimum_magf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fminimum_numf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fminimum_numf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fminimumf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fminimumf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fminmagf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fminmagf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __fmodf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __fmodf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __hypotf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __hypotf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __ieee754_atan2f128 | 0 | _Float128 | +| (_Float128,_Float128) | | __ieee754_atan2f128 | 1 | _Float128 | +| (_Float128,_Float128) | | __ieee754_fmodf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __ieee754_fmodf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __ieee754_hypotf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __ieee754_hypotf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __ieee754_powf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __ieee754_powf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __ieee754_remainderf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __ieee754_remainderf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __kernel_cosf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __kernel_cosf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __nextafterf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __nextafterf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __powf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __powf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __powrf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __powrf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __remainderf128 | 0 | _Float128 | +| (_Float128,_Float128) | | __remainderf128 | 1 | _Float128 | +| (_Float128,_Float128) | | __x2y2m1f128 | 0 | _Float128 | +| (_Float128,_Float128) | | __x2y2m1f128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128 *,_Float128 *,int) | | __kernel_sincosf128 | 0 | _Float128 | +| (_Float128,_Float128,_Float128 *,_Float128 *,int) | | __kernel_sincosf128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128 *,_Float128 *,int) | | __kernel_sincosf128 | 2 | _Float128 * | +| (_Float128,_Float128,_Float128 *,_Float128 *,int) | | __kernel_sincosf128 | 3 | _Float128 * | +| (_Float128,_Float128,_Float128 *,_Float128 *,int) | | __kernel_sincosf128 | 4 | int | +| (_Float128,_Float128,_Float128) | | __f32fmaf128 | 0 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f32fmaf128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f32fmaf128 | 2 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f64fmaf128 | 0 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f64fmaf128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f64fmaf128 | 2 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f64xfmaf128 | 0 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f64xfmaf128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128) | | __f64xfmaf128 | 2 | _Float128 | +| (_Float128,_Float128,_Float128) | | __fmaf128 | 0 | _Float128 | +| (_Float128,_Float128,_Float128) | | __fmaf128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128) | | __fmaf128 | 2 | _Float128 | +| (_Float128,_Float128,_Float128,int) | | __lgamma_productf128 | 0 | _Float128 | +| (_Float128,_Float128,_Float128,int) | | __lgamma_productf128 | 1 | _Float128 | +| (_Float128,_Float128,_Float128,int) | | __lgamma_productf128 | 2 | _Float128 | +| (_Float128,_Float128,_Float128,int) | | __lgamma_productf128 | 3 | int | +| (_Float128,_Float128,int *) | | __remquof128 | 0 | _Float128 | +| (_Float128,_Float128,int *) | | __remquof128 | 1 | _Float128 | +| (_Float128,_Float128,int *) | | __remquof128 | 2 | int * | +| (_Float128,_Float128,int) | | __kernel_sinf128 | 0 | _Float128 | +| (_Float128,_Float128,int) | | __kernel_sinf128 | 1 | _Float128 | +| (_Float128,_Float128,int) | | __kernel_sinf128 | 2 | int | +| (_Float128,_Float128,int) | | __kernel_tanf128 | 0 | _Float128 | +| (_Float128,_Float128,int) | | __kernel_tanf128 | 1 | _Float128 | +| (_Float128,_Float128,int) | | __kernel_tanf128 | 2 | int | +| (_Float128,_Float128,int,_Float128 *) | | __gamma_productf128 | 0 | _Float128 | +| (_Float128,_Float128,int,_Float128 *) | | __gamma_productf128 | 1 | _Float128 | +| (_Float128,_Float128,int,_Float128 *) | | __gamma_productf128 | 2 | int | +| (_Float128,_Float128,int,_Float128 *) | | __gamma_productf128 | 3 | _Float128 * | +| (_Float128,__float128) | | __ieee754_sqrtf128 | 0 | _Float128 | +| (_Float128,__float128) | | __ieee754_sqrtf128 | 1 | __float128 | +| (_Float128,int *) | | __frexpf128 | 0 | _Float128 | +| (_Float128,int *) | | __frexpf128 | 1 | int * | +| (_Float128,int *) | | __ieee754_gammaf128_r | 0 | _Float128 | +| (_Float128,int *) | | __ieee754_gammaf128_r | 1 | int * | +| (_Float128,int *) | | __ieee754_lgammaf128_r | 0 | _Float128 | +| (_Float128,int *) | | __ieee754_lgammaf128_r | 1 | int * | +| (_Float128,int *) | | __lgamma_negf128 | 0 | _Float128 | +| (_Float128,int *) | | __lgamma_negf128 | 1 | int * | +| (_Float128,int *) | | __lgammaf128_r | 0 | _Float128 | +| (_Float128,int *) | | __lgammaf128_r | 1 | int * | +| (_Float128,int) | | __ldexpf128 | 0 | _Float128 | +| (_Float128,int) | | __ldexpf128 | 1 | int | +| (_Float128,int) | | __scalbnf128 | 0 | _Float128 | +| (_Float128,int) | | __scalbnf128 | 1 | int | +| (_Float128,int,unsigned int) | | __fromfpf128 | 0 | _Float128 | +| (_Float128,int,unsigned int) | | __fromfpf128 | 1 | int | +| (_Float128,int,unsigned int) | | __fromfpf128 | 2 | unsigned int | +| (_Float128,int,unsigned int) | | __fromfpxf128 | 0 | _Float128 | +| (_Float128,int,unsigned int) | | __fromfpxf128 | 1 | int | +| (_Float128,int,unsigned int) | | __fromfpxf128 | 2 | unsigned int | +| (_Float128,int,unsigned int) | | __ufromfpf128 | 0 | _Float128 | +| (_Float128,int,unsigned int) | | __ufromfpf128 | 1 | int | +| (_Float128,int,unsigned int) | | __ufromfpf128 | 2 | unsigned int | +| (_Float128,int,unsigned int) | | __ufromfpxf128 | 0 | _Float128 | +| (_Float128,int,unsigned int) | | __ufromfpxf128 | 1 | int | +| (_Float128,int,unsigned int) | | __ufromfpxf128 | 2 | unsigned int | +| (_Float128,long double) | | __expm1f128 | 0 | _Float128 | +| (_Float128,long double) | | __expm1f128 | 1 | long double | +| (_Float128,long long) | | __compoundnf128 | 0 | _Float128 | +| (_Float128,long long) | | __compoundnf128 | 1 | long long | +| (_Float128,long long) | | __pownf128 | 0 | _Float128 | +| (_Float128,long long) | | __pownf128 | 1 | long long | +| (_Float128,long long) | | __rootnf128 | 0 | _Float128 | +| (_Float128,long long) | | __rootnf128 | 1 | long long | +| (_Float128,long) | | __scalblnf128 | 0 | _Float128 | +| (_Float128,long) | | __scalblnf128 | 1 | long | +| (_Float128,long) | | __w_scalblnf128 | 0 | _Float128 | +| (_Float128,long) | | __w_scalblnf128 | 1 | long | +| (_IO_ITER) | | _IO_iter_file | 0 | _IO_ITER | +| (_IO_ITER) | | _IO_iter_next | 0 | _IO_ITER | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 0 | _IO_codecvt * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 1 | __mbstate_t * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 2 | const char * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 3 | const char * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 4 | const char ** | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 5 | wchar_t * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 6 | wchar_t * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,const char **,wchar_t *,wchar_t *,wchar_t **) | | __libio_codecvt_in | 7 | wchar_t ** | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t) | | __libio_codecvt_length | 0 | _IO_codecvt * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t) | | __libio_codecvt_length | 1 | __mbstate_t * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t) | | __libio_codecvt_length | 2 | const char * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t) | | __libio_codecvt_length | 3 | const char * | +| (_IO_codecvt *,__mbstate_t *,const char *,const char *,size_t) | | __libio_codecvt_length | 4 | size_t | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 0 | _IO_codecvt * | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 1 | __mbstate_t * | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 2 | const wchar_t * | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 3 | const wchar_t * | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 4 | const wchar_t ** | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 5 | char * | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 6 | char * | +| (_IO_codecvt *,__mbstate_t *,const wchar_t *,const wchar_t *,const wchar_t **,char *,char *,char **) | | __libio_codecvt_out | 7 | char ** | +| (_IO_cookie_file *,int,void *,cookie_io_functions_t) | | _IO_cookie_init | 0 | _IO_cookie_file * | +| (_IO_cookie_file *,int,void *,cookie_io_functions_t) | | _IO_cookie_init | 1 | int | +| (_IO_cookie_file *,int,void *,cookie_io_functions_t) | | _IO_cookie_init | 2 | void * | +| (_IO_cookie_file *,int,void *,cookie_io_functions_t) | | _IO_cookie_init | 3 | cookie_io_functions_t | +| (_IO_marker *) | | _IO_marker_delta | 0 | _IO_marker * | +| (_IO_marker *) | | _IO_wmarker_delta | 0 | _IO_marker * | +| (_IO_marker *,FILE *) | | _IO_init_marker | 0 | _IO_marker * | +| (_IO_marker *,FILE *) | | _IO_init_marker | 1 | FILE * | +| (_IO_marker *,FILE *) | | _IO_init_wmarker | 0 | _IO_marker * | +| (_IO_marker *,FILE *) | | _IO_init_wmarker | 1 | FILE * | +| (_IO_marker *,_IO_marker *) | | _IO_marker_difference | 0 | _IO_marker * | +| (_IO_marker *,_IO_marker *) | | _IO_marker_difference | 1 | _IO_marker * | +| (_IO_strfile *,_IO_strfile_ *,char *,size_t,char *) | | _IO_str_init_static_internal | 0 | _IO_strfile * | +| (_IO_strfile *,_IO_strfile_ *,char *,size_t,char *) | | _IO_str_init_static_internal | 1 | _IO_strfile_ * | +| (_IO_strfile *,_IO_strfile_ *,char *,size_t,char *) | | _IO_str_init_static_internal | 2 | char * | +| (_IO_strfile *,_IO_strfile_ *,char *,size_t,char *) | | _IO_str_init_static_internal | 3 | size_t | +| (_IO_strfile *,_IO_strfile_ *,char *,size_t,char *) | | _IO_str_init_static_internal | 4 | char * | +| (_IO_strfile *,char *,int,char *) | | _IO_str_init_static | 0 | _IO_strfile * | +| (_IO_strfile *,char *,int,char *) | | _IO_str_init_static | 1 | char * | +| (_IO_strfile *,char *,int,char *) | | _IO_str_init_static | 2 | int | +| (_IO_strfile *,char *,int,char *) | | _IO_str_init_static | 3 | char * | +| (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 0 | _IO_strfile * | +| (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 1 | const char * | +| (_IO_strfile *,const char *,int) | | _IO_str_init_readonly | 2 | int | +| (__dev_t) | | __gnu_dev_major | 0 | __dev_t | +| (__dev_t) | | __gnu_dev_minor | 0 | __dev_t | +| (__dev_t) | | gnu_dev_major | 0 | __dev_t | +| (__dev_t) | | gnu_dev_minor | 0 | __dev_t | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ascii_internal | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ascii | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2 | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs2reverse | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4 | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_ucs4le | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_internal_utf8 | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2_internal | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs2reverse_internal | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4_internal | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_ucs4le_internal | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | __gconv_transform_utf8_internal | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 2 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 3 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 4 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 5 | size_t * | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 6 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char **,const unsigned char *,unsigned char **,size_t *,int,int) | | gconv | 7 | int | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 0 | __gconv_step * | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 1 | __gconv_step_data * | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 2 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 3 | const unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 4 | const unsigned char * | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 5 | unsigned char ** | +| (__gconv_step *,__gconv_step_data *,const unsigned char *,const unsigned char **,const unsigned char *,unsigned char **,size_t *) | | __gconv_transliterate | 6 | size_t * | +| (__gconv_step *,size_t) | | __gconv_close_transform | 0 | __gconv_step * | +| (__gconv_step *,size_t) | | __gconv_close_transform | 1 | size_t | +| (__gconv_step *,unsigned char) | | __gconv_btwoc_ascii | 0 | __gconv_step * | +| (__gconv_step *,unsigned char) | | __gconv_btwoc_ascii | 1 | unsigned char | +| (__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *) | | __gconv | 0 | __gconv_t | +| (__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *) | | __gconv | 1 | const unsigned char ** | +| (__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *) | | __gconv | 2 | const unsigned char * | +| (__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *) | | __gconv | 3 | unsigned char ** | +| (__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *) | | __gconv | 4 | unsigned char * | +| (__gconv_t,const unsigned char **,const unsigned char *,unsigned char **,unsigned char *,size_t *) | | __gconv | 5 | size_t * | +| (__gid_t,gid_t,group *,char *,size_t,group **) | | __getgrgid_r | 0 | __gid_t | +| (__gid_t,gid_t,group *,char *,size_t,group **) | | __getgrgid_r | 1 | gid_t | +| (__gid_t,gid_t,group *,char *,size_t,group **) | | __getgrgid_r | 2 | group * | +| (__gid_t,gid_t,group *,char *,size_t,group **) | | __getgrgid_r | 3 | char * | +| (__gid_t,gid_t,group *,char *,size_t,group **) | | __getgrgid_r | 4 | size_t | +| (__gid_t,gid_t,group *,char *,size_t,group **) | | __getgrgid_r | 5 | group ** | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_compat_getgrgid_r | 0 | __gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_compat_getgrgid_r | 1 | gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_compat_getgrgid_r | 2 | group * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_compat_getgrgid_r | 3 | char * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_compat_getgrgid_r | 4 | size_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_compat_getgrgid_r | 5 | int * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_db_getgrgid_r | 0 | __gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_db_getgrgid_r | 1 | gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_db_getgrgid_r | 2 | group * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_db_getgrgid_r | 3 | char * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_db_getgrgid_r | 4 | size_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_db_getgrgid_r | 5 | int * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_files_getgrgid_r | 0 | __gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_files_getgrgid_r | 1 | gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_files_getgrgid_r | 2 | group * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_files_getgrgid_r | 3 | char * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_files_getgrgid_r | 4 | size_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_files_getgrgid_r | 5 | int * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_hesiod_getgrgid_r | 0 | __gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_hesiod_getgrgid_r | 1 | gid_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_hesiod_getgrgid_r | 2 | group * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_hesiod_getgrgid_r | 3 | char * | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_hesiod_getgrgid_r | 4 | size_t | +| (__gid_t,gid_t,group *,char *,size_t,int *) | | _nss_hesiod_getgrgid_r | 5 | int * | +| (__netgrent *,char *,size_t,int *) | | _nss_db_getnetgrent_r | 0 | __netgrent * | +| (__netgrent *,char *,size_t,int *) | | _nss_db_getnetgrent_r | 1 | char * | +| (__netgrent *,char *,size_t,int *) | | _nss_db_getnetgrent_r | 2 | size_t | +| (__netgrent *,char *,size_t,int *) | | _nss_db_getnetgrent_r | 3 | int * | +| (__netgrent *,char *,size_t,int *) | | _nss_files_getnetgrent_r | 0 | __netgrent * | +| (__netgrent *,char *,size_t,int *) | | _nss_files_getnetgrent_r | 1 | char * | +| (__netgrent *,char *,size_t,int *) | | _nss_files_getnetgrent_r | 2 | size_t | +| (__netgrent *,char *,size_t,int *) | | _nss_files_getnetgrent_r | 3 | int * | +| (__printf_buffer *,char) | | __printf_buffer_putc_1 | 0 | __printf_buffer * | +| (__printf_buffer *,char) | | __printf_buffer_putc_1 | 1 | char | +| (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 0 | __printf_buffer * | +| (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 1 | char | +| (__printf_buffer *,char,size_t) | | __printf_buffer_pad_1 | 2 | size_t | +| (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 0 | __printf_buffer * | +| (__printf_buffer *,const char *) | | __printf_buffer_puts_1 | 1 | const char * | +| (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 0 | __printf_buffer * | +| (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 1 | const char * | +| (__printf_buffer *,const char *,size_t) | | __printf_buffer_write | 2 | size_t | +| (__printf_buffer *,const char *,va_list,unsigned int) | | __printf_buffer | 0 | __printf_buffer * | +| (__printf_buffer *,const char *,va_list,unsigned int) | | __printf_buffer | 1 | const char * | +| (__printf_buffer *,const char *,va_list,unsigned int) | | __printf_buffer | 2 | va_list | +| (__printf_buffer *,const char *,va_list,unsigned int) | | __printf_buffer | 3 | unsigned int | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fp_l_buffer | 0 | __printf_buffer * | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fp_l_buffer | 1 | locale_t | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fp_l_buffer | 2 | const printf_info * | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fp_l_buffer | 3 | const void *const * | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fphex_l_buffer | 0 | __printf_buffer * | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fphex_l_buffer | 1 | locale_t | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fphex_l_buffer | 2 | const printf_info * | +| (__printf_buffer *,locale_t,const printf_info *,const void *const *) | | __printf_fphex_l_buffer | 3 | const void *const * | +| (__printf_buffer_as_file *) | | __printf_buffer_as_file_terminate | 0 | __printf_buffer_as_file * | +| (__printf_buffer_as_file *,__printf_buffer *) | | __printf_buffer_as_file_init | 0 | __printf_buffer_as_file * | +| (__printf_buffer_as_file *,__printf_buffer *) | | __printf_buffer_as_file_init | 1 | __printf_buffer * | +| (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 0 | __printf_buffer_snprintf * | +| (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 1 | char * | +| (__printf_buffer_snprintf *,char *,size_t) | | __printf_buffer_snprintf_init | 2 | size_t | +| (__printf_buffer_to_file *,FILE *) | | __printf_buffer_to_file_init | 0 | __printf_buffer_to_file * | +| (__printf_buffer_to_file *,FILE *) | | __printf_buffer_to_file_init | 1 | FILE * | +| (__res_state *) | | __resolv_context_get_override | 0 | __res_state * | +| (__res_state *,file_change_detection *) | | __resolv_conf_load | 0 | __res_state * | +| (__res_state *,file_change_detection *) | | __resolv_conf_load | 1 | file_change_detection * | +| (__res_state *,resolv_conf *) | | __resolv_conf_attach | 0 | __res_state * | +| (__res_state *,resolv_conf *) | | __resolv_conf_attach | 1 | resolv_conf * | +| (__sigset_t *,int) | | __sigaddset_compat | 0 | __sigset_t * | +| (__sigset_t *,int) | | __sigaddset_compat | 1 | int | +| (__sigset_t *,int) | | __sigdelset_compat | 0 | __sigset_t * | +| (__sigset_t *,int) | | __sigdelset_compat | 1 | int | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_compat_getpwuid_r | 0 | __uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_compat_getpwuid_r | 1 | uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_compat_getpwuid_r | 2 | passwd * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_compat_getpwuid_r | 3 | char * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_compat_getpwuid_r | 4 | size_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_compat_getpwuid_r | 5 | int * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_db_getpwuid_r | 0 | __uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_db_getpwuid_r | 1 | uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_db_getpwuid_r | 2 | passwd * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_db_getpwuid_r | 3 | char * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_db_getpwuid_r | 4 | size_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_db_getpwuid_r | 5 | int * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_files_getpwuid_r | 0 | __uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_files_getpwuid_r | 1 | uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_files_getpwuid_r | 2 | passwd * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_files_getpwuid_r | 3 | char * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_files_getpwuid_r | 4 | size_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_files_getpwuid_r | 5 | int * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwuid_r | 0 | __uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwuid_r | 1 | uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwuid_r | 2 | passwd * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwuid_r | 3 | char * | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwuid_r | 4 | size_t | +| (__uid_t,uid_t,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwuid_r | 5 | int * | +| (__uid_t,uid_t,passwd *,char *,size_t,passwd **) | | __getpwuid_r | 0 | __uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,passwd **) | | __getpwuid_r | 1 | uid_t | +| (__uid_t,uid_t,passwd *,char *,size_t,passwd **) | | __getpwuid_r | 2 | passwd * | +| (__uid_t,uid_t,passwd *,char *,size_t,passwd **) | | __getpwuid_r | 3 | char * | +| (__uid_t,uid_t,passwd *,char *,size_t,passwd **) | | __getpwuid_r | 4 | size_t | +| (__uid_t,uid_t,passwd *,char *,size_t,passwd **) | | __getpwuid_r | 5 | passwd ** | +| (__uint32_t,uint32_t) | | __arc4random_uniform | 0 | __uint32_t | +| (__uint32_t,uint32_t) | | __arc4random_uniform | 1 | uint32_t | +| (__wprintf_buffer *,const wchar_t *) | | __wprintf_buffer_puts_1 | 0 | __wprintf_buffer * | +| (__wprintf_buffer *,const wchar_t *) | | __wprintf_buffer_puts_1 | 1 | const wchar_t * | +| (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 0 | __wprintf_buffer * | +| (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 1 | const wchar_t * | +| (__wprintf_buffer *,const wchar_t *,size_t) | | __wprintf_buffer_write | 2 | size_t | +| (__wprintf_buffer *,const wchar_t *,va_list,unsigned int) | | __wprintf_buffer | 0 | __wprintf_buffer * | +| (__wprintf_buffer *,const wchar_t *,va_list,unsigned int) | | __wprintf_buffer | 1 | const wchar_t * | +| (__wprintf_buffer *,const wchar_t *,va_list,unsigned int) | | __wprintf_buffer | 2 | va_list | +| (__wprintf_buffer *,const wchar_t *,va_list,unsigned int) | | __wprintf_buffer | 3 | unsigned int | +| (__wprintf_buffer *,wchar_t) | | __wprintf_buffer_putc_1 | 0 | __wprintf_buffer * | +| (__wprintf_buffer *,wchar_t) | | __wprintf_buffer_putc_1 | 1 | wchar_t | +| (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 0 | __wprintf_buffer * | +| (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 1 | wchar_t | +| (__wprintf_buffer *,wchar_t,size_t) | | __wprintf_buffer_pad_1 | 2 | size_t | +| (__wprintf_buffer_as_file *) | | __wprintf_buffer_as_file_terminate | 0 | __wprintf_buffer_as_file * | +| (__wprintf_buffer_as_file *,__wprintf_buffer *) | | __wprintf_buffer_as_file_init | 0 | __wprintf_buffer_as_file * | +| (__wprintf_buffer_as_file *,__wprintf_buffer *) | | __wprintf_buffer_as_file_init | 1 | __wprintf_buffer * | +| (__wprintf_buffer_to_file *,FILE *) | | __wprintf_buffer_to_file_init | 0 | __wprintf_buffer_to_file * | +| (__wprintf_buffer_to_file *,FILE *) | | __wprintf_buffer_to_file_init | 1 | FILE * | +| (_pthread_cleanup_buffer *,..(*)(..),void *) | | __pthread_cleanup_push | 0 | _pthread_cleanup_buffer * | +| (_pthread_cleanup_buffer *,..(*)(..),void *) | | __pthread_cleanup_push | 1 | ..(*)(..) | +| (_pthread_cleanup_buffer *,..(*)(..),void *) | | __pthread_cleanup_push | 2 | void * | +| (_pthread_cleanup_buffer *,..(*)(..),void *) | | _pthread_cleanup_push_defer | 0 | _pthread_cleanup_buffer * | +| (_pthread_cleanup_buffer *,..(*)(..),void *) | | _pthread_cleanup_push_defer | 1 | ..(*)(..) | +| (_pthread_cleanup_buffer *,..(*)(..),void *) | | _pthread_cleanup_push_defer | 2 | void * | | (action **,e_action,symbol *,char *) | | Action_add | 0 | action ** | | (action **,e_action,symbol *,char *) | | Action_add | 1 | e_action | | (action **,e_action,symbol *,char *) | | Action_add | 2 | symbol * | @@ -25247,6 +31859,34 @@ getSignatureParameterName | (acttab *,int,int) | | acttab_action | 0 | acttab * | | (acttab *,int,int) | | acttab_action | 1 | int | | (acttab *,int,int) | | acttab_action | 2 | int | +| (addrinfo *) | | freeaddrinfo | 0 | addrinfo * | +| (addrinfo *,int) | | support_format_addrinfo | 0 | addrinfo * | +| (addrinfo *,int) | | support_format_addrinfo | 1 | int | +| (aiocb *) | | __aio_read | 0 | aiocb * | +| (aiocb *) | | __aio_return | 0 | aiocb * | +| (aiocb *) | | __aio_write | 0 | aiocb * | +| (aiocb_union *,int) | | __aio_enqueue_request | 0 | aiocb_union * | +| (aiocb_union *,int) | | __aio_enqueue_request | 1 | int | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 0 | aliasent * | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 1 | aliasent *__restrict__ | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 2 | char * | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 3 | char *__restrict__ | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 4 | size_t | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 5 | aliasent ** | +| (aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasent_r | 6 | aliasent **__restrict__ | +| (aliasent *,char *,size_t,int *) | | _nss_files_getaliasent_r | 0 | aliasent * | +| (aliasent *,char *,size_t,int *) | | _nss_files_getaliasent_r | 1 | char * | +| (aliasent *,char *,size_t,int *) | | _nss_files_getaliasent_r | 2 | size_t | +| (aliasent *,char *,size_t,int *) | | _nss_files_getaliasent_r | 3 | int * | +| (alloc_buffer *,size_t,size_t,size_t) | | __libc_alloc_buffer_alloc_array | 0 | alloc_buffer * | +| (alloc_buffer *,size_t,size_t,size_t) | | __libc_alloc_buffer_alloc_array | 1 | size_t | +| (alloc_buffer *,size_t,size_t,size_t) | | __libc_alloc_buffer_alloc_array | 2 | size_t | +| (alloc_buffer *,size_t,size_t,size_t) | | __libc_alloc_buffer_alloc_array | 3 | size_t | +| (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 0 | alloc_buffer | +| (alloc_buffer,const char *) | | __libc_alloc_buffer_copy_string | 1 | const char * | +| (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 0 | alloc_buffer | +| (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 1 | const void * | +| (alloc_buffer,const void *,size_t) | | __libc_alloc_buffer_copy_bytes | 2 | size_t | | (alpn_proto_buf *,const alpn_spec *) | | Curl_alpn_to_proto_buf | 0 | alpn_proto_buf * | | (alpn_proto_buf *,const alpn_spec *) | | Curl_alpn_to_proto_buf | 1 | const alpn_spec * | | (alpn_proto_buf *,const alpn_spec *) | | Curl_alpn_to_proto_str | 0 | alpn_proto_buf * | @@ -25254,6 +31894,23 @@ getSignatureParameterName | (altsvcinfo **) | | Curl_altsvc_cleanup | 0 | altsvcinfo ** | | (altsvcinfo *,const long) | | Curl_altsvc_ctrl | 0 | altsvcinfo * | | (altsvcinfo *,const long) | | Curl_altsvc_ctrl | 1 | const long | +| (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 0 | argp_fmtstream * | +| (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 1 | argp_fmtstream_t | +| (argp_fmtstream *,argp_fmtstream_t,size_t) | | __argp_fmtstream_ensure | 2 | size_t | +| (argp_fmtstream_t) | | __argp_fmtstream_point | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,const char *) | | __argp_fmtstream_puts | 1 | const char * | +| (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 1 | const char * | +| (argp_fmtstream_t,const char *,size_t) | | __argp_fmtstream_write | 2 | size_t | +| (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,int) | | __argp_fmtstream_putc | 1 | int | +| (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_lmargin | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_lmargin | 1 | size_t | +| (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_rmargin | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_rmargin | 1 | size_t | +| (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_wmargin | 0 | argp_fmtstream_t | +| (argp_fmtstream_t,size_t) | | __argp_fmtstream_set_wmargin | 1 | size_t | | (brotli_alloc_func,brotli_free_func,void *) | | BrotliCreateManagedDictionary | 0 | brotli_alloc_func | | (brotli_alloc_func,brotli_free_func,void *) | | BrotliCreateManagedDictionary | 1 | brotli_free_func | | (brotli_alloc_func,brotli_free_func,void *) | | BrotliCreateManagedDictionary | 2 | void * | @@ -25358,15 +32015,45 @@ getSignatureParameterName | (chachapoly_ctx *,unsigned int *,unsigned int,const unsigned char *,unsigned int) | | chachapoly_get_length | 2 | unsigned int | | (chachapoly_ctx *,unsigned int *,unsigned int,const unsigned char *,unsigned int) | | chachapoly_get_length | 3 | const unsigned char * | | (chachapoly_ctx *,unsigned int *,unsigned int,const unsigned char *,unsigned int) | | chachapoly_get_length | 4 | unsigned int | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 0 | char8_t * | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 1 | char8_t *__restrict__ | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 2 | const char * | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 3 | const char *__restrict__ | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 4 | size_t | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 5 | mbstate_t * | +| (char8_t *,char8_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc8 | 6 | mbstate_t *__restrict__ | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 0 | char16_t * | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 1 | char16_t *__restrict__ | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 2 | const char * | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 3 | const char *__restrict__ | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 4 | size_t | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 5 | mbstate_t * | +| (char16_t *,char16_t *__restrict__,const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrtoc16 | 6 | mbstate_t *__restrict__ | | (char *) | | SRP_VBASE_new | 0 | char * | +| (char *) | | _IO_gets | 0 | char * | +| (char *) | | __mktemp | 0 | char * | +| (char *) | | __nis_default_group | 0 | char * | +| (char *) | | __nis_default_owner | 0 | char * | +| (char *) | | __nis_default_ttl | 0 | char * | +| (char *) | | __xpg_basename | 0 | char * | +| (char *) | | ctermid | 0 | char * | +| (char *) | | cuserid | 0 | char * | | (char *) | | defossilize | 0 | char * | +| (char *) | | des_setparity | 0 | char * | +| (char *) | | dirname | 0 | char * | +| (char *) | | getwd | 0 | char * | | (char *) | | make_uppercase | 0 | char * | +| (char *) | | mkdtemp | 0 | char * | | (char *) | | next_item | 0 | char * | +| (char *) | | strfry | 0 | char * | | (char *) | CStringT | CStringT | 0 | char * | | (char **) | | Curl_str_newline | 0 | char ** | | (char **) | | Curl_str_singlespace | 0 | char ** | | (char **) | | OCSP_accept_responses_new | 0 | char ** | +| (char **) | | __nss_valid_list_field | 0 | char ** | +| (char **) | | __tunables_init | 0 | char ** | | (char **) | | sqlite3_free_table | 0 | char ** | +| (char ***) | | _dl_next_ld_env_entry | 0 | char *** | | (char **,Curl_str *,const size_t) | | Curl_str_quotedword | 0 | char ** | | (char **,Curl_str *,const size_t) | | Curl_str_quotedword | 1 | Curl_str * | | (char **,Curl_str *,const size_t) | | Curl_str_quotedword | 2 | const size_t | @@ -25379,16 +32066,188 @@ getSignatureParameterName | (char **,Curl_str *,const size_t,char) | | Curl_str_until | 3 | char | | (char **,URLGlob *) | | glob_next_url | 0 | char ** | | (char **,URLGlob *) | | glob_next_url | 1 | URLGlob * | +| (char **,__netgrent *,char *,size_t,int *) | | _nss_netgroup_parseline | 0 | char ** | +| (char **,__netgrent *,char *,size_t,int *) | | _nss_netgroup_parseline | 1 | __netgrent * | +| (char **,__netgrent *,char *,size_t,int *) | | _nss_netgroup_parseline | 2 | char * | +| (char **,__netgrent *,char *,size_t,int *) | | _nss_netgroup_parseline | 3 | size_t | +| (char **,__netgrent *,char *,size_t,int *) | | _nss_netgroup_parseline | 4 | int * | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 0 | char ** | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 1 | char ** | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 2 | char ** | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 3 | __netgrent * | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 4 | char * | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 5 | size_t | +| (char **,char **,char **,__netgrent *,char *,size_t,int *) | | __internal_getnetgrent_r | 6 | int * | +| (char **,char **,ib_request *,dir_binding *) | | __follow_path | 0 | char ** | +| (char **,char **,ib_request *,dir_binding *) | | __follow_path | 1 | char ** | +| (char **,char **,ib_request *,dir_binding *) | | __follow_path | 2 | ib_request * | +| (char **,char **,ib_request *,dir_binding *) | | __follow_path | 3 | dir_binding * | +| (char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__) | | getsubopt | 0 | char ** | +| (char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__) | | getsubopt | 1 | char **__restrict__ | +| (char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__) | | getsubopt | 2 | char *const * | +| (char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__) | | getsubopt | 3 | char *const *__restrict__ | +| (char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__) | | getsubopt | 4 | char ** | +| (char **,char **__restrict__,char *const *,char *const *__restrict__,char **,char **__restrict__) | | getsubopt | 5 | char **__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 0 | char ** | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 1 | char **__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 2 | int | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 3 | const char * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 4 | const char *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 5 | const char * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 6 | const char *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 7 | const char * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 8 | const char *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 9 | int * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rexec | 10 | int *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 0 | char ** | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 1 | char **__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 2 | int | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 3 | const char * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 4 | const char *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 5 | const char * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 6 | const char *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 7 | const char * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 8 | const char *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 9 | int * | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 10 | int *__restrict__ | +| (char **,char **__restrict__,int,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rexec_af | 11 | sa_family_t | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__) | | getline | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__) | | getline | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__) | | getline | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__) | | getline | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__) | | getline | 4 | FILE * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__) | | getline | 5 | FILE *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__) | | argz_delete | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__) | | argz_delete | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__) | | argz_delete | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__) | | argz_delete | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__) | | argz_delete | 4 | char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__) | | argz_delete | 5 | char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 4 | char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 5 | char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 6 | const char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,char *,char *__restrict__,const char *,const char *__restrict__) | | __argz_insert | 7 | const char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__) | | __argz_add | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__) | | __argz_add | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__) | | __argz_add | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__) | | __argz_add | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__) | | __argz_add | 4 | const char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__) | | __argz_add | 5 | const char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 4 | const char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 5 | const char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 6 | const char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 7 | const char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 8 | unsigned int * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,unsigned int *,unsigned int *__restrict__) | | __argz_replace | 9 | unsigned int *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 4 | const char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 5 | const char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,int) | | __argz_add_sep | 6 | int | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 0 | char ** | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 1 | char **__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 2 | size_t * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 3 | size_t *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 4 | const char * | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 5 | const char *__restrict__ | +| (char **,char **__restrict__,size_t *,size_t *__restrict__,const char *,const char *__restrict__,size_t) | | __argz_append | 6 | size_t | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 0 | char ** | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 1 | char **__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 2 | u_short | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 3 | unsigned short | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 4 | const char * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 5 | const char *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 6 | const char * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 7 | const char *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 8 | const char * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 9 | const char *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 10 | int * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__) | | rcmd | 11 | int *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 0 | char ** | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 1 | char **__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 2 | u_short | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 3 | unsigned short | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 4 | const char * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 5 | const char *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 6 | const char * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 7 | const char *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 8 | const char * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 9 | const char *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 10 | int * | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 11 | int *__restrict__ | +| (char **,char **__restrict__,u_short,unsigned short,const char *,const char *__restrict__,const char *,const char *__restrict__,const char *,const char *__restrict__,int *,int *__restrict__,sa_family_t) | | rcmd_af | 12 | sa_family_t | | (char **,char *,URLGlob *) | | glob_match_url | 0 | char ** | | (char **,char *,URLGlob *) | | glob_match_url | 1 | char * | | (char **,char *,URLGlob *) | | glob_match_url | 2 | URLGlob * | | (char **,char) | | Curl_str_single | 0 | char ** | | (char **,char) | | Curl_str_single | 1 | char | +| (char **,char) | | __old_strsep_1c | 0 | char ** | +| (char **,char) | | __old_strsep_1c | 1 | char | +| (char **,char,char) | | __old_strsep_2c | 0 | char ** | +| (char **,char,char) | | __old_strsep_2c | 1 | char | +| (char **,char,char) | | __old_strsep_2c | 2 | char | +| (char **,char,char,char) | | __old_strsep_3c | 0 | char ** | +| (char **,char,char,char) | | __old_strsep_3c | 1 | char | +| (char **,char,char,char) | | __old_strsep_3c | 2 | char | +| (char **,char,char,char) | | __old_strsep_3c | 3 | char | | (char **,const char *) | | Curl_setstropt | 0 | char ** | | (char **,const char *) | | Curl_setstropt | 1 | const char * | +| (char **,const char *) | | __strsep | 0 | char ** | +| (char **,const char *) | | __strsep | 1 | const char * | +| (char **,const char *,...) | | ___asprintf | 0 | char ** | +| (char **,const char *,...) | | ___asprintf | 1 | const char * | +| (char **,const char *,...) | | ___asprintf | 2 | ... | +| (char **,const char *,va_list) | | __vasprintf | 0 | char ** | +| (char **,const char *,va_list) | | __vasprintf | 1 | const char * | +| (char **,const char *,va_list) | | __vasprintf | 2 | va_list | +| (char **,const char *,va_list,unsigned int) | | __vasprintf_internal | 0 | char ** | +| (char **,const char *,va_list,unsigned int) | | __vasprintf_internal | 1 | const char * | +| (char **,const char *,va_list,unsigned int) | | __vasprintf_internal | 2 | va_list | +| (char **,const char *,va_list,unsigned int) | | __vasprintf_internal | 3 | unsigned int | +| (char **,int) | | addrsort | 0 | char ** | +| (char **,int) | | addrsort | 1 | int | +| (char **,int,const char *,...) | | ___asprintf_chk | 0 | char ** | +| (char **,int,const char *,...) | | ___asprintf_chk | 1 | int | +| (char **,int,const char *,...) | | ___asprintf_chk | 2 | const char * | +| (char **,int,const char *,...) | | ___asprintf_chk | 3 | ... | +| (char **,int,const char *,__gnuc_va_list,va_list) | | __vasprintf_chk | 0 | char ** | +| (char **,int,const char *,__gnuc_va_list,va_list) | | __vasprintf_chk | 1 | int | +| (char **,int,const char *,__gnuc_va_list,va_list) | | __vasprintf_chk | 2 | const char * | +| (char **,int,const char *,__gnuc_va_list,va_list) | | __vasprintf_chk | 3 | __gnuc_va_list | +| (char **,int,const char *,__gnuc_va_list,va_list) | | __vasprintf_chk | 4 | va_list | | (char **,s_options *,FILE *) | | OptInit | 0 | char ** | | (char **,s_options *,FILE *) | | OptInit | 1 | s_options * | | (char **,s_options *,FILE *) | | OptInit | 2 | FILE * | +| (char **,size_t *) | | envz_strip | 0 | char ** | +| (char **,size_t *) | | envz_strip | 1 | size_t * | +| (char **,size_t *,FILE *) | | __getline | 0 | char ** | +| (char **,size_t *,FILE *) | | __getline | 1 | size_t * | +| (char **,size_t *,FILE *) | | __getline | 2 | FILE * | +| (char **,size_t *,FILE *) | | xgetline | 0 | char ** | +| (char **,size_t *,FILE *) | | xgetline | 1 | size_t * | +| (char **,size_t *,FILE *) | | xgetline | 2 | FILE * | +| (char **,size_t *,const char *) | | envz_remove | 0 | char ** | +| (char **,size_t *,const char *) | | envz_remove | 1 | size_t * | +| (char **,size_t *,const char *) | | envz_remove | 2 | const char * | +| (char **,size_t *,const char *,const char *) | | envz_add | 0 | char ** | +| (char **,size_t *,const char *,const char *) | | envz_add | 1 | size_t * | +| (char **,size_t *,const char *,const char *) | | envz_add | 2 | const char * | +| (char **,size_t *,const char *,const char *) | | envz_add | 3 | const char * | +| (char **,size_t *,const char *,size_t,int) | | envz_merge | 0 | char ** | +| (char **,size_t *,const char *,size_t,int) | | envz_merge | 1 | size_t * | +| (char **,size_t *,const char *,size_t,int) | | envz_merge | 2 | const char * | +| (char **,size_t *,const char *,size_t,int) | | envz_merge | 3 | size_t | +| (char **,size_t *,const char *,size_t,int) | | envz_merge | 4 | int | | (char **,size_t *,size_t) | | Curl_str_number | 0 | char ** | | (char **,size_t *,size_t) | | Curl_str_number | 1 | size_t * | | (char **,size_t *,size_t) | | Curl_str_number | 2 | size_t | @@ -25398,6 +32257,105 @@ getSignatureParameterName | (char *,FILE *,FILE *,int *) | | tplt_xfer | 1 | FILE * | | (char *,FILE *,FILE *,int *) | | tplt_xfer | 2 | FILE * | | (char *,FILE *,FILE *,int *) | | tplt_xfer | 3 | int * | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 0 | char * | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 1 | __STRING2_COPY_ARR2 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 2 | __STRING2_COPY_ARR3 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 3 | __STRING2_COPY_ARR4 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 4 | __STRING2_COPY_ARR5 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 5 | __STRING2_COPY_ARR6 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 6 | __STRING2_COPY_ARR7 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 7 | __STRING2_COPY_ARR8 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_stpcpy_small | 8 | size_t | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 0 | char * | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 1 | __STRING2_COPY_ARR2 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 2 | __STRING2_COPY_ARR3 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 3 | __STRING2_COPY_ARR4 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 4 | __STRING2_COPY_ARR5 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 5 | __STRING2_COPY_ARR6 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 6 | __STRING2_COPY_ARR7 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 7 | __STRING2_COPY_ARR8 | +| (char *,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_strcpy_small | 8 | size_t | +| (char *,char16_t,mbstate_t *) | | c16rtomb | 0 | char * | +| (char *,char16_t,mbstate_t *) | | c16rtomb | 1 | char16_t | +| (char *,char16_t,mbstate_t *) | | c16rtomb | 2 | mbstate_t * | +| (char *,char *) | | passwd2des_internal | 0 | char * | +| (char *,char *) | | passwd2des_internal | 1 | char * | +| (char *,char *) | | xdecrypt | 0 | char * | +| (char *,char *) | | xdecrypt | 1 | char * | +| (char *,char *) | | xencrypt | 0 | char * | +| (char *,char *) | | xencrypt | 1 | char * | +| (char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__) | | c8rtomb | 0 | char * | +| (char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__) | | c8rtomb | 1 | char *__restrict__ | +| (char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__) | | c8rtomb | 2 | char8_t | +| (char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__) | | c8rtomb | 3 | mbstate_t * | +| (char *,char *__restrict__,char8_t,mbstate_t *,mbstate_t *__restrict__) | | c8rtomb | 4 | mbstate_t *__restrict__ | +| (char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__) | | __strtok_r | 0 | char * | +| (char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__) | | __strtok_r | 1 | char *__restrict__ | +| (char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__) | | __strtok_r | 2 | const char * | +| (char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__) | | __strtok_r | 3 | const char *__restrict__ | +| (char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__) | | __strtok_r | 4 | char ** | +| (char *,char *__restrict__,const char *,const char *__restrict__,char **,char **__restrict__) | | __strtok_r | 5 | char **__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 0 | char * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 1 | char *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 2 | const wchar_t ** | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 3 | const wchar_t **__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 4 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 5 | __mbstate_t *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsrtombs | 6 | mbstate_t * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 0 | char * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 1 | char *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 2 | const wchar_t ** | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 3 | const wchar_t **__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 4 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 5 | mbstate_t * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 6 | mbstate_t *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsrtombs_chk | 7 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 0 | char * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 1 | char *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 2 | const wchar_t ** | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 3 | const wchar_t **__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 4 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 5 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 6 | __mbstate_t *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __wcsnrtombs | 7 | mbstate_t * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 0 | char * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 1 | char *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 2 | const wchar_t ** | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 3 | const wchar_t **__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 4 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 5 | size_t | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 6 | mbstate_t * | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 7 | mbstate_t *__restrict__ | +| (char *,char *__restrict__,const wchar_t **,const wchar_t **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __wcsnrtombs_chk | 8 | size_t | +| (char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | wcstombs | 0 | char * | +| (char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | wcstombs | 1 | char *__restrict__ | +| (char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | wcstombs | 2 | const wchar_t * | +| (char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | wcstombs | 3 | const wchar_t *__restrict__ | +| (char *,char *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | wcstombs | 4 | size_t | +| (char *,char *__restrict__,int,FILE *,FILE *__restrict__) | | __fgets_unlocked | 0 | char * | +| (char *,char *__restrict__,int,FILE *,FILE *__restrict__) | | __fgets_unlocked | 1 | char *__restrict__ | +| (char *,char *__restrict__,int,FILE *,FILE *__restrict__) | | __fgets_unlocked | 2 | int | +| (char *,char *__restrict__,int,FILE *,FILE *__restrict__) | | __fgets_unlocked | 3 | FILE * | +| (char *,char *__restrict__,int,FILE *,FILE *__restrict__) | | __fgets_unlocked | 4 | FILE *__restrict__ | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 0 | char * | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 1 | char *__restrict__ | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 2 | size_t | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 3 | const char * | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 4 | const char *__restrict__ | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 5 | const tm * | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 6 | const tm *__restrict__ | +| (char *,char *__restrict__,size_t,const char *,const char *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __strftime_l | 7 | locale_t | +| (char *,char,char **) | | __old_strtok_r_1c | 0 | char * | +| (char *,char,char **) | | __old_strtok_r_1c | 1 | char | +| (char *,char,char **) | | __old_strtok_r_1c | 2 | char ** | +| (char *,const char *) | | xstrdup | 0 | char * | +| (char *,const char *) | | xstrdup | 1 | const char * | +| (char *,const char **,const char **,const char **,const char **,const char **) | | _nl_explode_name | 0 | char * | +| (char *,const char **,const char **,const char **,const char **,const char **) | | _nl_explode_name | 1 | const char ** | +| (char *,const char **,const char **,const char **,const char **,const char **) | | _nl_explode_name | 2 | const char ** | +| (char *,const char **,const char **,const char **,const char **,const char **) | | _nl_explode_name | 3 | const char ** | +| (char *,const char **,const char **,const char **,const char **,const char **) | | _nl_explode_name | 4 | const char ** | +| (char *,const char **,const char **,const char **,const char **,const char **) | | _nl_explode_name | 5 | const char ** | | (char *,const char *,char **) | | uv__strtok | 0 | char * | | (char *,const char *,char **) | | uv__strtok | 1 | const char * | | (char *,const char *,char **) | | uv__strtok | 2 | char ** | @@ -25413,6 +32371,12 @@ getSignatureParameterName | (char *,const char *,int,const char *) | | PEM_dek_info | 1 | const char * | | (char *,const char *,int,const char *) | | PEM_dek_info | 2 | int | | (char *,const char *,int,const char *) | | PEM_dek_info | 3 | const char * | +| (char *,const char *,int,link_map *,int,Lmid_t) | | _dl_new_object | 0 | char * | +| (char *,const char *,int,link_map *,int,Lmid_t) | | _dl_new_object | 1 | const char * | +| (char *,const char *,int,link_map *,int,Lmid_t) | | _dl_new_object | 2 | int | +| (char *,const char *,int,link_map *,int,Lmid_t) | | _dl_new_object | 3 | link_map * | +| (char *,const char *,int,link_map *,int,Lmid_t) | | _dl_new_object | 4 | int | +| (char *,const char *,int,link_map *,int,Lmid_t) | | _dl_new_object | 5 | Lmid_t | | (char *,const char *,size_t) | | Curl_strntolower | 0 | char * | | (char *,const char *,size_t) | | Curl_strntolower | 1 | const char * | | (char *,const char *,size_t) | | Curl_strntolower | 2 | size_t | @@ -25428,13 +32392,34 @@ getSignatureParameterName | (char *,const char *,size_t) | | uv__strscpy | 0 | char * | | (char *,const char *,size_t) | | uv__strscpy | 1 | const char * | | (char *,const char *,size_t) | | uv__strscpy | 2 | size_t | +| (char *,const char *,size_t,locale_t) | | __strxfrm_l | 0 | char * | +| (char *,const char *,size_t,locale_t) | | __strxfrm_l | 1 | const char * | +| (char *,const char *,size_t,locale_t) | | __strxfrm_l | 2 | size_t | +| (char *,const char *,size_t,locale_t) | | __strxfrm_l | 3 | locale_t | +| (char *,const char *,va_list) | | __vsprintf | 0 | char * | +| (char *,const char *,va_list) | | __vsprintf | 1 | const char * | +| (char *,const char *,va_list) | | __vsprintf | 2 | va_list | | (char *,const char *,va_list) | | curl_mvsprintf | 0 | char * | | (char *,const char *,va_list) | | curl_mvsprintf | 1 | const char * | | (char *,const char *,va_list) | | curl_mvsprintf | 2 | va_list | +| (char *,const wchar_t *,size_t,size_t) | | __wcstombs_chk | 0 | char * | +| (char *,const wchar_t *,size_t,size_t) | | __wcstombs_chk | 1 | const wchar_t * | +| (char *,const wchar_t *,size_t,size_t) | | __wcstombs_chk | 2 | size_t | +| (char *,const wchar_t *,size_t,size_t) | | __wcstombs_chk | 3 | size_t | +| (char *,des_block *) | | key_decryptsession | 0 | char * | +| (char *,des_block *) | | key_decryptsession | 1 | des_block * | +| (char *,des_block *) | | key_encryptsession | 0 | char * | +| (char *,des_block *) | | key_encryptsession | 1 | des_block * | | (char *,int) | | Curl_str2addr | 0 | char * | | (char *,int) | | Curl_str2addr | 1 | int | | (char *,int) | | PEM_proc_type | 0 | char * | | (char *,int) | | PEM_proc_type | 1 | int | +| (char *,int,FILE *) | | _IO_fgets | 0 | char * | +| (char *,int,FILE *) | | _IO_fgets | 1 | int | +| (char *,int,FILE *) | | _IO_fgets | 2 | FILE * | +| (char *,int,FILE *) | | xfgets | 0 | char * | +| (char *,int,FILE *) | | xfgets | 1 | int | +| (char *,int,FILE *) | | xfgets | 2 | FILE * | | (char *,int,const ASN1_OBJECT *) | | i2t_ASN1_OBJECT | 0 | char * | | (char *,int,const ASN1_OBJECT *) | | i2t_ASN1_OBJECT | 1 | int | | (char *,int,const ASN1_OBJECT *) | | i2t_ASN1_OBJECT | 2 | const ASN1_OBJECT * | @@ -25454,6 +32439,19 @@ getSignatureParameterName | (char *,int,int,void *) | | ossl_pw_pvk_password | 1 | int | | (char *,int,int,void *) | | ossl_pw_pvk_password | 2 | int | | (char *,int,int,void *) | | ossl_pw_pvk_password | 3 | void * | +| (char *,int,size_t,const char *,va_list) | | ___vsprintf_chk | 0 | char * | +| (char *,int,size_t,const char *,va_list) | | ___vsprintf_chk | 1 | int | +| (char *,int,size_t,const char *,va_list) | | ___vsprintf_chk | 2 | size_t | +| (char *,int,size_t,const char *,va_list) | | ___vsprintf_chk | 3 | const char * | +| (char *,int,size_t,const char *,va_list) | | ___vsprintf_chk | 4 | va_list | +| (char *,netobj *,des_block *) | | key_decryptsession_pk | 0 | char * | +| (char *,netobj *,des_block *) | | key_decryptsession_pk | 1 | netobj * | +| (char *,netobj *,des_block *) | | key_decryptsession_pk | 2 | des_block * | +| (char *,netobj *,des_block *) | | key_encryptsession_pk | 0 | char * | +| (char *,netobj *,des_block *) | | key_encryptsession_pk | 1 | netobj * | +| (char *,netobj *,des_block *) | | key_encryptsession_pk | 2 | des_block * | +| (char *,random_data *) | | __setstate_r | 0 | char * | +| (char *,random_data *) | | __setstate_r | 1 | random_data * | | (char *,size_t *) | | uv_cwd | 0 | char * | | (char *,size_t *) | | uv_cwd | 1 | size_t * | | (char *,size_t *) | | uv_exepath | 0 | char * | @@ -25466,20 +32464,99 @@ getSignatureParameterName | (char *,size_t *) | | uv_os_tmpdir | 1 | size_t * | | (char *,size_t) | | RAND_file_name | 0 | char * | | (char *,size_t) | | RAND_file_name | 1 | size_t | +| (char *,size_t) | | __getcwd | 0 | char * | +| (char *,size_t) | | __getcwd | 1 | size_t | +| (char *,size_t) | | __gets_chk | 0 | char * | +| (char *,size_t) | | __gets_chk | 1 | size_t | +| (char *,size_t) | | __getwd_chk | 0 | char * | +| (char *,size_t) | | __getwd_chk | 1 | size_t | | (char *,size_t) | | plain_method | 0 | char * | | (char *,size_t) | | plain_method | 1 | size_t | | (char *,size_t,const char *,...) | | BIO_snprintf | 0 | char * | | (char *,size_t,const char *,...) | | BIO_snprintf | 1 | size_t | | (char *,size_t,const char *,...) | | BIO_snprintf | 2 | const char * | | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | ... | +| (char *,size_t,const char *,...) | | __strfmon | 0 | char * | +| (char *,size_t,const char *,...) | | __strfmon | 1 | size_t | +| (char *,size_t,const char *,...) | | __strfmon | 2 | const char * | +| (char *,size_t,const char *,...) | | __strfmon | 3 | ... | +| (char *,size_t,const char *,_Float128) | | strfromf128 | 0 | char * | +| (char *,size_t,const char *,_Float128) | | strfromf128 | 1 | size_t | +| (char *,size_t,const char *,_Float128) | | strfromf128 | 2 | const char * | +| (char *,size_t,const char *,_Float128) | | strfromf128 | 3 | _Float128 | +| (char *,size_t,const char *,const char *,bool) | | __path_search | 0 | char * | +| (char *,size_t,const char *,const char *,bool) | | __path_search | 1 | size_t | +| (char *,size_t,const char *,const char *,bool) | | __path_search | 2 | const char * | +| (char *,size_t,const char *,const char *,bool) | | __path_search | 3 | const char * | +| (char *,size_t,const char *,const char *,bool) | | __path_search | 4 | bool | +| (char *,size_t,const char *,double) | | strfromd | 0 | char * | +| (char *,size_t,const char *,double) | | strfromd | 1 | size_t | +| (char *,size_t,const char *,double) | | strfromd | 2 | const char * | +| (char *,size_t,const char *,double) | | strfromd | 3 | double | +| (char *,size_t,const char *,float) | | strfromf | 0 | char * | +| (char *,size_t,const char *,float) | | strfromf | 1 | size_t | +| (char *,size_t,const char *,float) | | strfromf | 2 | const char * | +| (char *,size_t,const char *,float) | | strfromf | 3 | float | +| (char *,size_t,const char *,long double) | | strfroml | 0 | char * | +| (char *,size_t,const char *,long double) | | strfroml | 1 | size_t | +| (char *,size_t,const char *,long double) | | strfroml | 2 | const char * | +| (char *,size_t,const char *,long double) | | strfroml | 3 | long double | | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 0 | char * | | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 1 | size_t | | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 2 | const char * | | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 3 | va_list | +| (char *,size_t,const char *,va_list) | | ___vsnprintf | 0 | char * | +| (char *,size_t,const char *,va_list) | | ___vsnprintf | 1 | size_t | +| (char *,size_t,const char *,va_list) | | ___vsnprintf | 2 | const char * | +| (char *,size_t,const char *,va_list) | | ___vsnprintf | 3 | va_list | | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 0 | char * | | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 1 | size_t | | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 2 | const char * | | (char *,size_t,const char *,va_list) | | curl_mvsnprintf | 3 | va_list | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsnprintf_internal | 0 | char * | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsnprintf_internal | 1 | size_t | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsnprintf_internal | 2 | const char * | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsnprintf_internal | 3 | va_list | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsnprintf_internal | 4 | unsigned int | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsprintf_internal | 0 | char * | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsprintf_internal | 1 | size_t | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsprintf_internal | 2 | const char * | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsprintf_internal | 3 | va_list | +| (char *,size_t,const char *,va_list,unsigned int) | | __vsprintf_internal | 4 | unsigned int | +| (char *,size_t,int) | | __argz_stringify | 0 | char * | +| (char *,size_t,int) | | __argz_stringify | 1 | size_t | +| (char *,size_t,int) | | __argz_stringify | 2 | int | +| (char *,size_t,int,FILE *) | | __fgets_chk | 0 | char * | +| (char *,size_t,int,FILE *) | | __fgets_chk | 1 | size_t | +| (char *,size_t,int,FILE *) | | __fgets_chk | 2 | int | +| (char *,size_t,int,FILE *) | | __fgets_chk | 3 | FILE * | +| (char *,size_t,int,FILE *) | | __fgets_unlocked_chk | 0 | char * | +| (char *,size_t,int,FILE *) | | __fgets_unlocked_chk | 1 | size_t | +| (char *,size_t,int,FILE *) | | __fgets_unlocked_chk | 2 | int | +| (char *,size_t,int,FILE *) | | __fgets_unlocked_chk | 3 | FILE * | +| (char *,size_t,int,size_t,const char *,...) | | ___snprintf_chk | 0 | char * | +| (char *,size_t,int,size_t,const char *,...) | | ___snprintf_chk | 1 | size_t | +| (char *,size_t,int,size_t,const char *,...) | | ___snprintf_chk | 2 | int | +| (char *,size_t,int,size_t,const char *,...) | | ___snprintf_chk | 3 | size_t | +| (char *,size_t,int,size_t,const char *,...) | | ___snprintf_chk | 4 | const char * | +| (char *,size_t,int,size_t,const char *,...) | | ___snprintf_chk | 5 | ... | +| (char *,size_t,int,size_t,const char *,va_list) | | ___vsnprintf_chk | 0 | char * | +| (char *,size_t,int,size_t,const char *,va_list) | | ___vsnprintf_chk | 1 | size_t | +| (char *,size_t,int,size_t,const char *,va_list) | | ___vsnprintf_chk | 2 | int | +| (char *,size_t,int,size_t,const char *,va_list) | | ___vsnprintf_chk | 3 | size_t | +| (char *,size_t,int,size_t,const char *,va_list) | | ___vsnprintf_chk | 4 | const char * | +| (char *,size_t,int,size_t,const char *,va_list) | | ___vsnprintf_chk | 5 | va_list | +| (char *,size_t,locale_t,const char *,...) | | ___strfmon_l | 0 | char * | +| (char *,size_t,locale_t,const char *,...) | | ___strfmon_l | 1 | size_t | +| (char *,size_t,locale_t,const char *,...) | | ___strfmon_l | 2 | locale_t | +| (char *,size_t,locale_t,const char *,...) | | ___strfmon_l | 3 | const char * | +| (char *,size_t,locale_t,const char *,...) | | ___strfmon_l | 4 | ... | +| (char *,size_t,locale_t,const char *,va_list,unsigned int) | | __vstrfmon_l_internal | 0 | char * | +| (char *,size_t,locale_t,const char *,va_list,unsigned int) | | __vstrfmon_l_internal | 1 | size_t | +| (char *,size_t,locale_t,const char *,va_list,unsigned int) | | __vstrfmon_l_internal | 2 | locale_t | +| (char *,size_t,locale_t,const char *,va_list,unsigned int) | | __vstrfmon_l_internal | 3 | const char * | +| (char *,size_t,locale_t,const char *,va_list,unsigned int) | | __vstrfmon_l_internal | 4 | va_list | +| (char *,size_t,locale_t,const char *,va_list,unsigned int) | | __vstrfmon_l_internal | 5 | unsigned int | | (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 0 | char * | | (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 1 | size_t | | (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 2 | size_t * | @@ -25502,6 +32579,9 @@ getSignatureParameterName | (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 3 | const unsigned char * | | (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 4 | size_t | | (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 5 | const char | +| (char *,size_t,size_t) | | __getcwd_chk | 0 | char * | +| (char *,size_t,size_t) | | __getcwd_chk | 1 | size_t | +| (char *,size_t,size_t) | | __getcwd_chk | 2 | size_t | | (char *,size_t,size_t,void *) | | Curl_ftp_parselist | 0 | char * | | (char *,size_t,size_t,void *) | | Curl_ftp_parselist | 1 | size_t | | (char *,size_t,size_t,void *) | | Curl_ftp_parselist | 2 | size_t | @@ -25524,10 +32604,79 @@ getSignatureParameterName | (char *,size_t,size_t,void *) | | tool_read_cb | 3 | void * | | (char *,uint8_t) | | ossl_to_hex | 0 | char * | | (char *,uint8_t) | | ossl_to_hex | 1 | uint8_t | +| (char *,unsigned int) | | __nis_default_access | 0 | char * | +| (char *,unsigned int) | | __nis_default_access | 1 | unsigned int | | (char *,unsigned int) | | utf8_fromunicode | 0 | char * | | (char *,unsigned int) | | utf8_fromunicode | 1 | unsigned int | | (char *,unsigned int) | | uv_buf_init | 0 | char * | | (char *,unsigned int) | | uv_buf_init | 1 | unsigned int | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_etherent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_etherent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_etherent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_etherent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_etherent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_grent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_grent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_grent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_grent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_grent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_netent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_netent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_netent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_netent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_netent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_protoent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_protoent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_protoent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_protoent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_protoent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_pwent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_pwent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_pwent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_pwent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_pwent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_rpcent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_rpcent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_rpcent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_rpcent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_rpcent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_servent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_servent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_servent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_servent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_servent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_sgent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_sgent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_sgent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_sgent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_sgent | 4 | int * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_spent | 0 | char * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_spent | 1 | void * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_spent | 2 | parser_data * | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_spent | 3 | size_t | +| (char *,void *,parser_data *,size_t,int *) | | _nss_files_parse_spent | 4 | int * | +| (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 0 | char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 1 | const char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t) | | __strlcat | 2 | size_t | +| (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 0 | char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 1 | const char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t) | | __strlcpy | 2 | size_t | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcat_chk | 0 | char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcat_chk | 1 | const char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcat_chk | 2 | size_t | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcat_chk | 3 | size_t | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcpy_chk | 0 | char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcpy_chk | 1 | const char *__restrict__ | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcpy_chk | 2 | size_t | +| (char *__restrict__,const char *__restrict__,size_t,size_t) | | __strlcpy_chk | 3 | size_t | +| (char *const *,int,..(*)(..)) | | fts_open | 0 | char *const * | +| (char *const *,int,..(*)(..)) | | fts_open | 1 | int | +| (char *const *,int,..(*)(..)) | | fts_open | 2 | ..(*)(..) | +| (char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create | 0 | char *const[] | +| (char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create | 1 | char ** | +| (char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create | 2 | char **__restrict__ | +| (char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create | 3 | size_t * | +| (char *const[],char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create | 4 | size_t *__restrict__ | | (char) | | Curl_raw_tolower | 0 | char | | (char) | | Curl_raw_toupper | 0 | char | | (char) | | findshortopt | 0 | char | @@ -25538,6 +32687,22 @@ getSignatureParameterName | (char,const CStringT &) | | operator+ | 1 | const CStringT & | | (char,int) | CStringT | CStringT | 0 | char | | (char,int) | CStringT | CStringT | 1 | int | +| (char[20]) | | tmpnam | 0 | char[20] | +| (char[20]) | | tmpnam_r | 0 | char[20] | +| (char[256],const char *,const char *) | | host2netname | 0 | char[256] | +| (char[256],const char *,const char *) | | host2netname | 1 | const char * | +| (char[256],const char *,const char *) | | host2netname | 2 | const char * | +| (char[256],const uid_t,const char *) | | user2netname | 0 | char[256] | +| (char[256],const uid_t,const char *) | | user2netname | 1 | const uid_t | +| (char[256],const uid_t,const char *) | | user2netname | 2 | const char * | +| (cmsghdr *,const uint8_t *,int,int) | | inet6_option_append | 0 | cmsghdr * | +| (cmsghdr *,const uint8_t *,int,int) | | inet6_option_append | 1 | const uint8_t * | +| (cmsghdr *,const uint8_t *,int,int) | | inet6_option_append | 2 | int | +| (cmsghdr *,const uint8_t *,int,int) | | inet6_option_append | 3 | int | +| (cmsghdr *,int,int,int) | | inet6_option_alloc | 0 | cmsghdr * | +| (cmsghdr *,int,int,int) | | inet6_option_alloc | 1 | int | +| (cmsghdr *,int,int,int) | | inet6_option_alloc | 2 | int | +| (cmsghdr *,int,int,int) | | inet6_option_alloc | 3 | int | | (codetype,unsigned short *,unsigned int,code **,unsigned int *,unsigned short *) | | inflate_table | 0 | codetype | | (codetype,unsigned short *,unsigned int,code **,unsigned int *,unsigned short *) | | inflate_table | 1 | unsigned short * | | (codetype,unsigned short *,unsigned int,code **,unsigned int *,unsigned short *) | | inflate_table | 2 | unsigned int | @@ -28571,6 +35736,21 @@ getSignatureParameterName | (const YCHAR *,int,IAtlStringMgr *) | CStringT | CStringT | 0 | const YCHAR * | | (const YCHAR *,int,IAtlStringMgr *) | CStringT | CStringT | 1 | int | | (const YCHAR *,int,IAtlStringMgr *) | CStringT | CStringT | 2 | IAtlStringMgr * | +| (const _Float128 *) | | __getpayloadf128 | 0 | const _Float128 * | +| (const aiocb *) | | __aio_error | 0 | const aiocb * | +| (const aiocb *const[],int,const timespec *) | | ___aio_suspend_time64 | 0 | const aiocb *const[] | +| (const aiocb *const[],int,const timespec *) | | ___aio_suspend_time64 | 1 | int | +| (const aiocb *const[],int,const timespec *) | | ___aio_suspend_time64 | 2 | const timespec * | +| (const argp_state *,const char *,va_list,unsigned int) | | __argp_error_internal | 0 | const argp_state * | +| (const argp_state *,const char *,va_list,unsigned int) | | __argp_error_internal | 1 | const char * | +| (const argp_state *,const char *,va_list,unsigned int) | | __argp_error_internal | 2 | va_list | +| (const argp_state *,const char *,va_list,unsigned int) | | __argp_error_internal | 3 | unsigned int | +| (const argp_state *,int,int,const char *,va_list,unsigned int) | | __argp_failure_internal | 0 | const argp_state * | +| (const argp_state *,int,int,const char *,va_list,unsigned int) | | __argp_failure_internal | 1 | int | +| (const argp_state *,int,int,const char *,va_list,unsigned int) | | __argp_failure_internal | 2 | int | +| (const argp_state *,int,int,const char *,va_list,unsigned int) | | __argp_failure_internal | 3 | const char * | +| (const argp_state *,int,int,const char *,va_list,unsigned int) | | __argp_failure_internal | 4 | va_list | +| (const argp_state *,int,int,const char *,va_list,unsigned int) | | __argp_failure_internal | 5 | unsigned int | | (const bufq *) | | Curl_bufq_len | 0 | const bufq * | | (const bufref *) | | Curl_bufref_len | 0 | const bufref * | | (const bufref *) | | Curl_bufref_ptr | 0 | const bufref * | @@ -28586,23 +35766,50 @@ getSignatureParameterName | (const char *) | | UI_create_method | 0 | const char * | | (const char *) | | X509V3_parse_list | 0 | const char * | | (const char *) | | X509_LOOKUP_meth_new | 0 | const char * | +| (const char *) | | __basename | 0 | const char * | +| (const char *) | | __gconv_find_shlib | 0 | const char * | +| (const char *) | | __gettext | 0 | const char * | +| (const char *) | | __hash_string | 0 | const char * | +| (const char *) | | __nss_action_parse | 0 | const char * | +| (const char *) | | __strdup | 0 | const char * | +| (const char *) | | __textdomain | 0 | const char * | +| (const char *) | | __tzset_parse_tz | 0 | const char * | +| (const char *) | | __tzstring | 0 | const char * | | (const char *) | | a2i_IPADDRESS | 0 | const char * | | (const char *) | | a2i_IPADDRESS_NC | 0 | const char * | +| (const char *) | | a64l | 0 | const char * | +| (const char *) | | charmap_opendir | 0 | const char * | +| (const char *) | | ether_aton | 0 | const char * | +| (const char *) | | getdate | 0 | const char * | +| (const char *) | | inetstr2int | 0 | const char * | | (const char *) | | last_component | 0 | const char * | +| (const char *) | | new_glibc_hwcaps_subdirectory | 0 | const char * | | (const char *) | | opt_path_end | 0 | const char * | | (const char *) | | opt_progname | 0 | const char * | | (const char *) | | ossl_lh_strcasehash | 0 | const char * | +| (const char *) | | repertoire_read | 0 | const char * | +| (const char *) | | res_gethostbyname | 0 | const char * | +| (const char *) | | sgetsgent | 0 | const char * | +| (const char *) | | sgetspent | 0 | const char * | | (const char *) | | strhash | 0 | const char * | | (const char *) | | uc_script_byname | 0 | const char * | | (const char *) | | uv__strdup | 0 | const char * | | (const char *) | | uv_wtf8_length_as_utf16 | 0 | const char * | +| (const char *) | | xstrdup | 0 | const char * | | (const char **) | | ERR_peek_error_func | 0 | const char ** | | (const char **) | | ERR_peek_last_error_func | 0 | const char ** | +| (const char **,__locale_data *) | | _nl_parse_alt_digit | 0 | const char ** | +| (const char **,__locale_data *) | | _nl_parse_alt_digit | 1 | __locale_data * | | (const char **,char **,const char *) | | Curl_get_pathname | 0 | const char ** | | (const char **,char **,const char *) | | Curl_get_pathname | 1 | char ** | | (const char **,char **,const char *) | | Curl_get_pathname | 2 | const char * | | (const char **,const char *) | | uv__utf8_decode1 | 0 | const char ** | | (const char **,const char *) | | uv__utf8_decode1 | 1 | const char * | +| (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 0 | const char ** | +| (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 1 | const char ** | +| (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 2 | bool * | +| (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 3 | ..(*)(..) | +| (const char **,const char **,bool *,..(*)(..),void *) | | _dl_catch_error | 4 | void * | | (const char **,int *) | | ERR_get_error_line | 0 | const char ** | | (const char **,int *) | | ERR_get_error_line | 1 | int * | | (const char **,int *) | | ERR_peek_error_data | 0 | const char ** | @@ -28696,14 +35903,91 @@ getSignatureParameterName | (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 4 | const char * | | (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 5 | const char * | | (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 6 | X509_VERIFY_PARAM * | +| (const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *) | | getgrouplist | 0 | const char * | +| (const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *) | | getgrouplist | 1 | __gid_t | +| (const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *) | | getgrouplist | 2 | gid_t | +| (const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *) | | getgrouplist | 3 | __gid_t * | +| (const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *) | | getgrouplist | 4 | gid_t * | +| (const char *,__gid_t,gid_t,__gid_t *,gid_t *,int *) | | getgrouplist | 5 | int * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 0 | const char * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 1 | __gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 2 | gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 3 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 4 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 5 | __gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 6 | gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 7 | long | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_compat_initgroups_dyn | 8 | int * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 0 | const char * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 1 | __gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 2 | gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 3 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 4 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 5 | __gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 6 | gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 7 | long | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_db_initgroups_dyn | 8 | int * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 0 | const char * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 1 | __gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 2 | gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 3 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 4 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 5 | __gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 6 | gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 7 | long | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_files_initgroups_dyn | 8 | int * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 0 | const char * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 1 | __gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 2 | gid_t | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 3 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 4 | long * | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 5 | __gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 6 | gid_t ** | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 7 | long | +| (const char *,__gid_t,gid_t,long *,long *,__gid_t **,gid_t **,long,int *) | | _nss_hesiod_initgroups_dyn | 8 | int * | +| (const char *,__gnuc_va_list) | | vwarn | 0 | const char * | +| (const char *,__gnuc_va_list) | | vwarn | 1 | __gnuc_va_list | +| (const char *,__gnuc_va_list) | | vwarnx | 0 | const char * | +| (const char *,__gnuc_va_list) | | vwarnx | 1 | __gnuc_va_list | +| (const char *,__gnuc_va_list,unsigned int) | | __vwarn_internal | 0 | const char * | +| (const char *,__gnuc_va_list,unsigned int) | | __vwarn_internal | 1 | __gnuc_va_list | +| (const char *,__gnuc_va_list,unsigned int) | | __vwarn_internal | 2 | unsigned int | +| (const char *,__gnuc_va_list,unsigned int) | | __vwarnx_internal | 0 | const char * | +| (const char *,__gnuc_va_list,unsigned int) | | __vwarnx_internal | 1 | __gnuc_va_list | +| (const char *,__gnuc_va_list,unsigned int) | | __vwarnx_internal | 2 | unsigned int | +| (const char *,__netgrent *) | | __internal_setnetgrent | 0 | const char * | +| (const char *,__netgrent *) | | __internal_setnetgrent | 1 | __netgrent * | +| (const char *,__netgrent *) | | _nss_db_setnetgrent | 0 | const char * | +| (const char *,__netgrent *) | | _nss_db_setnetgrent | 1 | __netgrent * | +| (const char *,addrinfo *,int,const char *) | | check_addrinfo | 0 | const char * | +| (const char *,addrinfo *,int,const char *) | | check_addrinfo | 1 | addrinfo * | +| (const char *,addrinfo *,int,const char *) | | check_addrinfo | 2 | int | +| (const char *,addrinfo *,int,const char *) | | check_addrinfo | 3 | const char * | +| (const char *,aliasent *,char *,size_t,int *) | | _nss_files_getaliasbyname_r | 0 | const char * | +| (const char *,aliasent *,char *,size_t,int *) | | _nss_files_getaliasbyname_r | 1 | aliasent * | +| (const char *,aliasent *,char *,size_t,int *) | | _nss_files_getaliasbyname_r | 2 | char * | +| (const char *,aliasent *,char *,size_t,int *) | | _nss_files_getaliasbyname_r | 3 | size_t | +| (const char *,aliasent *,char *,size_t,int *) | | _nss_files_getaliasbyname_r | 4 | int * | | (const char *,bufref *) | | Curl_auth_create_external_message | 0 | const char * | | (const char *,bufref *) | | Curl_auth_create_external_message | 1 | bufref * | | (const char *,bufref *) | | Curl_auth_create_login_message | 0 | const char * | | (const char *,bufref *) | | Curl_auth_create_login_message | 1 | bufref * | +| (const char *,char *) | | __old_realpath | 0 | const char * | +| (const char *,char *) | | __old_realpath | 1 | char * | +| (const char *,char *) | | __realpath | 0 | const char * | +| (const char *,char *) | | __realpath | 1 | char * | | (const char *,char *) | | sha1sum_file | 0 | const char * | | (const char *,char *) | | sha1sum_file | 1 | char * | | (const char *,char *) | | sha3sum_file | 0 | const char * | | (const char *,char *) | | sha3sum_file | 1 | char * | +| (const char *,char **) | | __idna_from_dns_encoding | 0 | const char * | +| (const char *,char **) | | __idna_from_dns_encoding | 1 | char ** | +| (const char *,char **) | | __idna_to_dns_encoding | 0 | const char * | +| (const char *,char **) | | __idna_to_dns_encoding | 1 | char ** | +| (const char *,char **) | | __nss_rewrite_field | 0 | const char * | +| (const char *,char **) | | __nss_rewrite_field | 1 | char ** | +| (const char *,char **) | | _dl_strtoul | 0 | const char * | +| (const char *,char **) | | _dl_strtoul | 1 | char ** | | (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 0 | const char * | | (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 1 | char ** | | (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 2 | char ** | @@ -28721,6 +36005,24 @@ getSignatureParameterName | (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 6 | char ** | | (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 7 | char ** | | (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 8 | char ** | +| (const char *,char **,char) | | __strtod_nan | 0 | const char * | +| (const char *,char **,char) | | __strtod_nan | 1 | char ** | +| (const char *,char **,char) | | __strtod_nan | 2 | char | +| (const char *,char **,char) | | __strtof128_nan | 0 | const char * | +| (const char *,char **,char) | | __strtof128_nan | 1 | char ** | +| (const char *,char **,char) | | __strtof128_nan | 2 | char | +| (const char *,char **,char) | | __strtof_nan | 0 | const char * | +| (const char *,char **,char) | | __strtof_nan | 1 | char ** | +| (const char *,char **,char) | | __strtof_nan | 2 | char | +| (const char *,char **,char) | | __strtold_nan | 0 | const char * | +| (const char *,char **,char) | | __strtold_nan | 1 | char ** | +| (const char *,char **,char) | | __strtold_nan | 2 | char | +| (const char *,char **,int) | | __strtol | 0 | const char * | +| (const char *,char **,int) | | __strtol | 1 | char ** | +| (const char *,char **,int) | | __strtol | 2 | int | +| (const char *,char **,int) | | __strtoul | 0 | const char * | +| (const char *,char **,int) | | __strtoul | 1 | char ** | +| (const char *,char **,int) | | __strtoul | 2 | int | | (const char *,char **,int) | | idn2_to_ascii_8z | 0 | const char * | | (const char *,char **,int) | | idn2_to_ascii_8z | 1 | char ** | | (const char *,char **,int) | | idn2_to_ascii_8z | 2 | int | @@ -28745,6 +36047,13 @@ getSignatureParameterName | (const char *,char *,char *,const char **) | | Curl_auth_digest_get_pair | 1 | char * | | (const char *,char *,char *,const char **) | | Curl_auth_digest_get_pair | 2 | char * | | (const char *,char *,char *,const char **) | | Curl_auth_digest_get_pair | 3 | const char ** | +| (const char *,char *,const char *,binding *) | | _nl_find_domain | 0 | const char * | +| (const char *,char *,const char *,binding *) | | _nl_find_domain | 1 | char * | +| (const char *,char *,const char *,binding *) | | _nl_find_domain | 2 | const char * | +| (const char *,char *,const char *,binding *) | | _nl_find_domain | 3 | binding * | +| (const char *,char *,const int) | | netname2host | 0 | const char * | +| (const char *,char *,const int) | | netname2host | 1 | char * | +| (const char *,char *,const int) | | netname2host | 2 | const int | | (const char *,char *,size_t *) | | uv__search_path | 0 | const char * | | (const char *,char *,size_t *) | | uv__search_path | 1 | char * | | (const char *,char *,size_t *) | | uv__search_path | 2 | size_t * | @@ -28754,13 +36063,28 @@ getSignatureParameterName | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 0 | const char * | | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 1 | char * | | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | size_t | +| (const char *,char *,size_t) | | __libc_ns_makecanon | 0 | const char * | +| (const char *,char *,size_t) | | __libc_ns_makecanon | 1 | char * | +| (const char *,char *,size_t) | | __libc_ns_makecanon | 2 | size_t | +| (const char *,char *,size_t) | | __realpath_chk | 0 | const char * | +| (const char *,char *,size_t) | | __realpath_chk | 1 | char * | +| (const char *,char *,size_t) | | __realpath_chk | 2 | size_t | | (const char *,char *,size_t) | | getpass_r | 0 | const char * | | (const char *,char *,size_t) | | getpass_r | 1 | char * | | (const char *,char *,size_t) | | getpass_r | 2 | size_t | +| (const char *,char *,size_t) | | ns_makecanon | 0 | const char * | +| (const char *,char *,size_t) | | ns_makecanon | 1 | char * | +| (const char *,char *,size_t) | | ns_makecanon | 2 | size_t | | (const char *,char *,size_t,bool) | | Curl_is_absolute_url | 0 | const char * | | (const char *,char *,size_t,bool) | | Curl_is_absolute_url | 1 | char * | | (const char *,char *,size_t,bool) | | Curl_is_absolute_url | 2 | size_t | | (const char *,char *,size_t,bool) | | Curl_is_absolute_url | 3 | bool | +| (const char *,char *,size_t,char **,int *,int *) | | _nss_dns_getcanonname_r | 0 | const char * | +| (const char *,char *,size_t,char **,int *,int *) | | _nss_dns_getcanonname_r | 1 | char * | +| (const char *,char *,size_t,char **,int *,int *) | | _nss_dns_getcanonname_r | 2 | size_t | +| (const char *,char *,size_t,char **,int *,int *) | | _nss_dns_getcanonname_r | 3 | char ** | +| (const char *,char *,size_t,char **,int *,int *) | | _nss_dns_getcanonname_r | 4 | int * | +| (const char *,char *,size_t,char **,int *,int *) | | _nss_dns_getcanonname_r | 5 | int * | | (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 0 | const char * | | (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 1 | const ASN1_INTEGER * | | (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 2 | stack_st_CONF_VALUE ** | @@ -28787,14 +36111,52 @@ getSignatureParameterName | (const char *,const char *) | | DES_crypt | 1 | const char * | | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | const char * | | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | const char * | +| (const char *,const char *) | | __bind_textdomain_codeset | 0 | const char * | +| (const char *,const char *) | | __bind_textdomain_codeset | 1 | const char * | +| (const char *,const char *) | | __bindtextdomain | 0 | const char * | +| (const char *,const char *) | | __bindtextdomain | 1 | const char * | +| (const char *,const char *) | | __dgettext | 0 | const char * | +| (const char *,const char *) | | __dgettext | 1 | const char * | +| (const char *,const char *) | | __gconv_compare_alias | 0 | const char * | +| (const char *,const char *) | | __gconv_compare_alias | 1 | const char * | +| (const char *,const char *) | | __strcasestr | 0 | const char * | +| (const char *,const char *) | | __strcasestr | 1 | const char * | +| (const char *,const char *) | | __strcspn_generic | 0 | const char * | +| (const char *,const char *) | | __strcspn_generic | 1 | const char * | +| (const char *,const char *) | | __strcspn_sse42 | 0 | const char * | +| (const char *,const char *) | | __strcspn_sse42 | 1 | const char * | +| (const char *,const char *) | | __strpbrk_generic | 0 | const char * | +| (const char *,const char *) | | __strpbrk_generic | 1 | const char * | +| (const char *,const char *) | | __strpbrk_sse42 | 0 | const char * | +| (const char *,const char *) | | __strpbrk_sse42 | 1 | const char * | +| (const char *,const char *) | | __strspn_generic | 0 | const char * | +| (const char *,const char *) | | __strspn_generic | 1 | const char * | +| (const char *,const char *) | | __strspn_sse42 | 0 | const char * | +| (const char *,const char *) | | __strspn_sse42 | 1 | const char * | +| (const char *,const char *) | | __strstr_generic | 0 | const char * | +| (const char *,const char *) | | __strstr_generic | 1 | const char * | +| (const char *,const char *) | | __strverscmp | 0 | const char * | +| (const char *,const char *) | | __strverscmp | 1 | const char * | +| (const char *,const char *) | | _dl_cache_libcmp | 0 | const char * | +| (const char *,const char *) | | _dl_cache_libcmp | 1 | const char * | +| (const char *,const char *) | | advance | 0 | const char * | +| (const char *,const char *) | | advance | 1 | const char * | | (const char *,const char *) | | c_strcasecmp | 0 | const char * | | (const char *,const char *) | | c_strcasecmp | 1 | const char * | +| (const char *,const char *) | | charmap_aliases | 0 | const char * | +| (const char *,const char *) | | charmap_aliases | 1 | const char * | +| (const char *,const char *) | | charmap_open | 0 | const char * | +| (const char *,const char *) | | charmap_open | 1 | const char * | +| (const char *,const char *) | | chroot_canon | 0 | const char * | +| (const char *,const char *) | | chroot_canon | 1 | const char * | | (const char *,const char *) | | get_passwd | 0 | const char * | | (const char *,const char *) | | get_passwd | 1 | const char * | | (const char *,const char *) | | gzopen | 0 | const char * | | (const char *,const char *) | | gzopen | 1 | const char * | | (const char *,const char *) | | gzopen64 | 0 | const char * | | (const char *,const char *) | | gzopen64 | 1 | const char * | +| (const char *,const char *) | | iconv_open | 0 | const char * | +| (const char *,const char *) | | iconv_open | 1 | const char * | | (const char *,const char *) | | openssl_fopen | 0 | const char * | | (const char *,const char *) | | openssl_fopen | 1 | const char * | | (const char *,const char *) | | ossl_pem_check_suffix | 0 | const char * | @@ -28805,6 +36167,15 @@ getSignatureParameterName | (const char *,const char *) | | sqlite3_strglob | 1 | const char * | | (const char *,const char *) | | sqlite3_stricmp | 0 | const char * | | (const char *,const char *) | | sqlite3_stricmp | 1 | const char * | +| (const char *,const char *) | | step | 0 | const char * | +| (const char *,const char *) | | step | 1 | const char * | +| (const char *,const char *) | | tempnam | 0 | const char * | +| (const char *,const char *) | | tempnam | 1 | const char * | +| (const char *,const char *) | | xfopen | 0 | const char * | +| (const char *,const char *) | | xfopen | 1 | const char * | +| (const char *,const char **,const char **) | | ruserpass | 0 | const char * | +| (const char *,const char **,const char **) | | ruserpass | 1 | const char ** | +| (const char *,const char **,const char **) | | ruserpass | 2 | const char ** | | (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 0 | const char * | | (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 1 | const char * | | (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 2 | BIGNUM ** | @@ -28861,9 +36232,29 @@ getSignatureParameterName | (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 11 | const char * | | (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 12 | PKCS12_create_cb * | | (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 13 | void * | +| (const char *,const char *,FILE *) | | xfreopen | 0 | const char * | +| (const char *,const char *,FILE *) | | xfreopen | 1 | const char * | +| (const char *,const char *,FILE *) | | xfreopen | 2 | FILE * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_find_transform | 0 | const char * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_find_transform | 1 | const char * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_find_transform | 2 | __gconv_step ** | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_find_transform | 3 | size_t * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_find_transform | 4 | int | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_lookup_cache | 0 | const char * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_lookup_cache | 1 | const char * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_lookup_cache | 2 | __gconv_step ** | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_lookup_cache | 3 | size_t * | +| (const char *,const char *,__gconv_step **,size_t *,int) | | __gconv_lookup_cache | 4 | int | +| (const char *,const char *,__gnuc_va_list,va_list) | | _IO_vsscanf | 0 | const char * | +| (const char *,const char *,__gnuc_va_list,va_list) | | _IO_vsscanf | 1 | const char * | +| (const char *,const char *,__gnuc_va_list,va_list) | | _IO_vsscanf | 2 | __gnuc_va_list | +| (const char *,const char *,__gnuc_va_list,va_list) | | _IO_vsscanf | 3 | va_list | | (const char *,const char *,char *) | | DES_fcrypt | 0 | const char * | | (const char *,const char *,char *) | | DES_fcrypt | 1 | const char * | | (const char *,const char *,char *) | | DES_fcrypt | 2 | char * | +| (const char *,const char *,char **) | | yp_master | 0 | const char * | +| (const char *,const char *,char **) | | yp_master | 1 | const char * | +| (const char *,const char *,char **) | | yp_master | 2 | char ** | | (const char *,const char *,char **,char **) | | app_passwd | 0 | const char * | | (const char *,const char *,char **,char **) | | app_passwd | 1 | const char * | | (const char *,const char *,char **,char **) | | app_passwd | 2 | char ** | @@ -28882,6 +36273,12 @@ getSignatureParameterName | (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 5 | const char * | | (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 6 | OSSL_LIB_CTX * | | (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 7 | const char * | +| (const char *,const char *,char **,int *,char **,int *) | | yp_first | 0 | const char * | +| (const char *,const char *,char **,int *,char **,int *) | | yp_first | 1 | const char * | +| (const char *,const char *,char **,int *,char **,int *) | | yp_first | 2 | char ** | +| (const char *,const char *,char **,int *,char **,int *) | | yp_first | 3 | int * | +| (const char *,const char *,char **,int *,char **,int *) | | yp_first | 4 | char ** | +| (const char *,const char *,char **,int *,char **,int *) | | yp_first | 5 | int * | | (const char *,const char *,char **,int) | | idn2_register_ul | 0 | const char * | | (const char *,const char *,char **,int) | | idn2_register_ul | 1 | const char * | | (const char *,const char *,char **,int) | | idn2_register_ul | 2 | char ** | @@ -28924,6 +36321,10 @@ getSignatureParameterName | (const char *,const char *,const char *,bufref *) | | Curl_auth_create_plain_message | 1 | const char * | | (const char *,const char *,const char *,bufref *) | | Curl_auth_create_plain_message | 2 | const char * | | (const char *,const char *,const char *,bufref *) | | Curl_auth_create_plain_message | 3 | bufref * | +| (const char *,const char *,const char *,const char *) | | __correctly_grouped_prefixmb | 0 | const char * | +| (const char *,const char *,const char *,const char *) | | __correctly_grouped_prefixmb | 1 | const char * | +| (const char *,const char *,const char *,const char *) | | __correctly_grouped_prefixmb | 2 | const char * | +| (const char *,const char *,const char *,const char *) | | __correctly_grouped_prefixmb | 3 | const char * | | (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 0 | const char * | | (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 1 | const char * | | (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 2 | const char * | @@ -28948,17 +36349,97 @@ getSignatureParameterName | (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 8 | void * | | (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 9 | int | | (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 10 | int | +| (const char *,const char *,const char *,const int,char **,int *) | | yp_match | 0 | const char * | +| (const char *,const char *,const char *,const int,char **,int *) | | yp_match | 1 | const char * | +| (const char *,const char *,const char *,const int,char **,int *) | | yp_match | 2 | const char * | +| (const char *,const char *,const char *,const int,char **,int *) | | yp_match | 3 | const int | +| (const char *,const char *,const char *,const int,char **,int *) | | yp_match | 4 | char ** | +| (const char *,const char *,const char *,const int,char **,int *) | | yp_match | 5 | int * | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 0 | const char * | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 1 | const char * | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 2 | const char * | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 3 | const int | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 4 | char ** | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 5 | int * | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 6 | char ** | +| (const char *,const char *,const char *,const int,char **,int *,char **,int *) | | yp_next | 7 | int * | | (const char *,const char *,const char *,iconv_ilseq_handler) | | str_iconveh | 0 | const char * | | (const char *,const char *,const char *,iconv_ilseq_handler) | | str_iconveh | 1 | const char * | | (const char *,const char *,const char *,iconv_ilseq_handler) | | str_iconveh | 2 | const char * | | (const char *,const char *,const char *,iconv_ilseq_handler) | | str_iconveh | 3 | iconv_ilseq_handler | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 0 | const char * | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 1 | const char * | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 2 | const char * | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 3 | int * | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 4 | unsigned int * | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 5 | char ** | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 6 | int | +| (const char *,const char *,const char *,int *,unsigned int *,char **,int,stat *) | | process_file | 7 | stat * | | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 0 | const char * | | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 1 | const char * | | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 2 | const char * | | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 3 | int | +| (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 0 | const char * | +| (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 1 | const char * | +| (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 2 | const char * | +| (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 3 | int | +| (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 4 | unsigned long | +| (const char *,const char *,const char *,int,unsigned long,int) | | __dcigettext | 5 | int | +| (const char *,const char *,const char *,unsigned long) | | __dngettext | 0 | const char * | +| (const char *,const char *,const char *,unsigned long) | | __dngettext | 1 | const char * | +| (const char *,const char *,const char *,unsigned long) | | __dngettext | 2 | const char * | +| (const char *,const char *,const char *,unsigned long) | | __dngettext | 3 | unsigned long | +| (const char *,const char *,const char *,unsigned long,int) | | __dcngettext | 0 | const char * | +| (const char *,const char *,const char *,unsigned long,int) | | __dcngettext | 1 | const char * | +| (const char *,const char *,const char *,unsigned long,int) | | __dcngettext | 2 | const char * | +| (const char *,const char *,const char *,unsigned long,int) | | __dcngettext | 3 | unsigned long | +| (const char *,const char *,const char *,unsigned long,int) | | __dcngettext | 4 | int | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 0 | const char * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 1 | const char * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 2 | db_lookup_function | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 3 | nss_action ** | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 4 | nss_action_list * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 5 | nss_action ** | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 6 | nss_action_list * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 7 | nss_action ** | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 8 | nss_action_list * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 9 | int * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 10 | int | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 11 | void * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 12 | char * | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 13 | size_t | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 14 | void ** | +| (const char *,const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int *,int,void *,char *,size_t,void **,int *) | | __nss_getent_r | 15 | int * | +| (const char *,const char *,int *) | | __gconv_compare_alias_cache | 0 | const char * | +| (const char *,const char *,int *) | | __gconv_compare_alias_cache | 1 | const char * | +| (const char *,const char *,int *) | | __gconv_compare_alias_cache | 2 | int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 0 | const char * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 1 | const char * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 2 | int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 3 | unsigned int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 4 | char ** | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 5 | void * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf32_file | 6 | size_t | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 0 | const char * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 1 | const char * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 2 | int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 3 | unsigned int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 4 | char ** | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 5 | void * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf64_file | 6 | size_t | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 0 | const char * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 1 | const char * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 2 | int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 3 | unsigned int * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 4 | char ** | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 5 | void * | +| (const char *,const char *,int *,unsigned int *,char **,void *,size_t) | | process_elf_file | 6 | size_t | | (const char *,const char *,int) | | CRYPTO_strdup | 0 | const char * | | (const char *,const char *,int) | | CRYPTO_strdup | 1 | const char * | | (const char *,const char *,int) | | CRYPTO_strdup | 2 | int | +| (const char *,const char *,int) | | __dcgettext | 0 | const char * | +| (const char *,const char *,int) | | __dcgettext | 1 | const char * | +| (const char *,const char *,int) | | __dcgettext | 2 | int | | (const char *,const char *,int) | | sqlite3_strnicmp | 0 | const char * | | (const char *,const char *,int) | | sqlite3_strnicmp | 1 | const char * | | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | int | @@ -28969,18 +36450,346 @@ getSignatureParameterName | (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 4 | int | | (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 5 | int | | (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 6 | BIO_ADDRINFO ** | +| (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 0 | const char * | +| (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 1 | const char * | +| (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 2 | int | +| (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 3 | int | +| (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 4 | unsigned char * | +| (const char *,const char *,int,int,unsigned char *,int) | | ___res_querydomain | 5 | int | +| (const char *,const char *,locale_t) | | __strcasecmp_l_nonascii | 0 | const char * | +| (const char *,const char *,locale_t) | | __strcasecmp_l_nonascii | 1 | const char * | +| (const char *,const char *,locale_t) | | __strcasecmp_l_nonascii | 2 | locale_t | +| (const char *,const char *,locale_t) | | __strcoll_l | 0 | const char * | +| (const char *,const char *,locale_t) | | __strcoll_l | 1 | const char * | +| (const char *,const char *,locale_t) | | __strcoll_l | 2 | locale_t | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyname_r | 0 | const char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyname_r | 1 | const char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyname_r | 2 | servent * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyname_r | 3 | char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyname_r | 4 | size_t | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyname_r | 5 | int * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyname_r | 0 | const char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyname_r | 1 | const char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyname_r | 2 | servent * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyname_r | 3 | char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyname_r | 4 | size_t | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyname_r | 5 | int * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyname_r | 0 | const char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyname_r | 1 | const char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyname_r | 2 | servent * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyname_r | 3 | char * | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyname_r | 4 | size_t | +| (const char *,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyname_r | 5 | int * | +| (const char *,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyname_r | 0 | const char * | +| (const char *,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyname_r | 1 | const char * | +| (const char *,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyname_r | 2 | servent * | +| (const char *,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyname_r | 3 | char * | +| (const char *,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyname_r | 4 | size_t | +| (const char *,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyname_r | 5 | servent ** | +| (const char *,const char *,size_t *) | | __wcsmbs_getfct | 0 | const char * | +| (const char *,const char *,size_t *) | | __wcsmbs_getfct | 1 | const char * | +| (const char *,const char *,size_t *) | | __wcsmbs_getfct | 2 | size_t * | +| (const char *,const char *,size_t *,size_t *) | | _dl_important_hwcaps | 0 | const char * | +| (const char *,const char *,size_t *,size_t *) | | _dl_important_hwcaps | 1 | const char * | +| (const char *,const char *,size_t *,size_t *) | | _dl_important_hwcaps | 2 | size_t * | +| (const char *,const char *,size_t *,size_t *) | | _dl_important_hwcaps | 3 | size_t * | | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 0 | const char * | | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 1 | const char * | | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | size_t | | (const char *,const char *,size_t) | | c_strncasecmp | 0 | const char * | | (const char *,const char *,size_t) | | c_strncasecmp | 1 | const char * | | (const char *,const char *,size_t) | | c_strncasecmp | 2 | size_t | +| (const char *,const char *,size_t,locale_t) | | __strncasecmp_l_nonascii | 0 | const char * | +| (const char *,const char *,size_t,locale_t) | | __strncasecmp_l_nonascii | 1 | const char * | +| (const char *,const char *,size_t,locale_t) | | __strncasecmp_l_nonascii | 2 | size_t | +| (const char *,const char *,size_t,locale_t) | | __strncasecmp_l_nonascii | 3 | locale_t | | (const char *,const char *,stack_st_CONF_VALUE **) | | X509V3_add_value | 0 | const char * | | (const char *,const char *,stack_st_CONF_VALUE **) | | X509V3_add_value | 1 | const char * | | (const char *,const char *,stack_st_CONF_VALUE **) | | X509V3_add_value | 2 | stack_st_CONF_VALUE ** | +| (const char *,const char *,tm *,void *,locale_t) | | __strptime_internal | 0 | const char * | +| (const char *,const char *,tm *,void *,locale_t) | | __strptime_internal | 1 | const char * | +| (const char *,const char *,tm *,void *,locale_t) | | __strptime_internal | 2 | tm * | +| (const char *,const char *,tm *,void *,locale_t) | | __strptime_internal | 3 | void * | +| (const char *,const char *,tm *,void *,locale_t) | | __strptime_internal | 4 | locale_t | | (const char *,const char *,unsigned int) | | sqlite3_strlike | 0 | const char * | | (const char *,const char *,unsigned int) | | sqlite3_strlike | 1 | const char * | | (const char *,const char *,unsigned int) | | sqlite3_strlike | 2 | unsigned int | +| (const char *,const char *,unsigned long) | | __ngettext | 0 | const char * | +| (const char *,const char *,unsigned long) | | __ngettext | 1 | const char * | +| (const char *,const char *,unsigned long) | | __ngettext | 2 | unsigned long | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vscanf | 0 | const char * | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vscanf | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vscanf | 2 | __gnuc_va_list | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vscanf | 3 | va_list | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vscanf | 0 | const char * | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vscanf | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vscanf | 2 | __gnuc_va_list | +| (const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vscanf | 3 | va_list | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 0 | const char * | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 2 | aliasent * | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 3 | aliasent *__restrict__ | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 4 | char * | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 5 | char *__restrict__ | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 6 | size_t | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 7 | aliasent ** | +| (const char *,const char *__restrict__,aliasent *,aliasent *__restrict__,char *,char *__restrict__,size_t,aliasent **,aliasent **__restrict__) | | __getaliasbyname_r | 8 | aliasent **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtof128 | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtof128 | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtof128 | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtof128 | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtold | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtold | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtold | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__) | | strtold | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtol | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtol | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtol | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtol | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtol | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtoul | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtoul | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtoul | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtoul | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __isoc23_strtoul | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtod_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtod_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtod_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtod_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtod_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof128_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof128_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof128_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof128_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof128_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtof_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtold_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtold_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtold_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtold_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int) | | __strtold_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtol_internal | 5 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int) | | __strtoul_internal | 5 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 5 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 6 | bool | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtol_l_internal | 7 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 5 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 6 | bool | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,int,bool,locale_t) | | ____strtoul_l_internal | 7 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtod_l_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtod_l_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtod_l_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtod_l_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtod_l_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtod_l_internal | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof128_l_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof128_l_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof128_l_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof128_l_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof128_l_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof128_l_internal | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof_l_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof_l_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof_l_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof_l_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof_l_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtof_l_internal | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtold_l_internal | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtold_l_internal | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtold_l_internal | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtold_l_internal | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtold_l_internal | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | ____strtold_l_internal | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtol_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtol_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtol_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtol_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtol_l | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtol_l | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtoul_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtoul_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtoul_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtoul_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtoul_l | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __isoc23_strtoul_l | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtol_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtol_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtol_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtol_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtol_l | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtol_l | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtoul_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtoul_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtoul_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtoul_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtoul_l | 4 | int | +| (const char *,const char *__restrict__,char **,char **__restrict__,int,locale_t) | | __strtoul_l | 5 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtod_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtod_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtod_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtod_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtod_l | 4 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof128_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof128_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof128_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof128_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof128_l | 4 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtof_l | 4 | locale_t | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtold_l | 0 | const char * | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtold_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtold_l | 2 | char ** | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtold_l | 3 | char **__restrict__ | +| (const char *,const char *__restrict__,char **,char **__restrict__,locale_t) | | __strtold_l | 4 | locale_t | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__) | | freopen64 | 0 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__) | | freopen64 | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__) | | freopen64 | 2 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__) | | freopen64 | 3 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__) | | freopen64 | 4 | FILE * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,FILE *,FILE *__restrict__) | | freopen64 | 5 | FILE *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vsscanf | 0 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vsscanf | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vsscanf | 2 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vsscanf | 3 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vsscanf | 4 | __gnuc_va_list | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vsscanf | 5 | va_list | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vsscanf | 0 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vsscanf | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vsscanf | 2 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vsscanf | 3 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vsscanf | 4 | __gnuc_va_list | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vsscanf | 5 | va_list | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 0 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 2 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 3 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 4 | servent * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 5 | servent *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 6 | char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 7 | char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 8 | size_t | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 9 | servent ** | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyname_r | 10 | servent **__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *) | | strptime | 0 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *) | | strptime | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *) | | strptime | 2 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *) | | strptime | 3 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *) | | strptime | 4 | tm * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t) | | __strptime_l | 0 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t) | | __strptime_l | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t) | | __strptime_l | 2 | const char * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t) | | __strptime_l | 3 | const char *__restrict__ | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t) | | __strptime_l | 4 | tm * | +| (const char *,const char *__restrict__,const char *,const char *__restrict__,tm *,locale_t) | | __strptime_l | 5 | locale_t | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 0 | const char * | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 2 | hostent * | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 3 | hostent *__restrict__ | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 4 | char * | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 5 | char *__restrict__ | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 6 | size_t | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 7 | hostent ** | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 8 | hostent **__restrict__ | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 9 | int * | +| (const char *,const char *__restrict__,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname_r | 10 | int *__restrict__ | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 0 | const char * | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 2 | int | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 3 | char ** | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 4 | char **__restrict__ | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 5 | size_t * | +| (const char *,const char *__restrict__,int,char **,char **__restrict__,size_t *,size_t *__restrict__) | | __argz_create_sep | 6 | size_t *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 0 | const char * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 2 | int | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 3 | hostent * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 4 | hostent *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 5 | char * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 6 | char *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 7 | size_t | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 8 | hostent ** | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 9 | hostent **__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 10 | int * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyname2_r | 11 | int *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 0 | const char * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 2 | int | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 3 | hostent * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 4 | hostent *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 5 | char * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 6 | char *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 7 | size_t | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 8 | hostent ** | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 9 | hostent **__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 10 | int * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 11 | int *__restrict__ | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 12 | int32_t * | +| (const char *,const char *__restrict__,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *,char **) | | __gethostbyname3_r | 13 | char ** | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 0 | const char * | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 2 | netent * | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 3 | netent *__restrict__ | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 4 | char * | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 5 | char *__restrict__ | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 6 | size_t | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 7 | netent ** | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 8 | netent **__restrict__ | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 9 | int * | +| (const char *,const char *__restrict__,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyname_r | 10 | int *__restrict__ | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 0 | const char * | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 2 | protoent * | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 3 | protoent *__restrict__ | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 4 | char * | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 5 | char *__restrict__ | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 6 | size_t | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 7 | protoent ** | +| (const char *,const char *__restrict__,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobyname_r | 8 | protoent **__restrict__ | +| (const char *,const char *__restrict__,size_t,char **,char **__restrict__) | | __argz_extract | 0 | const char * | +| (const char *,const char *__restrict__,size_t,char **,char **__restrict__) | | __argz_extract | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,size_t,char **,char **__restrict__) | | __argz_extract | 2 | size_t | +| (const char *,const char *__restrict__,size_t,char **,char **__restrict__) | | __argz_extract | 3 | char ** | +| (const char *,const char *__restrict__,size_t,char **,char **__restrict__) | | __argz_extract | 4 | char **__restrict__ | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | __mbrlen | 0 | const char * | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | __mbrlen | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | __mbrlen | 2 | size_t | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | __mbrlen | 3 | mbstate_t * | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | __mbrlen | 4 | mbstate_t *__restrict__ | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrlen | 0 | const char * | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrlen | 1 | const char *__restrict__ | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrlen | 2 | size_t | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrlen | 3 | mbstate_t * | +| (const char *,const char *__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__) | | mbrlen | 4 | mbstate_t *__restrict__ | +| (const char *,const expression **,unsigned long *) | | __gettext_extract_plural | 0 | const char * | +| (const char *,const expression **,unsigned long *) | | __gettext_extract_plural | 1 | const expression ** | +| (const char *,const expression **,unsigned long *) | | __gettext_extract_plural | 2 | unsigned long * | | (const char *,const size_t,char **,char **,char **) | | Curl_parse_login_details | 0 | const char * | | (const char *,const size_t,char **,char **,char **) | | Curl_parse_login_details | 1 | const size_t | | (const char *,const size_t,char **,char **,char **) | | Curl_parse_login_details | 2 | char ** | @@ -28999,18 +36808,133 @@ getSignatureParameterName | (const char *,const unsigned char *,stack_st_CONF_VALUE **) | | X509V3_add_value_uchar | 0 | const char * | | (const char *,const unsigned char *,stack_st_CONF_VALUE **) | | X509V3_add_value_uchar | 1 | const unsigned char * | | (const char *,const unsigned char *,stack_st_CONF_VALUE **) | | X509V3_add_value_uchar | 2 | stack_st_CONF_VALUE ** | +| (const char *,database_dyn[5]) | | nscd_parse_file | 0 | const char * | +| (const char *,database_dyn[5]) | | nscd_parse_file | 1 | database_dyn[5] | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 0 | const char * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 1 | db_lookup_function | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 2 | nss_action ** | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 3 | nss_action_list * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 4 | nss_action ** | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 5 | nss_action_list * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 6 | nss_action ** | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 7 | nss_action_list * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int) | | __nss_endent | 8 | int | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 0 | const char * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 1 | db_lookup_function | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 2 | nss_action ** | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 3 | nss_action_list * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 4 | nss_action ** | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 5 | nss_action_list * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 6 | nss_action ** | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 7 | nss_action_list * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 8 | int | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 9 | int * | +| (const char *,db_lookup_function,nss_action **,nss_action_list *,nss_action **,nss_action_list *,nss_action **,nss_action_list *,int,int *,int) | | __nss_setent | 10 | int | | (const char *,digestdata *) | | Curl_auth_decode_digest_http_message | 0 | const char * | | (const char *,digestdata *) | | Curl_auth_decode_digest_http_message | 1 | digestdata * | | (const char *,double *) | | Jim_StringToDouble | 0 | const char * | | (const char *,double *) | | Jim_StringToDouble | 1 | double * | | (const char *,double *) | | OSSL_PARAM_construct_double | 0 | const char * | | (const char *,double *) | | OSSL_PARAM_construct_double | 1 | double * | +| (const char *,ether_addr *) | | ether_aton_r | 0 | const char * | +| (const char *,ether_addr *) | | ether_aton_r | 1 | ether_addr * | +| (const char *,ether_addr *,char *) | | ether_line | 0 | const char * | +| (const char *,ether_addr *,char *) | | ether_line | 1 | ether_addr * | +| (const char *,ether_addr *,char *) | | ether_line | 2 | char * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_db_gethostton_r | 0 | const char * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_db_gethostton_r | 1 | etherent * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_db_gethostton_r | 2 | char * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_db_gethostton_r | 3 | size_t | +| (const char *,etherent *,char *,size_t,int *) | | _nss_db_gethostton_r | 4 | int * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_files_gethostton_r | 0 | const char * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_files_gethostton_r | 1 | etherent * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_files_gethostton_r | 2 | char * | +| (const char *,etherent *,char *,size_t,int *) | | _nss_files_gethostton_r | 3 | size_t | +| (const char *,etherent *,char *,size_t,int *) | | _nss_files_gethostton_r | 4 | int * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 0 | const char * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 1 | gaih_addrtuple ** | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 2 | char * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 3 | size_t | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 4 | int * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 5 | int * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyname4_r | 6 | int32_t * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 0 | const char * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 1 | gaih_addrtuple ** | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 2 | char * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 3 | size_t | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 4 | int * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 5 | int * | +| (const char *,gaih_addrtuple **,char *,size_t,int *,int *,int32_t *) | | _nss_files_gethostbyname4_r | 6 | int32_t * | +| (const char *,gid_t,long *,gid_t **,long) | | __nscd_getgrouplist | 0 | const char * | +| (const char *,gid_t,long *,gid_t **,long) | | __nscd_getgrouplist | 1 | gid_t | +| (const char *,gid_t,long *,gid_t **,long) | | __nscd_getgrouplist | 2 | long * | +| (const char *,gid_t,long *,gid_t **,long) | | __nscd_getgrouplist | 3 | gid_t ** | +| (const char *,gid_t,long *,gid_t **,long) | | __nscd_getgrouplist | 4 | long | +| (const char *,group *,char *,size_t,group **) | | __getgrnam_r | 0 | const char * | +| (const char *,group *,char *,size_t,group **) | | __getgrnam_r | 1 | group * | +| (const char *,group *,char *,size_t,group **) | | __getgrnam_r | 2 | char * | +| (const char *,group *,char *,size_t,group **) | | __getgrnam_r | 3 | size_t | +| (const char *,group *,char *,size_t,group **) | | __getgrnam_r | 4 | group ** | +| (const char *,group *,char *,size_t,group **) | | __nscd_getgrnam_r | 0 | const char * | +| (const char *,group *,char *,size_t,group **) | | __nscd_getgrnam_r | 1 | group * | +| (const char *,group *,char *,size_t,group **) | | __nscd_getgrnam_r | 2 | char * | +| (const char *,group *,char *,size_t,group **) | | __nscd_getgrnam_r | 3 | size_t | +| (const char *,group *,char *,size_t,group **) | | __nscd_getgrnam_r | 4 | group ** | +| (const char *,group *,char *,size_t,int *) | | _nss_compat_getgrnam_r | 0 | const char * | +| (const char *,group *,char *,size_t,int *) | | _nss_compat_getgrnam_r | 1 | group * | +| (const char *,group *,char *,size_t,int *) | | _nss_compat_getgrnam_r | 2 | char * | +| (const char *,group *,char *,size_t,int *) | | _nss_compat_getgrnam_r | 3 | size_t | +| (const char *,group *,char *,size_t,int *) | | _nss_compat_getgrnam_r | 4 | int * | +| (const char *,group *,char *,size_t,int *) | | _nss_db_getgrnam_r | 0 | const char * | +| (const char *,group *,char *,size_t,int *) | | _nss_db_getgrnam_r | 1 | group * | +| (const char *,group *,char *,size_t,int *) | | _nss_db_getgrnam_r | 2 | char * | +| (const char *,group *,char *,size_t,int *) | | _nss_db_getgrnam_r | 3 | size_t | +| (const char *,group *,char *,size_t,int *) | | _nss_db_getgrnam_r | 4 | int * | +| (const char *,group *,char *,size_t,int *) | | _nss_files_getgrnam_r | 0 | const char * | +| (const char *,group *,char *,size_t,int *) | | _nss_files_getgrnam_r | 1 | group * | +| (const char *,group *,char *,size_t,int *) | | _nss_files_getgrnam_r | 2 | char * | +| (const char *,group *,char *,size_t,int *) | | _nss_files_getgrnam_r | 3 | size_t | +| (const char *,group *,char *,size_t,int *) | | _nss_files_getgrnam_r | 4 | int * | +| (const char *,group *,char *,size_t,int *) | | _nss_hesiod_getgrnam_r | 0 | const char * | +| (const char *,group *,char *,size_t,int *) | | _nss_hesiod_getgrnam_r | 1 | group * | +| (const char *,group *,char *,size_t,int *) | | _nss_hesiod_getgrnam_r | 2 | char * | +| (const char *,group *,char *,size_t,int *) | | _nss_hesiod_getgrnam_r | 3 | size_t | +| (const char *,group *,char *,size_t,int *) | | _nss_hesiod_getgrnam_r | 4 | int * | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 0 | const char * | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 1 | hostent * | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 2 | char ** | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 3 | size_t * | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 4 | size_t | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 5 | hostent ** | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 6 | nss_status * | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 7 | int | +| (const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots | 8 | int * | +| (const char *,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname_r | 0 | const char * | +| (const char *,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname_r | 1 | hostent * | +| (const char *,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname_r | 2 | char * | +| (const char *,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname_r | 3 | size_t | +| (const char *,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname_r | 4 | hostent ** | +| (const char *,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname_r | 5 | int * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname_r | 0 | const char * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname_r | 1 | hostent * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname_r | 2 | char * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname_r | 3 | size_t | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname_r | 4 | int * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname_r | 5 | int * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname_r | 0 | const char * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname_r | 1 | hostent * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname_r | 2 | char * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname_r | 3 | size_t | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname_r | 4 | int * | +| (const char *,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname_r | 5 | int * | | (const char *,int32_t *) | | OSSL_PARAM_construct_int32 | 0 | const char * | | (const char *,int32_t *) | | OSSL_PARAM_construct_int32 | 1 | int32_t * | | (const char *,int64_t *) | | OSSL_PARAM_construct_int64 | 0 | const char * | | (const char *,int64_t *) | | OSSL_PARAM_construct_int64 | 1 | int64_t * | | (const char *,int *) | | OSSL_PARAM_construct_int | 0 | const char * | | (const char *,int *) | | OSSL_PARAM_construct_int | 1 | int * | +| (const char *,int *) | | ns_datetosecs | 0 | const char * | +| (const char *,int *) | | ns_datetosecs | 1 | int * | | (const char *,int *) | | opt_int | 0 | const char * | | (const char *,int *) | | opt_int | 1 | int * | | (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 0 | const char * | @@ -29032,8 +36956,22 @@ getSignatureParameterName | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | int | | (const char *,int) | | RSA_meth_new | 0 | const char * | | (const char *,int) | | RSA_meth_new | 1 | int | +| (const char *,int) | | ftok | 0 | const char * | +| (const char *,int) | | ftok | 1 | int | +| (const char *,int) | | gethostbyname2 | 0 | const char * | +| (const char *,int) | | gethostbyname2 | 1 | int | | (const char *,int) | | parse_yesno | 0 | const char * | | (const char *,int) | | parse_yesno | 1 | int | +| (const char *,int) | | res_gethostbyname2 | 0 | const char * | +| (const char *,int) | | res_gethostbyname2 | 1 | int | +| (const char *,int,..(*)(..),glob_t *) | | __glob | 0 | const char * | +| (const char *,int,..(*)(..),glob_t *) | | __glob | 1 | int | +| (const char *,int,..(*)(..),glob_t *) | | __glob | 2 | ..(*)(..) | +| (const char *,int,..(*)(..),glob_t *) | | __glob | 3 | glob_t * | +| (const char *,int,..(*)(..),glob_t *) | | __glob_lstat_compat | 0 | const char * | +| (const char *,int,..(*)(..),glob_t *) | | __glob_lstat_compat | 1 | int | +| (const char *,int,..(*)(..),glob_t *) | | __glob_lstat_compat | 2 | ..(*)(..) | +| (const char *,int,..(*)(..),glob_t *) | | __glob_lstat_compat | 3 | glob_t * | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 0 | const char * | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 1 | int | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 2 | PKCS8_PRIV_KEY_INFO * | @@ -29044,6 +36982,55 @@ getSignatureParameterName | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 3 | X509_ALGOR * | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 4 | OSSL_LIB_CTX * | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 5 | const char * | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 0 | const char * | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 1 | int | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 2 | const void * | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 3 | Lmid_t | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 4 | int | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 5 | char *[] | +| (const char *,int,const void *,Lmid_t,int,char *[],char *[]) | | _dl_open | 6 | char *[] | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 0 | const char * | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 1 | int | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 2 | hostent * | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 3 | char * | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 4 | size_t | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 5 | hostent ** | +| (const char *,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyname2_r | 6 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 0 | const char * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 1 | int | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 2 | hostent * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 3 | char * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 4 | size_t | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 5 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyname2_r | 6 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 0 | const char * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 1 | int | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 2 | hostent * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 3 | char * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 4 | size_t | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 5 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyname2_r | 6 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 0 | const char * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 1 | int | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 2 | hostent * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 3 | char * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 4 | size_t | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 5 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 6 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 7 | int32_t * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_dns_gethostbyname3_r | 8 | char ** | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 0 | const char * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 1 | int | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 2 | hostent * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 3 | char * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 4 | size_t | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 5 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 6 | int * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 7 | int32_t * | +| (const char *,int,hostent *,char *,size_t,int *,int *,int32_t *,char **) | | _nss_files_gethostbyname3_r | 8 | char ** | +| (const char *,int,int) | | __old_strpbrk_c2 | 0 | const char * | +| (const char *,int,int) | | __old_strpbrk_c2 | 1 | int | +| (const char *,int,int) | | __old_strpbrk_c2 | 2 | int | | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 0 | const char * | | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 1 | int | | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 2 | int | @@ -29062,13 +37049,30 @@ getSignatureParameterName | (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 10 | stack_st_X509 ** | | (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 11 | X509_CRL ** | | (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 12 | stack_st_X509_CRL ** | +| (const char *,int,int,int) | | __old_strpbrk_c3 | 0 | const char * | +| (const char *,int,int,int) | | __old_strpbrk_c3 | 1 | int | +| (const char *,int,int,int) | | __old_strpbrk_c3 | 2 | int | +| (const char *,int,int,int) | | __old_strpbrk_c3 | 3 | int | | (const char *,int,int,int) | | append_str | 0 | const char * | | (const char *,int,int,int) | | append_str | 1 | int | | (const char *,int,int,int) | | append_str | 2 | int | | (const char *,int,int,int) | | append_str | 3 | int | +| (const char *,int,int,unsigned char *,int) | | ___res_query | 0 | const char * | +| (const char *,int,int,unsigned char *,int) | | ___res_query | 1 | int | +| (const char *,int,int,unsigned char *,int) | | ___res_query | 2 | int | +| (const char *,int,int,unsigned char *,int) | | ___res_query | 3 | unsigned char * | +| (const char *,int,int,unsigned char *,int) | | ___res_query | 4 | int | +| (const char *,int,int,unsigned char *,int) | | ___res_search | 0 | const char * | +| (const char *,int,int,unsigned char *,int) | | ___res_search | 1 | int | +| (const char *,int,int,unsigned char *,int) | | ___res_search | 2 | int | +| (const char *,int,int,unsigned char *,int) | | ___res_search | 3 | unsigned char * | +| (const char *,int,int,unsigned char *,int) | | ___res_search | 4 | int | | (const char *,int,long) | | zSkipValidUtf8 | 0 | const char * | | (const char *,int,long) | | zSkipValidUtf8 | 1 | int | | (const char *,int,long) | | zSkipValidUtf8 | 2 | long | +| (const char *,int,sem_t *) | | __sem_check_add_mapping | 0 | const char * | +| (const char *,int,sem_t *) | | __sem_check_add_mapping | 1 | int | +| (const char *,int,sem_t *) | | __sem_check_add_mapping | 2 | sem_t * | | (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool | 0 | const char * | | (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool | 1 | int | | (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool | 2 | stack_st_CONF_VALUE ** | @@ -29092,6 +37096,23 @@ getSignatureParameterName | (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 1 | int | | (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 2 | unsigned char ** | | (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 3 | int * | +| (const char *,int,void *,void *) | | support_readdir_r_check | 0 | const char * | +| (const char *,int,void *,void *) | | support_readdir_r_check | 1 | int | +| (const char *,int,void *,void *) | | support_readdir_r_check | 2 | void * | +| (const char *,int,void *,void *) | | support_readdir_r_check | 3 | void * | +| (const char *,kw_hash_fct_t) | | lr_open | 0 | const char * | +| (const char *,kw_hash_fct_t) | | lr_open | 1 | kw_hash_fct_t | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 0 | const char * | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 1 | link_map * | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 2 | const Elf64_Sym ** | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 3 | r_scope_elem *[] | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 4 | const r_found_version * | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 5 | int | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 6 | int | +| (const char *,link_map *,const Elf64_Sym **,r_scope_elem *[],const r_found_version *,int,int,link_map *) | | _dl_lookup_symbol_x | 7 | link_map * | +| (const char *,link_map *,unsigned int) | | _dl_audit_objsearch | 0 | const char * | +| (const char *,link_map *,unsigned int) | | _dl_audit_objsearch | 1 | link_map * | +| (const char *,link_map *,unsigned int) | | _dl_audit_objsearch | 2 | unsigned int | | (const char *,long *) | | OSSL_PARAM_construct_long | 0 | const char * | | (const char *,long *) | | OSSL_PARAM_construct_long | 1 | long * | | (const char *,long *) | | opt_long | 0 | const char * | @@ -29102,21 +37123,145 @@ getSignatureParameterName | (const char *,long *,int) | | Jim_StringToWide | 0 | const char * | | (const char *,long *,int) | | Jim_StringToWide | 1 | long * | | (const char *,long *,int) | | Jim_StringToWide | 2 | int | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyname_r | 0 | const char * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyname_r | 1 | netent * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyname_r | 2 | char * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyname_r | 3 | size_t | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyname_r | 4 | int * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyname_r | 5 | int * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyname_r | 0 | const char * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyname_r | 1 | netent * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyname_r | 2 | char * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyname_r | 3 | size_t | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyname_r | 4 | int * | +| (const char *,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyname_r | 5 | int * | +| (const char *,netobj *,u_int,sockaddr *,des_block *) | | authdes_pk_create | 0 | const char * | +| (const char *,netobj *,u_int,sockaddr *,des_block *) | | authdes_pk_create | 1 | netobj * | +| (const char *,netobj *,u_int,sockaddr *,des_block *) | | authdes_pk_create | 2 | u_int | +| (const char *,netobj *,u_int,sockaddr *,des_block *) | | authdes_pk_create | 3 | sockaddr * | +| (const char *,netobj *,u_int,sockaddr *,des_block *) | | authdes_pk_create | 4 | des_block * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_compat_getpwnam_r | 0 | const char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_compat_getpwnam_r | 1 | passwd * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_compat_getpwnam_r | 2 | char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_compat_getpwnam_r | 3 | size_t | +| (const char *,passwd *,char *,size_t,int *) | | _nss_compat_getpwnam_r | 4 | int * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_db_getpwnam_r | 0 | const char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_db_getpwnam_r | 1 | passwd * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_db_getpwnam_r | 2 | char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_db_getpwnam_r | 3 | size_t | +| (const char *,passwd *,char *,size_t,int *) | | _nss_db_getpwnam_r | 4 | int * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_files_getpwnam_r | 0 | const char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_files_getpwnam_r | 1 | passwd * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_files_getpwnam_r | 2 | char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_files_getpwnam_r | 3 | size_t | +| (const char *,passwd *,char *,size_t,int *) | | _nss_files_getpwnam_r | 4 | int * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwnam_r | 0 | const char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwnam_r | 1 | passwd * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwnam_r | 2 | char * | +| (const char *,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwnam_r | 3 | size_t | +| (const char *,passwd *,char *,size_t,int *) | | _nss_hesiod_getpwnam_r | 4 | int * | +| (const char *,passwd *,char *,size_t,passwd **) | | __getpwnam_r | 0 | const char * | +| (const char *,passwd *,char *,size_t,passwd **) | | __getpwnam_r | 1 | passwd * | +| (const char *,passwd *,char *,size_t,passwd **) | | __getpwnam_r | 2 | char * | +| (const char *,passwd *,char *,size_t,passwd **) | | __getpwnam_r | 3 | size_t | +| (const char *,passwd *,char *,size_t,passwd **) | | __getpwnam_r | 4 | passwd ** | +| (const char *,passwd *,char *,size_t,passwd **) | | __nscd_getpwnam_r | 0 | const char * | +| (const char *,passwd *,char *,size_t,passwd **) | | __nscd_getpwnam_r | 1 | passwd * | +| (const char *,passwd *,char *,size_t,passwd **) | | __nscd_getpwnam_r | 2 | char * | +| (const char *,passwd *,char *,size_t,passwd **) | | __nscd_getpwnam_r | 3 | size_t | +| (const char *,passwd *,char *,size_t,passwd **) | | __nscd_getpwnam_r | 4 | passwd ** | +| (const char *,protoent *,char *,size_t,int *) | | _nss_db_getprotobyname_r | 0 | const char * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_db_getprotobyname_r | 1 | protoent * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_db_getprotobyname_r | 2 | char * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_db_getprotobyname_r | 3 | size_t | +| (const char *,protoent *,char *,size_t,int *) | | _nss_db_getprotobyname_r | 4 | int * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_files_getprotobyname_r | 0 | const char * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_files_getprotobyname_r | 1 | protoent * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_files_getprotobyname_r | 2 | char * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_files_getprotobyname_r | 3 | size_t | +| (const char *,protoent *,char *,size_t,int *) | | _nss_files_getprotobyname_r | 4 | int * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobyname_r | 0 | const char * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobyname_r | 1 | protoent * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobyname_r | 2 | char * | +| (const char *,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobyname_r | 3 | size_t | +| (const char *,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobyname_r | 4 | int * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbyname_r | 0 | const char * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbyname_r | 1 | rpcent * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbyname_r | 2 | char * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbyname_r | 3 | size_t | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbyname_r | 4 | int * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbyname_r | 0 | const char * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbyname_r | 1 | rpcent * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbyname_r | 2 | char * | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbyname_r | 3 | size_t | +| (const char *,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbyname_r | 4 | int * | +| (const char *,rpcent *,char *,size_t,rpcent **) | | __getrpcbyname_r | 0 | const char * | +| (const char *,rpcent *,char *,size_t,rpcent **) | | __getrpcbyname_r | 1 | rpcent * | +| (const char *,rpcent *,char *,size_t,rpcent **) | | __getrpcbyname_r | 2 | char * | +| (const char *,rpcent *,char *,size_t,rpcent **) | | __getrpcbyname_r | 3 | size_t | +| (const char *,rpcent *,char *,size_t,rpcent **) | | __getrpcbyname_r | 4 | rpcent ** | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_db_getsgnam_r | 0 | const char * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_db_getsgnam_r | 1 | sgrp * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_db_getsgnam_r | 2 | char * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_db_getsgnam_r | 3 | size_t | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_db_getsgnam_r | 4 | int * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_files_getsgnam_r | 0 | const char * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_files_getsgnam_r | 1 | sgrp * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_files_getsgnam_r | 2 | char * | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_files_getsgnam_r | 3 | size_t | +| (const char *,sgrp *,char *,size_t,int *) | | _nss_files_getsgnam_r | 4 | int * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __getsgnam_r | 0 | const char * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __getsgnam_r | 1 | sgrp * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __getsgnam_r | 2 | char * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __getsgnam_r | 3 | size_t | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __getsgnam_r | 4 | sgrp ** | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __sgetsgent_r | 0 | const char * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __sgetsgent_r | 1 | sgrp * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __sgetsgent_r | 2 | char * | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __sgetsgent_r | 3 | size_t | +| (const char *,sgrp *,char *,size_t,sgrp **) | | __sgetsgent_r | 4 | sgrp ** | | (const char *,size_t *) | | OSSL_PARAM_construct_size_t | 0 | const char * | | (const char *,size_t *) | | OSSL_PARAM_construct_size_t | 1 | size_t * | +| (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 0 | const char * | +| (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 1 | size_t * | +| (const char *,size_t *,int) | | _dl_sysdep_read_whole_file | 2 | int | | (const char *,size_t) | | Curl_getn_scheme_handler | 0 | const char * | | (const char *,size_t) | | Curl_getn_scheme_handler | 1 | size_t | | (const char *,size_t) | | Curl_memdup0 | 0 | const char * | | (const char *,size_t) | | Curl_memdup0 | 1 | size_t | | (const char *,size_t) | | OPENSSL_strnlen | 0 | const char * | | (const char *,size_t) | | OPENSSL_strnlen | 1 | size_t | +| (const char *,size_t) | | __nss_module_allocate | 0 | const char * | +| (const char *,size_t) | | __nss_module_allocate | 1 | size_t | +| (const char *,size_t) | | __strndup | 0 | const char * | +| (const char *,size_t) | | __strndup | 1 | size_t | +| (const char *,size_t) | | charmap_hash | 0 | const char * | +| (const char *,size_t) | | charmap_hash | 1 | size_t | +| (const char *,size_t) | | locfile_hash | 0 | const char * | +| (const char *,size_t) | | locfile_hash | 1 | size_t | +| (const char *,size_t) | | mblen | 0 | const char * | +| (const char *,size_t) | | mblen | 1 | size_t | | (const char *,size_t) | | uv__strndup | 0 | const char * | | (const char *,size_t) | | uv__strndup | 1 | size_t | +| (const char *,size_t) | | xstrndup | 0 | const char * | +| (const char *,size_t) | | xstrndup | 1 | size_t | | (const char *,size_t,char **,size_t *,urlreject) | | Curl_urldecode | 0 | const char * | | (const char *,size_t,char **,size_t *,urlreject) | | Curl_urldecode | 1 | size_t | | (const char *,size_t,char **,size_t *,urlreject) | | Curl_urldecode | 2 | char ** | | (const char *,size_t,char **,size_t *,urlreject) | | Curl_urldecode | 3 | size_t * | | (const char *,size_t,char **,size_t *,urlreject) | | Curl_urldecode | 4 | urlreject | +| (const char *,size_t,const char *) | | __argz_next | 0 | const char * | +| (const char *,size_t,const char *) | | __argz_next | 1 | size_t | +| (const char *,size_t,const char *) | | __argz_next | 2 | const char * | +| (const char *,size_t,const char *) | | argz_next | 0 | const char * | +| (const char *,size_t,const char *) | | argz_next | 1 | size_t | +| (const char *,size_t,const char *) | | argz_next | 2 | const char * | +| (const char *,size_t,const char *) | | envz_entry | 0 | const char * | +| (const char *,size_t,const char *) | | envz_entry | 1 | size_t | +| (const char *,size_t,const char *) | | envz_entry | 2 | const char * | +| (const char *,size_t,const char *) | | envz_get | 0 | const char * | +| (const char *,size_t,const char *) | | envz_get | 1 | size_t | +| (const char *,size_t,const char *) | | envz_get | 2 | const char * | | (const char *,size_t,const char *,const char *,bool,iconv_ilseq_handler,size_t *,char **,size_t *) | | mem_iconveha | 0 | const char * | | (const char *,size_t,const char *,const char *,bool,iconv_ilseq_handler,size_t *,char **,size_t *) | | mem_iconveha | 1 | size_t | | (const char *,size_t,const char *,const char *,bool,iconv_ilseq_handler,size_t *,char **,size_t *) | | mem_iconveha | 2 | const char * | @@ -29149,10 +37294,44 @@ getSignatureParameterName | (const char *,size_t,dynbuf *,bool) | | jsonquoted | 1 | size_t | | (const char *,size_t,dynbuf *,bool) | | jsonquoted | 2 | dynbuf * | | (const char *,size_t,dynbuf *,bool) | | jsonquoted | 3 | bool | +| (const char *,size_t,int,const char **) | | _nl_find_locale | 0 | const char * | +| (const char *,size_t,int,const char **) | | _nl_find_locale | 1 | size_t | +| (const char *,size_t,int,const char **) | | _nl_find_locale | 2 | int | +| (const char *,size_t,int,const char **) | | _nl_find_locale | 3 | const char ** | | (const char *,size_t,uint32_t *,size_t *) | | idn2_punycode_decode | 0 | const char * | | (const char *,size_t,uint32_t *,size_t *) | | idn2_punycode_decode | 1 | size_t | | (const char *,size_t,uint32_t *,size_t *) | | idn2_punycode_decode | 2 | uint32_t * | | (const char *,size_t,uint32_t *,size_t *) | | idn2_punycode_decode | 3 | size_t * | +| (const char *,size_t,void *) | | __md5_buffer | 0 | const char * | +| (const char *,size_t,void *) | | __md5_buffer | 1 | size_t | +| (const char *,size_t,void *) | | __md5_buffer | 2 | void * | +| (const char *,sockaddr_in *) | | __libc_rpc_gethostbyname | 0 | const char * | +| (const char *,sockaddr_in *) | | __libc_rpc_gethostbyname | 1 | sockaddr_in * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_compat_getspnam_r | 0 | const char * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_compat_getspnam_r | 1 | spwd * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_compat_getspnam_r | 2 | char * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_compat_getspnam_r | 3 | size_t | +| (const char *,spwd *,char *,size_t,int *) | | _nss_compat_getspnam_r | 4 | int * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_db_getspnam_r | 0 | const char * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_db_getspnam_r | 1 | spwd * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_db_getspnam_r | 2 | char * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_db_getspnam_r | 3 | size_t | +| (const char *,spwd *,char *,size_t,int *) | | _nss_db_getspnam_r | 4 | int * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_files_getspnam_r | 0 | const char * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_files_getspnam_r | 1 | spwd * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_files_getspnam_r | 2 | char * | +| (const char *,spwd *,char *,size_t,int *) | | _nss_files_getspnam_r | 3 | size_t | +| (const char *,spwd *,char *,size_t,int *) | | _nss_files_getspnam_r | 4 | int * | +| (const char *,spwd *,char *,size_t,spwd **) | | __getspnam_r | 0 | const char * | +| (const char *,spwd *,char *,size_t,spwd **) | | __getspnam_r | 1 | spwd * | +| (const char *,spwd *,char *,size_t,spwd **) | | __getspnam_r | 2 | char * | +| (const char *,spwd *,char *,size_t,spwd **) | | __getspnam_r | 3 | size_t | +| (const char *,spwd *,char *,size_t,spwd **) | | __getspnam_r | 4 | spwd ** | +| (const char *,spwd *,char *,size_t,spwd **) | | __sgetspent_r | 0 | const char * | +| (const char *,spwd *,char *,size_t,spwd **) | | __sgetspent_r | 1 | spwd * | +| (const char *,spwd *,char *,size_t,spwd **) | | __sgetspent_r | 2 | char * | +| (const char *,spwd *,char *,size_t,spwd **) | | __sgetspent_r | 3 | size_t | +| (const char *,spwd *,char *,size_t,spwd **) | | __sgetspent_r | 4 | spwd ** | | (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 0 | const char * | | (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 1 | sqlite3 ** | | (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 2 | int | @@ -29183,13 +37362,39 @@ getSignatureParameterName | (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 1 | stack_st_X509_CRL ** | | (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 2 | const char * | | (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 3 | const char * | +| (const char *,statvfs64 *) | | __statvfs64 | 0 | const char * | +| (const char *,statvfs64 *) | | __statvfs64 | 1 | statvfs64 * | | (const char *,time_t *) | | OSSL_PARAM_construct_time_t | 0 | const char * | | (const char *,time_t *) | | OSSL_PARAM_construct_time_t | 1 | time_t * | +| (const char *,tm *) | | __getdate_r | 0 | const char * | +| (const char *,tm *) | | __getdate_r | 1 | tm * | +| (const char *,u_char *,unsigned char *) | | __loc_aton | 0 | const char * | +| (const char *,u_char *,unsigned char *) | | __loc_aton | 1 | u_char * | +| (const char *,u_char *,unsigned char *) | | __loc_aton | 2 | unsigned char * | +| (const char *,u_char *,unsigned char *,int) | | inet_nsap_addr | 0 | const char * | +| (const char *,u_char *,unsigned char *,int) | | inet_nsap_addr | 1 | u_char * | +| (const char *,u_char *,unsigned char *,int) | | inet_nsap_addr | 2 | unsigned char * | +| (const char *,u_char *,unsigned char *,int) | | inet_nsap_addr | 3 | int | +| (const char *,u_char *,unsigned char *,size_t) | | __b64_pton | 0 | const char * | +| (const char *,u_char *,unsigned char *,size_t) | | __b64_pton | 1 | u_char * | +| (const char *,u_char *,unsigned char *,size_t) | | __b64_pton | 2 | unsigned char * | +| (const char *,u_char *,unsigned char *,size_t) | | __b64_pton | 3 | size_t | +| (const char *,u_int,sockaddr *,des_block *) | | authdes_create | 0 | const char * | +| (const char *,u_int,sockaddr *,des_block *) | | authdes_create | 1 | u_int | +| (const char *,u_int,sockaddr *,des_block *) | | authdes_create | 2 | sockaddr * | +| (const char *,u_int,sockaddr *,des_block *) | | authdes_create | 3 | des_block * | +| (const char *,u_long *,unsigned long *) | | ns_parse_ttl | 0 | const char * | +| (const char *,u_long *,unsigned long *) | | ns_parse_ttl | 1 | u_long * | +| (const char *,u_long *,unsigned long *) | | ns_parse_ttl | 2 | unsigned long * | | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 0 | const char * | | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 1 | uint16_t * | | (const char *,uint16_t *,size_t) | | uv_wtf8_to_utf16 | 2 | size_t | | (const char *,uint32_t *) | | OSSL_PARAM_construct_uint32 | 0 | const char * | | (const char *,uint32_t *) | | OSSL_PARAM_construct_uint32 | 1 | uint32_t * | +| (const char *,uint32_t) | | __collidx_table_lookup | 0 | const char * | +| (const char *,uint32_t) | | __collidx_table_lookup | 1 | uint32_t | +| (const char *,uint32_t) | | __collseq_table_lookup | 0 | const char * | +| (const char *,uint32_t) | | __collseq_table_lookup | 1 | uint32_t | | (const char *,uint64_t *) | | OSSL_PARAM_construct_uint64 | 0 | const char * | | (const char *,uint64_t *) | | OSSL_PARAM_construct_uint64 | 1 | uint64_t * | | (const char *,unsigned char *) | | Curl_ntlm_core_mk_lm_hash | 0 | const char * | @@ -29205,6 +37410,10 @@ getSignatureParameterName | (const char *,unsigned long *) | | OSSL_PARAM_construct_ulong | 1 | unsigned long * | | (const char *,unsigned long *) | | opt_ulong | 0 | const char * | | (const char *,unsigned long *) | | opt_ulong | 1 | unsigned long * | +| (const char *,va_list) | | _IO_vscanf | 0 | const char * | +| (const char *,va_list) | | _IO_vscanf | 1 | va_list | +| (const char *,va_list) | | __vprintf | 0 | const char * | +| (const char *,va_list) | | __vprintf | 1 | va_list | | (const char *,va_list) | | curl_mvaprintf | 0 | const char * | | (const char *,va_list) | | curl_mvaprintf | 1 | va_list | | (const char *,va_list) | | curl_mvprintf | 0 | const char * | @@ -29216,14 +37425,34 @@ getSignatureParameterName | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 0 | const char * | | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 1 | void ** | | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | size_t | +| (const char *,void *,int) | | support_readdir_check | 0 | const char * | +| (const char *,void *,int) | | support_readdir_check | 1 | void * | +| (const char *,void *,int) | | support_readdir_check | 2 | int | | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 0 | const char * | | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 1 | void * | | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | size_t | | (const char *,void *,size_t) | | uv__random_readpath | 0 | const char * | | (const char *,void *,size_t) | | uv__random_readpath | 1 | void * | | (const char *,void *,size_t) | | uv__random_readpath | 2 | size_t | +| (const char *,wordexp_t *,int) | | wordexp | 0 | const char * | +| (const char *,wordexp_t *,int) | | wordexp | 1 | wordexp_t * | +| (const char *,wordexp_t *,int) | | wordexp | 2 | int | +| (const char *__restrict__,size_t,mbstate_t *__restrict__) | | mbrlen | 0 | const char *__restrict__ | +| (const char *__restrict__,size_t,mbstate_t *__restrict__) | | mbrlen | 1 | size_t | +| (const char *__restrict__,size_t,mbstate_t *__restrict__) | | mbrlen | 2 | mbstate_t *__restrict__ | | (const char *const *,const char *const *) | | name_cmp | 0 | const char *const * | | (const char *const *,const char *const *) | | name_cmp | 1 | const char *const * | +| (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 0 | const charmap_t * | +| (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 1 | const char * | +| (const charmap_t *,const char *,size_t) | | charmap_find_symbol | 2 | size_t | +| (const charmap_t *,const char *,size_t) | | charmap_find_value | 0 | const charmap_t * | +| (const charmap_t *,const char *,size_t) | | charmap_find_value | 1 | const char * | +| (const charmap_t *,const char *,size_t) | | charmap_find_value | 2 | size_t | +| (const cmsghdr *,uint8_t **) | | inet6_option_next | 0 | const cmsghdr * | +| (const cmsghdr *,uint8_t **) | | inet6_option_next | 1 | uint8_t ** | +| (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 0 | const cmsghdr * | +| (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 1 | uint8_t ** | +| (const cmsghdr *,uint8_t **,int) | | inet6_option_find | 2 | int | | (const curl_easyoption *) | | curl_easy_option_next | 0 | const curl_easyoption * | | (const curve448_point_t) | | ossl_curve448_point_valid | 0 | const curve448_point_t | | (const custom_ext_methods *,ENDPOINT,unsigned int,size_t *) | | custom_ext_find | 0 | const custom_ext_methods * | @@ -29233,19 +37462,76 @@ getSignatureParameterName | (const deque &) | deque | deque | 0 | const deque & | | (const deque &,const Allocator &) | deque | deque | 0 | const deque & | | (const deque &,const Allocator &) | deque | deque | 1 | const class:1 & | +| (const directory_obj *,directory_obj *) | | nis_clone_directory | 0 | const directory_obj * | +| (const directory_obj *,directory_obj *) | | nis_clone_directory | 1 | directory_obj * | +| (const dirent64 **,const dirent64 **) | | __alphasort64 | 0 | const dirent64 ** | +| (const dirent64 **,const dirent64 **) | | __alphasort64 | 1 | const dirent64 ** | +| (const dirent64 **,const dirent64 **) | | __versionsort64 | 0 | const dirent64 ** | +| (const dirent64 **,const dirent64 **) | | __versionsort64 | 1 | const dirent64 ** | +| (const double *) | | __getpayload | 0 | const double * | | (const dynbuf *) | | Curl_dyn_len | 0 | const dynbuf * | | (const dynbuf *) | | Curl_dyn_ptr | 0 | const dynbuf * | | (const dynbuf *) | | Curl_dyn_uptr | 0 | const dynbuf * | | (const dynbuf *) | | curlx_dyn_len | 0 | const dynbuf * | | (const dynbuf *) | | curlx_dyn_ptr | 0 | const dynbuf * | | (const dynbuf *) | | curlx_dyn_uptr | 0 | const dynbuf * | +| (const ether_addr *) | | ether_ntoa | 0 | const ether_addr * | +| (const ether_addr *,char *) | | ether_ntoa_r | 0 | const ether_addr * | +| (const ether_addr *,char *) | | ether_ntoa_r | 1 | char * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_db_getntohost_r | 0 | const ether_addr * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_db_getntohost_r | 1 | etherent * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_db_getntohost_r | 2 | char * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_db_getntohost_r | 3 | size_t | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_db_getntohost_r | 4 | int * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_files_getntohost_r | 0 | const ether_addr * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_files_getntohost_r | 1 | etherent * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_files_getntohost_r | 2 | char * | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_files_getntohost_r | 3 | size_t | +| (const ether_addr *,etherent *,char *,size_t,int *) | | _nss_files_getntohost_r | 4 | int * | +| (const float *) | | __getpayloadf | 0 | const float * | | (const forward_list &) | forward_list | forward_list | 0 | const forward_list & | | (const forward_list &,const Allocator &) | forward_list | forward_list | 0 | const forward_list & | | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | const class:1 & | +| (const gaicb *const[],int,const timespec *) | | ___gai_suspend_time64 | 0 | const gaicb *const[] | +| (const gaicb *const[],int,const timespec *) | | ___gai_suspend_time64 | 1 | int | +| (const gaicb *const[],int,const timespec *) | | ___gai_suspend_time64 | 2 | const timespec * | | (const gf) | | gf_hibit | 0 | const gf | | (const gf) | | gf_lobit | 0 | const gf | | (const gf,const gf) | | gf_eq | 0 | const gf | | (const gf,const gf) | | gf_eq | 1 | const gf | +| (const glibc_hwcaps_subdirectory *) | | glibc_hwcaps_subdirectory_name | 0 | const glibc_hwcaps_subdirectory * | +| (const group *,const group *__restrict__,FILE *,FILE *__restrict__) | | putgrent | 0 | const group * | +| (const group *,const group *__restrict__,FILE *,FILE *__restrict__) | | putgrent | 1 | const group *__restrict__ | +| (const group *,const group *__restrict__,FILE *,FILE *__restrict__) | | putgrent | 2 | FILE * | +| (const group *,const group *__restrict__,FILE *,FILE *__restrict__) | | putgrent | 3 | FILE *__restrict__ | +| (const group,const size_t,group *,char *,char **) | | __copy_grp | 0 | const group | +| (const group,const size_t,group *,char *,char **) | | __copy_grp | 1 | const size_t | +| (const group,const size_t,group *,char *,char **) | | __copy_grp | 2 | group * | +| (const group,const size_t,group *,char *,char **) | | __copy_grp | 3 | char * | +| (const group,const size_t,group *,char *,char **) | | __copy_grp | 4 | char ** | +| (const hash_table *,const void *,size_t,void **) | | find_entry | 0 | const hash_table * | +| (const hash_table *,const void *,size_t,void **) | | find_entry | 1 | const void * | +| (const hash_table *,const void *,size_t,void **) | | find_entry | 2 | size_t | +| (const hash_table *,const void *,size_t,void **) | | find_entry | 3 | void ** | +| (const hash_table *,void **,const void **,size_t *,void **) | | iterate_table | 0 | const hash_table * | +| (const hash_table *,void **,const void **,size_t *,void **) | | iterate_table | 1 | void ** | +| (const hash_table *,void **,const void **,size_t *,void **) | | iterate_table | 2 | const void ** | +| (const hash_table *,void **,const void **,size_t *,void **) | | iterate_table | 3 | size_t * | +| (const hash_table *,void **,const void **,size_t *,void **) | | iterate_table | 4 | void ** | +| (const int) | | ypprot_err | 0 | const int | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 0 | const int | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 1 | int | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 2 | const char * | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 3 | servent * | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 4 | char * | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 5 | size_t | +| (const int,int,const char *,servent *,char *,size_t,int *) | | _nss_hesiod_getservbyport_r | 6 | int * | +| (const int,int,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobynumber_r | 0 | const int | +| (const int,int,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobynumber_r | 1 | int | +| (const int,int,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobynumber_r | 2 | protoent * | +| (const int,int,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobynumber_r | 3 | char * | +| (const int,int,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobynumber_r | 4 | size_t | +| (const int,int,protoent *,char *,size_t,int *) | | _nss_hesiod_getprotobynumber_r | 5 | int * | | (const int[],BIGNUM *) | | BN_GF2m_arr2poly | 0 | const int[] | | (const int[],BIGNUM *) | | BN_GF2m_arr2poly | 1 | BIGNUM * | | (const int_dhx942_dh *,unsigned char **) | | i2d_int_dhx | 0 | const int_dhx942_dh * | @@ -29253,6 +37539,11 @@ getSignatureParameterName | (const list &) | list | list | 0 | const list & | | (const list &,const Allocator &) | list | list | 0 | const list & | | (const list &,const Allocator &) | list | list | 1 | const class:1 & | +| (const long double *) | | __getpayloadl | 0 | const long double * | +| (const md5_ctx *,void *) | | __md5_read_ctx | 0 | const md5_ctx * | +| (const md5_ctx *,void *) | | __md5_read_ctx | 1 | void * | +| (const mntent *,const char *) | | __hasmntopt | 0 | const mntent * | +| (const mntent *,const char *) | | __hasmntopt | 1 | const char * | | (const nghttp2_extpri *) | | nghttp2_extpri_to_uint8 | 0 | const nghttp2_extpri * | | (const nghttp2_map *) | | nghttp2_map_size | 0 | const nghttp2_map * | | (const nghttp2_map *,..(*)(..),void *) | | nghttp2_map_each | 0 | const nghttp2_map * | @@ -29265,6 +37556,140 @@ getSignatureParameterName | (const nghttp2_settings_entry *,size_t,nghttp2_mem *) | | nghttp2_frame_iv_copy | 0 | const nghttp2_settings_entry * | | (const nghttp2_settings_entry *,size_t,nghttp2_mem *) | | nghttp2_frame_iv_copy | 1 | size_t | | (const nghttp2_settings_entry *,size_t,nghttp2_mem *) | | nghttp2_frame_iv_copy | 2 | nghttp2_mem * | +| (const nis_error) | | nis_sperrno | 0 | const nis_error | +| (const nis_error,const char *) | | nis_sperror | 0 | const nis_error | +| (const nis_error,const char *) | | nis_sperror | 1 | const char * | +| (const nis_error,const char *,char *,size_t) | | nis_sperror_r | 0 | const nis_error | +| (const nis_error,const char *,char *,size_t) | | nis_sperror_r | 1 | const char * | +| (const nis_error,const char *,char *,size_t) | | nis_sperror_r | 2 | char * | +| (const nis_error,const char *,char *,size_t) | | nis_sperror_r | 3 | size_t | +| (const nis_object *,nis_object *) | | nis_clone_object | 0 | const nis_object * | +| (const nis_object *,nis_object *) | | nis_clone_object | 1 | nis_object * | +| (const nis_result *) | | nis_print_result | 0 | const nis_result * | +| (const nis_result *,nis_result *) | | nis_clone_result | 0 | const nis_result * | +| (const nis_result *,nis_result *) | | nis_clone_result | 1 | nis_result * | +| (const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t) | | ns_sprintrr | 0 | const ns_msg * | +| (const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t) | | ns_sprintrr | 1 | const ns_rr * | +| (const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t) | | ns_sprintrr | 2 | const char * | +| (const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t) | | ns_sprintrr | 3 | const char * | +| (const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t) | | ns_sprintrr | 4 | char * | +| (const ns_msg *,const ns_rr *,const char *,const char *,char *,size_t) | | ns_sprintrr | 5 | size_t | +| (const old_termios_t *) | | __old_cfgetispeed | 0 | const old_termios_t * | +| (const old_termios_t *) | | __old_cfgetospeed | 0 | const old_termios_t * | +| (const passwd *,const passwd *__restrict__,FILE *,FILE *__restrict__) | | putpwent | 0 | const passwd * | +| (const passwd *,const passwd *__restrict__,FILE *,FILE *__restrict__) | | putpwent | 1 | const passwd *__restrict__ | +| (const passwd *,const passwd *__restrict__,FILE *,FILE *__restrict__) | | putpwent | 2 | FILE * | +| (const passwd *,const passwd *__restrict__,FILE *,FILE *__restrict__) | | putpwent | 3 | FILE *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getcgroup_np | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getcgroup_np | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getcgroup_np | 2 | int * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getcgroup_np | 3 | int *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getschedpolicy | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getschedpolicy | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getschedpolicy | 2 | int * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,int *,int *__restrict__) | | posix_spawnattr_getschedpolicy | 3 | int *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,pid_t *,pid_t *__restrict__) | | posix_spawnattr_getpgroup | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,pid_t *,pid_t *__restrict__) | | posix_spawnattr_getpgroup | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,pid_t *,pid_t *__restrict__) | | posix_spawnattr_getpgroup | 2 | pid_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,pid_t *,pid_t *__restrict__) | | posix_spawnattr_getpgroup | 3 | pid_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sched_param *,sched_param *__restrict__) | | posix_spawnattr_getschedparam | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sched_param *,sched_param *__restrict__) | | posix_spawnattr_getschedparam | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sched_param *,sched_param *__restrict__) | | posix_spawnattr_getschedparam | 2 | sched_param * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sched_param *,sched_param *__restrict__) | | posix_spawnattr_getschedparam | 3 | sched_param *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,short *,short *__restrict__) | | posix_spawnattr_getflags | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,short *,short *__restrict__) | | posix_spawnattr_getflags | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,short *,short *__restrict__) | | posix_spawnattr_getflags | 2 | short * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,short *,short *__restrict__) | | posix_spawnattr_getflags | 3 | short *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigdefault | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigdefault | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigdefault | 2 | sigset_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigdefault | 3 | sigset_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigmask | 0 | const posix_spawnattr_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigmask | 1 | const posix_spawnattr_t *__restrict__ | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigmask | 2 | sigset_t * | +| (const posix_spawnattr_t *,const posix_spawnattr_t *__restrict__,sigset_t *,sigset_t *__restrict__) | | posix_spawnattr_getsigmask | 3 | sigset_t *__restrict__ | +| (const pthread_attr_t *) | | __pthread_setattr_default_np | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,__sigset_t *,sigset_t *) | | __pthread_attr_getsigmask_np | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,__sigset_t *,sigset_t *) | | __pthread_attr_getsigmask_np | 1 | __sigset_t * | +| (const pthread_attr_t *,__sigset_t *,sigset_t *) | | __pthread_attr_getsigmask_np | 2 | sigset_t * | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstacksize | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstacksize | 1 | const pthread_attr_t *__restrict__ | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstacksize | 2 | size_t * | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstacksize | 3 | size_t *__restrict__ | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__) | | __pthread_attr_getstackaddr | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__) | | __pthread_attr_getstackaddr | 1 | const pthread_attr_t *__restrict__ | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__) | | __pthread_attr_getstackaddr | 2 | void ** | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__) | | __pthread_attr_getstackaddr | 3 | void **__restrict__ | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstack | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstack | 1 | const pthread_attr_t *__restrict__ | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstack | 2 | void ** | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstack | 3 | void **__restrict__ | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstack | 4 | size_t * | +| (const pthread_attr_t *,const pthread_attr_t *__restrict__,void **,void **__restrict__,size_t *,size_t *__restrict__) | | __pthread_attr_getstack | 5 | size_t *__restrict__ | +| (const pthread_attr_t *,cpu_set_t *) | | __pthread_attr_getaffinity_old | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,cpu_set_t *) | | __pthread_attr_getaffinity_old | 1 | cpu_set_t * | +| (const pthread_attr_t *,int *) | | __pthread_attr_getschedpolicy | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,int *) | | __pthread_attr_getschedpolicy | 1 | int * | +| (const pthread_attr_t *,sched_param *) | | __pthread_attr_getschedparam | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,sched_param *) | | __pthread_attr_getschedparam | 1 | sched_param * | +| (const pthread_attr_t *,size_t *) | | __pthread_attr_getguardsize | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,size_t *) | | __pthread_attr_getguardsize | 1 | size_t * | +| (const pthread_attr_t *,size_t,cpu_set_t *) | | __pthread_attr_getaffinity_new | 0 | const pthread_attr_t * | +| (const pthread_attr_t *,size_t,cpu_set_t *) | | __pthread_attr_getaffinity_new | 1 | size_t | +| (const pthread_attr_t *,size_t,cpu_set_t *) | | __pthread_attr_getaffinity_new | 2 | cpu_set_t * | +| (const pthread_barrierattr_t *,int *) | | __pthread_barrierattr_getpshared | 0 | const pthread_barrierattr_t * | +| (const pthread_barrierattr_t *,int *) | | __pthread_barrierattr_getpshared | 1 | int * | +| (const pthread_condattr_t *,clockid_t *) | | __pthread_condattr_getclock | 0 | const pthread_condattr_t * | +| (const pthread_condattr_t *,clockid_t *) | | __pthread_condattr_getclock | 1 | clockid_t * | +| (const pthread_mutex_t *,int *) | | __pthread_mutex_getprioceiling | 0 | const pthread_mutex_t * | +| (const pthread_mutex_t *,int *) | | __pthread_mutex_getprioceiling | 1 | int * | +| (const pthread_mutexattr_t *,int *) | | __pthread_mutexattr_getprioceiling | 0 | const pthread_mutexattr_t * | +| (const pthread_mutexattr_t *,int *) | | __pthread_mutexattr_getprioceiling | 1 | int * | +| (const pthread_mutexattr_t *,int *) | | __pthread_mutexattr_getprotocol | 0 | const pthread_mutexattr_t * | +| (const pthread_mutexattr_t *,int *) | | __pthread_mutexattr_getprotocol | 1 | int * | +| (const pthread_mutexattr_t *,int *) | | __pthread_mutexattr_gettype | 0 | const pthread_mutexattr_t * | +| (const pthread_mutexattr_t *,int *) | | __pthread_mutexattr_gettype | 1 | int * | +| (const pthread_rwlockattr_t *,int *) | | __pthread_rwlockattr_getkind_np | 0 | const pthread_rwlockattr_t * | +| (const pthread_rwlockattr_t *,int *) | | __pthread_rwlockattr_getkind_np | 1 | int * | +| (const pthread_rwlockattr_t *,int *) | | __pthread_rwlockattr_getpshared | 0 | const pthread_rwlockattr_t * | +| (const pthread_rwlockattr_t *,int *) | | __pthread_rwlockattr_getpshared | 1 | int * | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 0 | const regex_t * | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 1 | const regex_t *__restrict__ | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 2 | const char * | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 3 | const char *__restrict__ | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 4 | size_t | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 5 | regmatch_t[] | +| (const regex_t *,const regex_t *__restrict__,const char *,const char *__restrict__,size_t,regmatch_t[],int) | | __regexec | 6 | int | +| (const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int) | | __compat_regexec | 0 | const regex_t *__restrict__ | +| (const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int) | | __compat_regexec | 1 | const char *__restrict__ | +| (const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int) | | __compat_regexec | 2 | size_t | +| (const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int) | | __compat_regexec | 3 | regmatch_t[] | +| (const regex_t *__restrict__,const char *__restrict__,size_t,regmatch_t[],int) | | __compat_regexec | 4 | int | +| (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 0 | const repertoire_t * | +| (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 1 | const char * | +| (const repertoire_t *,const char *,size_t) | | repertoire_find_value | 2 | size_t | +| (const repertoire_t *,uint32_t) | | repertoire_find_seq | 0 | const repertoire_t * | +| (const repertoire_t *,uint32_t) | | repertoire_find_seq | 1 | uint32_t | +| (const repertoire_t *,uint32_t) | | repertoire_find_symbol | 0 | const repertoire_t * | +| (const repertoire_t *,uint32_t) | | repertoire_find_symbol | 1 | uint32_t | +| (const res_state,res_state,const char *,char *,size_t) | | __res_hostalias | 0 | const res_state | +| (const res_state,res_state,const char *,char *,size_t) | | __res_hostalias | 1 | res_state | +| (const res_state,res_state,const char *,char *,size_t) | | __res_hostalias | 2 | const char * | +| (const res_state,res_state,const char *,char *,size_t) | | __res_hostalias | 3 | char * | +| (const res_state,res_state,const char *,char *,size_t) | | __res_hostalias | 4 | size_t | +| (const res_sym *,const char *,int *) | | __sym_ston | 0 | const res_sym * | +| (const res_sym *,const char *,int *) | | __sym_ston | 1 | const char * | +| (const res_sym *,const char *,int *) | | __sym_ston | 2 | int * | +| (const res_sym *,int,int *) | | __sym_ntop | 0 | const res_sym * | +| (const res_sym *,int,int *) | | __sym_ntop | 1 | int | +| (const res_sym *,int,int *) | | __sym_ntop | 2 | int * | +| (const res_sym *,int,int *) | | __sym_ntos | 0 | const res_sym * | +| (const res_sym *,int,int *) | | __sym_ntos | 1 | int | +| (const res_sym *,int,int *) | | __sym_ntos | 2 | int * | +| (const resolv_conf *) | | __resolv_conf_allocate | 0 | const resolv_conf * | +| (const resolv_response_context *) | | resolv_response_context_duplicate | 0 | const resolv_response_context * | +| (const sgrp *,FILE *) | | putsgent | 0 | const sgrp * | +| (const sgrp *,FILE *) | | putsgent | 1 | FILE * | | (const size_t,const size_t,const ZopfliNode *,int *,size_t *,const BrotliEncoderParams *,Command *,size_t *) | | BrotliZopfliCreateCommands | 0 | const size_t | | (const size_t,const size_t,const ZopfliNode *,int *,size_t *,const BrotliEncoderParams *,Command *,size_t *) | | BrotliZopfliCreateCommands | 1 | const size_t | | (const size_t,const size_t,const ZopfliNode *,int *,size_t *,const BrotliEncoderParams *,Command *,size_t *) | | BrotliZopfliCreateCommands | 2 | const ZopfliNode * | @@ -29276,12 +37701,24 @@ getSignatureParameterName | (const sockaddr *,char *,size_t) | | uv_ip_name | 0 | const sockaddr * | | (const sockaddr *,char *,size_t) | | uv_ip_name | 1 | char * | | (const sockaddr *,char *,size_t) | | uv_ip_name | 2 | size_t | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 0 | const sockaddr * | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 1 | const sockaddr *__restrict__ | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 2 | socklen_t | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 3 | char * | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 4 | char *__restrict__ | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 5 | socklen_t | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 6 | char * | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 7 | char *__restrict__ | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 8 | socklen_t | +| (const sockaddr *,const sockaddr *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,char *,char *__restrict__,socklen_t,int) | | getnameinfo | 9 | int | | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 0 | const sockaddr_in6 * | | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 1 | char * | | (const sockaddr_in6 *,char *,size_t) | | uv_ip6_name | 2 | size_t | | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 0 | const sockaddr_in * | | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 1 | char * | | (const sockaddr_in *,char *,size_t) | | uv_ip4_name | 2 | size_t | +| (const spwd *,FILE *) | | putspent | 0 | const spwd * | +| (const spwd *,FILE *) | | putspent | 1 | FILE * | | (const sqlite3_value *) | | sqlite3_value_dup | 0 | const sqlite3_value * | | (const stack_st_SCT *,unsigned char **) | | i2d_SCT_LIST | 0 | const stack_st_SCT * | | (const stack_st_SCT *,unsigned char **) | | i2d_SCT_LIST | 1 | unsigned char ** | @@ -29321,12 +37758,137 @@ getSignatureParameterName | (const stat *) | | get_stat_ctime_ns | 0 | const stat * | | (const stat *) | | get_stat_mtime | 0 | const stat * | | (const stat *) | | get_stat_mtime_ns | 0 | const stat * | +| (const td_thragent_t *,lwpid_t,td_thrhandle_t *) | | __td_ta_lookup_th_unique | 0 | const td_thragent_t * | +| (const td_thragent_t *,lwpid_t,td_thrhandle_t *) | | __td_ta_lookup_th_unique | 1 | lwpid_t | +| (const td_thragent_t *,lwpid_t,td_thrhandle_t *) | | __td_ta_lookup_th_unique | 2 | td_thrhandle_t * | +| (const td_thragent_t *,lwpid_t,td_thrhandle_t *) | | td_ta_map_lwp2thr | 0 | const td_thragent_t * | +| (const td_thragent_t *,lwpid_t,td_thrhandle_t *) | | td_ta_map_lwp2thr | 1 | lwpid_t | +| (const td_thragent_t *,lwpid_t,td_thrhandle_t *) | | td_ta_map_lwp2thr | 2 | td_thrhandle_t * | +| (const td_thragent_t *,ps_prochandle **) | | td_ta_get_ph | 0 | const td_thragent_t * | +| (const td_thragent_t *,ps_prochandle **) | | td_ta_get_ph | 1 | ps_prochandle ** | +| (const td_thragent_t *,pthread_t,td_thrhandle_t *) | | td_ta_map_id2thr | 0 | const td_thragent_t * | +| (const td_thragent_t *,pthread_t,td_thrhandle_t *) | | td_ta_map_id2thr | 1 | pthread_t | +| (const td_thragent_t *,pthread_t,td_thrhandle_t *) | | td_ta_map_id2thr | 2 | td_thrhandle_t * | +| (const td_thragent_t *,td_event_e,td_notify_t *) | | td_ta_event_addr | 0 | const td_thragent_t * | +| (const td_thragent_t *,td_event_e,td_notify_t *) | | td_ta_event_addr | 1 | td_event_e | +| (const td_thragent_t *,td_event_e,td_notify_t *) | | td_ta_event_addr | 2 | td_notify_t * | +| (const td_thragent_t *,td_event_msg_t *) | | td_ta_event_getmsg | 0 | const td_thragent_t * | +| (const td_thragent_t *,td_event_msg_t *) | | td_ta_event_getmsg | 1 | td_event_msg_t * | +| (const td_thrhandle_t *,const thread_key_t,void **) | | td_thr_tsd | 0 | const td_thrhandle_t * | +| (const td_thrhandle_t *,const thread_key_t,void **) | | td_thr_tsd | 1 | const thread_key_t | +| (const td_thrhandle_t *,const thread_key_t,void **) | | td_thr_tsd | 2 | void ** | +| (const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *) | | td_thr_tls_get_addr | 0 | const td_thrhandle_t * | +| (const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *) | | td_thr_tls_get_addr | 1 | psaddr_t | +| (const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *) | | td_thr_tls_get_addr | 2 | size_t | +| (const td_thrhandle_t *,psaddr_t,size_t,psaddr_t *) | | td_thr_tls_get_addr | 3 | psaddr_t * | +| (const td_thrhandle_t *,td_event_msg_t *) | | td_thr_event_getmsg | 0 | const td_thrhandle_t * | +| (const td_thrhandle_t *,td_event_msg_t *) | | td_thr_event_getmsg | 1 | td_event_msg_t * | +| (const td_thrhandle_t *,td_thrinfo_t *) | | td_thr_get_info | 0 | const td_thrhandle_t * | +| (const td_thrhandle_t *,td_thrinfo_t *) | | td_thr_get_info | 1 | td_thrinfo_t * | +| (const td_thrhandle_t *,unsigned long,psaddr_t *) | | td_thr_tlsbase | 0 | const td_thrhandle_t * | +| (const td_thrhandle_t *,unsigned long,psaddr_t *) | | td_thr_tlsbase | 1 | unsigned long | +| (const td_thrhandle_t *,unsigned long,psaddr_t *) | | td_thr_tlsbase | 2 | psaddr_t * | +| (const termios *) | | __cfgetibaud | 0 | const termios * | +| (const termios *) | | __cfgetispeed | 0 | const termios * | +| (const termios *) | | __cfgetobaud | 0 | const termios * | +| (const termios *) | | __cfgetospeed | 0 | const termios * | +| (const time_t *) | | gmtime | 0 | const time_t * | +| (const time_t *) | | localtime | 0 | const time_t * | +| (const time_t *,const time_t *__restrict__,char *,char *__restrict__) | | ctime_r | 0 | const time_t * | +| (const time_t *,const time_t *__restrict__,char *,char *__restrict__) | | ctime_r | 1 | const time_t *__restrict__ | +| (const time_t *,const time_t *__restrict__,char *,char *__restrict__) | | ctime_r | 2 | char * | +| (const time_t *,const time_t *__restrict__,char *,char *__restrict__) | | ctime_r | 3 | char *__restrict__ | +| (const time_t *,const time_t *__restrict__,tm *,tm *__restrict__) | | __gmtime_r | 0 | const time_t * | +| (const time_t *,const time_t *__restrict__,tm *,tm *__restrict__) | | __gmtime_r | 1 | const time_t *__restrict__ | +| (const time_t *,const time_t *__restrict__,tm *,tm *__restrict__) | | __gmtime_r | 2 | tm * | +| (const time_t *,const time_t *__restrict__,tm *,tm *__restrict__) | | __gmtime_r | 3 | tm *__restrict__ | | (const time_t *,tm *) | | OPENSSL_gmtime | 0 | const time_t * | | (const time_t *,tm *) | | OPENSSL_gmtime | 1 | tm * | +| (const time_t *,tm *) | | __localtime_r | 0 | const time_t * | +| (const time_t *,tm *) | | __localtime_r | 1 | tm * | +| (const timeval *,const timezone *) | | __settimeofday | 0 | const timeval * | +| (const timeval *,const timezone *) | | __settimeofday | 1 | const timezone * | +| (const timeval *,timeval *) | | __adjtime | 0 | const timeval * | +| (const timeval *,timeval *) | | __adjtime | 1 | timeval * | +| (const tm *,__locale_data *) | | _nl_get_era_entry | 0 | const tm * | +| (const tm *,__locale_data *) | | _nl_get_era_entry | 1 | __locale_data * | +| (const tm *,char *) | | __asctime_r | 0 | const tm * | +| (const tm *,char *) | | __asctime_r | 1 | char * | | (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 0 | const u128[16] | | (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 1 | uint8_t * | | (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 2 | const uint8_t * | | (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 3 | size_t | +| (const u_char *,const unsigned char *) | | ns_get16 | 0 | const u_char * | +| (const u_char *,const unsigned char *) | | ns_get16 | 1 | const unsigned char * | +| (const u_char *,const unsigned char *) | | ns_get32 | 0 | const u_char * | +| (const u_char *,const unsigned char *) | | ns_get32 | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,char *) | | __loc_ntoa | 0 | const u_char * | +| (const u_char *,const unsigned char *,char *) | | __loc_ntoa | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,char *) | | __loc_ntoa | 2 | char * | +| (const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **) | | ns_name_rollback | 0 | const u_char * | +| (const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **) | | ns_name_rollback | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **) | | ns_name_rollback | 2 | const u_char ** | +| (const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **) | | ns_name_rollback | 3 | const unsigned char ** | +| (const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **) | | ns_name_rollback | 4 | const u_char ** | +| (const u_char *,const unsigned char *,const u_char **,const unsigned char **,const u_char **,const unsigned char **) | | ns_name_rollback | 5 | const unsigned char ** | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_cdname | 0 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_cdname | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_cdname | 2 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_cdname | 3 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_cdname | 4 | FILE * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_fqname | 0 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_fqname | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_fqname | 2 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_fqname | 3 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,FILE *) | | __p_fqname | 4 | FILE * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *) | | __p_cdnname | 0 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *) | | __p_cdnname | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *) | | __p_cdnname | 2 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *) | | __p_cdnname | 3 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *) | | __p_cdnname | 4 | int | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,FILE *) | | __p_cdnname | 5 | FILE * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 0 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 2 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 3 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 4 | int | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 5 | char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,int,char *,int) | | __p_fqnname | 6 | int | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 0 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 2 | const u_char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 3 | const unsigned char * | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 4 | ns_sect | +| (const u_char *,const unsigned char *,const u_char *,const unsigned char *,ns_sect,int) | | ns_skiprr | 5 | int | +| (const u_char *,const unsigned char *,int,ns_msg *) | | ns_initparse | 0 | const u_char * | +| (const u_char *,const unsigned char *,int,ns_msg *) | | ns_initparse | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,int,ns_msg *) | | ns_initparse | 2 | int | +| (const u_char *,const unsigned char *,int,ns_msg *) | | ns_initparse | 3 | ns_msg * | +| (const u_char *,const unsigned char *,size_t,char *,size_t) | | __b64_ntop | 0 | const u_char * | +| (const u_char *,const unsigned char *,size_t,char *,size_t) | | __b64_ntop | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,size_t,char *,size_t) | | __b64_ntop | 2 | size_t | +| (const u_char *,const unsigned char *,size_t,char *,size_t) | | __b64_ntop | 3 | char * | +| (const u_char *,const unsigned char *,size_t,char *,size_t) | | __b64_ntop | 4 | size_t | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 0 | const u_char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 2 | size_t | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 3 | const char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 4 | ns_class | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 5 | ns_type | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 6 | u_long | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 7 | unsigned long | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 8 | const u_char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 9 | const unsigned char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 10 | size_t | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 11 | const char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 12 | const char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 13 | char * | +| (const u_char *,const unsigned char *,size_t,const char *,ns_class,ns_type,u_long,unsigned long,const u_char *,const unsigned char *,size_t,const char *,const char *,char *,size_t) | | ns_sprintrrf | 14 | size_t | +| (const u_char *,const unsigned char *,u_char *,unsigned char *,size_t) | | ns_name_ntol | 0 | const u_char * | +| (const u_char *,const unsigned char *,u_char *,unsigned char *,size_t) | | ns_name_ntol | 1 | const unsigned char * | +| (const u_char *,const unsigned char *,u_char *,unsigned char *,size_t) | | ns_name_ntol | 2 | u_char * | +| (const u_char *,const unsigned char *,u_char *,unsigned char *,size_t) | | ns_name_ntol | 3 | unsigned char * | +| (const u_char *,const unsigned char *,u_char *,unsigned char *,size_t) | | ns_name_ntol | 4 | size_t | | (const uint8_t *,SM4_KEY *) | | ossl_sm4_set_key | 0 | const uint8_t * | | (const uint8_t *,SM4_KEY *) | | ossl_sm4_set_key | 1 | SM4_KEY * | | (const uint8_t *,const uint8_t *,uint8_t **,int) | | idn2_register_u8 | 0 | const uint8_t * | @@ -29411,11 +37973,15 @@ getSignatureParameterName | (const unsigned char *) | | Curl_read16_be | 0 | const unsigned char * | | (const unsigned char *) | | Curl_read16_le | 0 | const unsigned char * | | (const unsigned char *) | | Curl_read32_le | 0 | const unsigned char * | +| (const unsigned char *) | | _getlong | 0 | const unsigned char * | +| (const unsigned char *) | | _getshort | 0 | const unsigned char * | | (const unsigned char *) | | _libssh2_ntohu32 | 0 | const unsigned char * | | (const unsigned char *) | | _libssh2_ntohu64 | 0 | const unsigned char * | | (const unsigned char *) | | ossl_quic_vlint_decode_unchecked | 0 | const unsigned char * | | (const unsigned char *) | CStringT | CStringT | 0 | const unsigned char * | | (const unsigned char *) | CStringT | operator= | 0 | const unsigned char * | +| (const unsigned char **,const unsigned char *) | | ___ns_name_skip | 0 | const unsigned char ** | +| (const unsigned char **,const unsigned char *) | | ___ns_name_skip | 1 | const unsigned char * | | (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 0 | const unsigned char ** | | (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 1 | long * | | (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 2 | int * | @@ -29431,6 +37997,8 @@ getSignatureParameterName | (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 1 | long | | (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 2 | OSSL_LIB_CTX * | | (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 3 | const char * | +| (const unsigned char **,printf_info *) | | __handle_registered_modifier_mb | 0 | const unsigned char ** | +| (const unsigned char **,printf_info *) | | __handle_registered_modifier_mb | 1 | printf_info * | | (const unsigned char **,unsigned char *,const unsigned char *,unsigned int) | | nghttp2_select_alpn | 0 | const unsigned char ** | | (const unsigned char **,unsigned char *,const unsigned char *,unsigned int) | | nghttp2_select_alpn | 1 | unsigned char * | | (const unsigned char **,unsigned char *,const unsigned char *,unsigned int) | | nghttp2_select_alpn | 2 | const unsigned char * | @@ -29466,14 +38034,28 @@ getSignatureParameterName | (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 2 | long | | (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 3 | int | | (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 4 | DES_cblock * | +| (const unsigned char *,FILE *) | | __fp_query | 0 | const unsigned char * | +| (const unsigned char *,FILE *) | | __fp_query | 1 | FILE * | | (const unsigned char *,IAtlStringMgr *) | CStringT | CStringT | 0 | const unsigned char * | | (const unsigned char *,IAtlStringMgr *) | CStringT | CStringT | 1 | IAtlStringMgr * | +| (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 0 | const unsigned char * | +| (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 1 | char * | +| (const unsigned char *,char *,size_t) | | ___ns_name_ntop | 2 | size_t | | (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_decrypt_key | 0 | const unsigned char * | | (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_decrypt_key | 1 | const int | | (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_decrypt_key | 2 | ARIA_KEY * | | (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_encrypt_key | 0 | const unsigned char * | | (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_encrypt_key | 1 | const int | | (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_encrypt_key | 2 | ARIA_KEY * | +| (const unsigned char *,const unsigned char *) | | ___dn_skipname | 0 | const unsigned char * | +| (const unsigned char *,const unsigned char *) | | ___dn_skipname | 1 | const unsigned char * | +| (const unsigned char *,const unsigned char *) | | __ns_name_length_uncompressed | 0 | const unsigned char * | +| (const unsigned char *,const unsigned char *) | | __ns_name_length_uncompressed | 1 | const unsigned char * | +| (const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t) | | ___ns_name_unpack | 0 | const unsigned char * | +| (const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t) | | ___ns_name_unpack | 1 | const unsigned char * | +| (const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t) | | ___ns_name_unpack | 2 | const unsigned char * | +| (const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t) | | ___ns_name_unpack | 3 | unsigned char * | +| (const unsigned char *,const unsigned char *,const unsigned char *,unsigned char *,size_t) | | ___ns_name_unpack | 4 | size_t | | (const unsigned char *,hm_header_st *) | | dtls1_get_message_header | 0 | const unsigned char * | | (const unsigned char *,hm_header_st *) | | dtls1_get_message_header | 1 | hm_header_st * | | (const unsigned char *,int) | | Jim_GenHashFunction | 0 | const unsigned char * | @@ -29516,6 +38098,9 @@ getSignatureParameterName | (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 3 | EVP_CIPHER * | | (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 4 | OSSL_LIB_CTX * | | (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 5 | const char * | +| (const unsigned char *,int,FILE *) | | __fp_nquery | 0 | const unsigned char * | +| (const unsigned char *,int,FILE *) | | __fp_nquery | 1 | int | +| (const unsigned char *,int,FILE *) | | __fp_nquery | 2 | FILE * | | (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 0 | const unsigned char * | | (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 1 | int | | (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 2 | const BIGNUM * | @@ -29530,6 +38115,10 @@ getSignatureParameterName | (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 2 | const unsigned char * | | (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 3 | int | | (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 4 | EC_KEY * | +| (const unsigned char *,int,unsigned char *,int) | | ___res_send | 0 | const unsigned char * | +| (const unsigned char *,int,unsigned char *,int) | | ___res_send | 1 | int | +| (const unsigned char *,int,unsigned char *,int) | | ___res_send | 2 | unsigned char * | +| (const unsigned char *,int,unsigned char *,int) | | ___res_send | 3 | int | | (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 0 | const unsigned char * | | (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 1 | int | | (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 2 | unsigned char * | @@ -29556,6 +38145,11 @@ getSignatureParameterName | (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 1 | size_t | | (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 2 | QUIC_PN | | (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 3 | QUIC_PN * | +| (const unsigned char *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specmb | 0 | const unsigned char * | +| (const unsigned char *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specmb | 1 | size_t | +| (const unsigned char *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specmb | 2 | printf_spec * | +| (const unsigned char *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specmb | 3 | size_t * | +| (const unsigned char *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specmb | 4 | bool * | | (const unsigned char *,size_t,size_t *) | | ossl_sm2_plaintext_size | 0 | const unsigned char * | | (const unsigned char *,size_t,size_t *) | | ossl_sm2_plaintext_size | 1 | size_t | | (const unsigned char *,size_t,size_t *) | | ossl_sm2_plaintext_size | 2 | size_t * | @@ -29625,6 +38219,11 @@ getSignatureParameterName | (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 1 | unsigned char * | | (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 2 | const SEED_KEY_SCHEDULE * | | (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 3 | int | +| (const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **) | | ___ns_name_pack | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **) | | ___ns_name_pack | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **) | | ___ns_name_pack | 2 | int | +| (const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **) | | ___ns_name_pack | 3 | const unsigned char ** | +| (const unsigned char *,unsigned char *,int,const unsigned char **,const unsigned char **) | | ___ns_name_pack | 4 | const unsigned char ** | | (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 0 | const unsigned char * | | (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 1 | unsigned char * | | (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 2 | int | @@ -29981,6 +38580,32 @@ getSignatureParameterName | (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_encrypt | 0 | const unsigned char[16] | | (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_encrypt | 1 | unsigned char[16] | | (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_encrypt | 2 | const SEED_KEY_SCHEDULE * | +| (const unsigned int *) | | __find_specwc | 0 | const unsigned int * | +| (const unsigned int **,printf_info *) | | __handle_registered_modifier_wc | 0 | const unsigned int ** | +| (const unsigned int **,printf_info *) | | __handle_registered_modifier_wc | 1 | printf_info * | +| (const unsigned int *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specwc | 0 | const unsigned int * | +| (const unsigned int *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specwc | 1 | size_t | +| (const unsigned int *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specwc | 2 | printf_spec * | +| (const unsigned int *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specwc | 3 | size_t * | +| (const unsigned int *,size_t,printf_spec *,size_t *,bool *) | | __parse_one_specwc | 4 | bool * | +| (const utmp *) | | __libc_pututline | 0 | const utmp * | +| (const utmp *) | | __login | 0 | const utmp * | +| (const utmp *) | | __pututline | 0 | const utmp * | +| (const utmp *,utmp *,utmp **) | | __getutid_r | 0 | const utmp * | +| (const utmp *,utmp *,utmp **) | | __getutid_r | 1 | utmp * | +| (const utmp *,utmp *,utmp **) | | __getutid_r | 2 | utmp ** | +| (const utmp *,utmp *,utmp **) | | __getutline_r | 0 | const utmp * | +| (const utmp *,utmp *,utmp **) | | __getutline_r | 1 | utmp * | +| (const utmp *,utmp *,utmp **) | | __getutline_r | 2 | utmp ** | +| (const utmp *,utmp *,utmp **) | | __libc_getutid_r | 0 | const utmp * | +| (const utmp *,utmp *,utmp **) | | __libc_getutid_r | 1 | utmp * | +| (const utmp *,utmp *,utmp **) | | __libc_getutid_r | 2 | utmp ** | +| (const utmp *,utmp *,utmp **) | | __libc_getutline_r | 0 | const utmp * | +| (const utmp *,utmp *,utmp **) | | __libc_getutline_r | 1 | utmp * | +| (const utmp *,utmp *,utmp **) | | __libc_getutline_r | 2 | utmp ** | +| (const utmpx *) | | pututxline | 0 | const utmpx * | +| (const utmpx *,utmp *) | | getutmp | 0 | const utmpx * | +| (const utmpx *,utmp *) | | getutmp | 1 | utmp * | | (const uv__io_t *,unsigned int) | | uv__io_active | 0 | const uv__io_t * | | (const uv__io_t *,unsigned int) | | uv__io_active | 1 | unsigned int | | (const uv__statx *,uv_stat_t *) | | uv__statx_to_stat | 0 | const uv__statx * | @@ -30039,8 +38664,36 @@ getSignatureParameterName | (const vector &) | vector | vector | 0 | const vector & | | (const vector &,const Allocator &) | vector | vector | 0 | const vector & | | (const vector &,const Allocator &) | vector | vector | 1 | const class:1 & | +| (const void *) | | inet6_rth_segments | 0 | const void * | +| (const void *,..(*)(..),void *) | | __twalk_r | 0 | const void * | +| (const void *,..(*)(..),void *) | | __twalk_r | 1 | ..(*)(..) | +| (const void *,..(*)(..),void *) | | __twalk_r | 2 | void * | +| (const void *,VISIT,void *) | | add_key | 0 | const void * | +| (const void *,VISIT,void *) | | add_key | 1 | VISIT | +| (const void *,VISIT,void *) | | add_key | 2 | void * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 0 | const void * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 1 | __socklen_t | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 2 | socklen_t | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 3 | int | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 4 | hostent * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 5 | char * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 6 | size_t | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 7 | int * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_files_gethostbyaddr_r | 8 | int * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 0 | const void * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 1 | __socklen_t | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 2 | socklen_t | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 3 | int | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 4 | hostent * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 5 | char * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 6 | size_t | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 7 | int * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 8 | int * | +| (const void *,__socklen_t,socklen_t,int,hostent *,char *,size_t,int *,int *,int32_t *) | | _nss_dns_gethostbyaddr2_r | 9 | int32_t * | | (const void *,const void *) | | Symbolcmpp | 0 | const void * | | (const void *,const void *) | | Symbolcmpp | 1 | const void * | +| (const void *,const void *) | | __gconv_alias_compare | 0 | const void * | +| (const void *,const void *) | | __gconv_alias_compare | 1 | const void * | | (const void *,const void *,int) | | ossl_is_partially_overlapping | 0 | const void * | | (const void *,const void *,int) | | ossl_is_partially_overlapping | 1 | const void * | | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | int | @@ -30061,15 +38714,90 @@ getSignatureParameterName | (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 3 | int | | (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 4 | ..(*)(..) | | (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 5 | int | +| (const void *,const void *,size_t *,size_t,__compar_fn_t) | | lfind | 0 | const void * | +| (const void *,const void *,size_t *,size_t,__compar_fn_t) | | lfind | 1 | const void * | +| (const void *,const void *,size_t *,size_t,__compar_fn_t) | | lfind | 2 | size_t * | +| (const void *,const void *,size_t *,size_t,__compar_fn_t) | | lfind | 3 | size_t | +| (const void *,const void *,size_t *,size_t,__compar_fn_t) | | lfind | 4 | __compar_fn_t | | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 0 | const void * | | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 1 | const void * | | (const void *,const void *,size_t) | | chachapoly_timingsafe_bcmp | 2 | size_t | +| (const void *,const void *,size_t,size_t,__compar_fn_t) | | bsearch | 0 | const void * | +| (const void *,const void *,size_t,size_t,__compar_fn_t) | | bsearch | 1 | const void * | +| (const void *,const void *,size_t,size_t,__compar_fn_t) | | bsearch | 2 | size_t | +| (const void *,const void *,size_t,size_t,__compar_fn_t) | | bsearch | 3 | size_t | +| (const void *,const void *,size_t,size_t,__compar_fn_t) | | bsearch | 4 | __compar_fn_t | +| (const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | fwrite_unlocked | 0 | const void * | +| (const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | fwrite_unlocked | 1 | const void *__restrict__ | +| (const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | fwrite_unlocked | 2 | size_t | +| (const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | fwrite_unlocked | 3 | size_t | +| (const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | fwrite_unlocked | 4 | FILE * | +| (const void *,const void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | fwrite_unlocked | 5 | FILE *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 0 | const void * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 1 | const void *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 2 | socklen_t | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 3 | int | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 4 | hostent * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 5 | hostent *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 6 | char * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 7 | char *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 8 | size_t | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 9 | hostent ** | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 10 | hostent **__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 11 | int * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostbyaddr_r | 12 | int *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 0 | const void * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 1 | const void *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 2 | socklen_t | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 3 | int | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 4 | hostent * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 5 | hostent *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 6 | char * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 7 | char *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 8 | size_t | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 9 | hostent ** | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 10 | hostent **__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 11 | int * | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 12 | int *__restrict__ | +| (const void *,const void *__restrict__,socklen_t,int,hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__,int32_t *) | | __gethostbyaddr2_r | 13 | int32_t * | +| (const void *,int) | | inet6_rth_getaddr | 0 | const void * | +| (const void *,int) | | inet6_rth_getaddr | 1 | int | | (const void *,size_t) | | Curl_memdup | 0 | const void * | | (const void *,size_t) | | Curl_memdup | 1 | size_t | +| (const void *,size_t) | | __nis_hash | 0 | const void * | +| (const void *,size_t) | | __nis_hash | 1 | size_t | +| (const void *,size_t) | | __nss_hash | 0 | const void * | +| (const void *,size_t) | | __nss_hash | 1 | size_t | +| (const void *,size_t) | | compute_hashval | 0 | const void * | +| (const void *,size_t) | | compute_hashval | 1 | size_t | | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 0 | const void * | | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 1 | size_t | | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 2 | const char * | | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 3 | int | +| (const void *,size_t,const void *,size_t) | | __memmem | 0 | const void * | +| (const void *,size_t,const void *,size_t) | | __memmem | 1 | size_t | +| (const void *,size_t,const void *,size_t) | | __memmem | 2 | const void * | +| (const void *,size_t,const void *,size_t) | | __memmem | 3 | size_t | +| (const void *,size_t,md5_ctx *) | | __md5_process_block | 0 | const void * | +| (const void *,size_t,md5_ctx *) | | __md5_process_block | 1 | size_t | +| (const void *,size_t,md5_ctx *) | | __md5_process_block | 2 | md5_ctx * | +| (const void *,size_t,md5_ctx *) | | __md5_process_bytes | 0 | const void * | +| (const void *,size_t,md5_ctx *) | | __md5_process_bytes | 1 | size_t | +| (const void *,size_t,md5_ctx *) | | __md5_process_bytes | 2 | md5_ctx * | +| (const void *,size_t,size_t) | | support_blob_repeat_allocate | 0 | const void * | +| (const void *,size_t,size_t) | | support_blob_repeat_allocate | 1 | size_t | +| (const void *,size_t,size_t) | | support_blob_repeat_allocate | 2 | size_t | +| (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 0 | const void * | +| (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 1 | size_t | +| (const void *,size_t,size_t) | | support_blob_repeat_allocate_shared | 2 | size_t | +| (const void *,size_t,size_t,FILE *) | | _IO_fwrite | 0 | const void * | +| (const void *,size_t,size_t,FILE *) | | _IO_fwrite | 1 | size_t | +| (const void *,size_t,size_t,FILE *) | | _IO_fwrite | 2 | size_t | +| (const void *,size_t,size_t,FILE *) | | _IO_fwrite | 3 | FILE * | +| (const void *,size_t,size_t,bool) | | repeat_allocate | 0 | const void * | +| (const void *,size_t,size_t,bool) | | repeat_allocate | 1 | size_t | +| (const void *,size_t,size_t,bool) | | repeat_allocate | 2 | size_t | +| (const void *,size_t,size_t,bool) | | repeat_allocate | 3 | bool | | (const void *,size_t,unsigned char *) | | WHIRLPOOL | 0 | const void * | | (const void *,size_t,unsigned char *) | | WHIRLPOOL | 1 | size_t | | (const void *,size_t,unsigned char *) | | WHIRLPOOL | 2 | unsigned char * | @@ -30077,8 +38805,248 @@ getSignatureParameterName | (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 1 | size_t | | (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 2 | unsigned char ** | | (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 3 | size_t * | +| (const void *,socklen_t,int) | | res_gethostbyaddr | 0 | const void * | +| (const void *,socklen_t,int) | | res_gethostbyaddr | 1 | socklen_t | +| (const void *,socklen_t,int) | | res_gethostbyaddr | 2 | int | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 0 | const void * | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 1 | socklen_t | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 2 | int | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 3 | hostent * | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 4 | char * | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 5 | size_t | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 6 | hostent ** | +| (const void *,socklen_t,int,hostent *,char *,size_t,hostent **,int *) | | __nscd_gethostbyaddr_r | 7 | int * | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 0 | const void * | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 1 | socklen_t | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 2 | int | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 3 | hostent * | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 4 | char * | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 5 | size_t | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 6 | int * | +| (const void *,socklen_t,int,hostent *,char *,size_t,int *,int *) | | _nss_dns_gethostbyaddr_r | 7 | int * | | (const void *,sqlite3 **) | | sqlite3_open16 | 0 | const void * | | (const void *,sqlite3 **) | | sqlite3_open16 | 1 | sqlite3 ** | +| (const void *,unsigned char **,size_t *) | | xget_sigstack_location | 0 | const void * | +| (const void *,unsigned char **,size_t *) | | xget_sigstack_location | 1 | unsigned char ** | +| (const void *,unsigned char **,size_t *) | | xget_sigstack_location | 2 | size_t * | +| (const void *,void *) | | inet6_rth_reverse | 0 | const void * | +| (const void *,void *) | | inet6_rth_reverse | 1 | void * | +| (const void *,void **,__compar_fn_t) | | __tdelete | 0 | const void * | +| (const void *,void **,__compar_fn_t) | | __tdelete | 1 | void ** | +| (const void *,void **,__compar_fn_t) | | __tdelete | 2 | __compar_fn_t | +| (const void *,void **,__compar_fn_t) | | __tsearch | 0 | const void * | +| (const void *,void **,__compar_fn_t) | | __tsearch | 1 | void ** | +| (const void *,void **,__compar_fn_t) | | __tsearch | 2 | __compar_fn_t | +| (const void *,void *,size_t *,size_t,__compar_fn_t) | | lsearch | 0 | const void * | +| (const void *,void *,size_t *,size_t,__compar_fn_t) | | lsearch | 1 | void * | +| (const void *,void *,size_t *,size_t,__compar_fn_t) | | lsearch | 2 | size_t * | +| (const void *,void *,size_t *,size_t,__compar_fn_t) | | lsearch | 3 | size_t | +| (const void *,void *,size_t *,size_t,__compar_fn_t) | | lsearch | 4 | __compar_fn_t | +| (const void *,void *const *,__compar_fn_t) | | __tfind | 0 | const void * | +| (const void *,void *const *,__compar_fn_t) | | __tfind | 1 | void *const * | +| (const void *,void *const *,__compar_fn_t) | | __tfind | 2 | __compar_fn_t | +| (const wchar_t *,__gnuc_va_list) | | __vwprintf | 0 | const wchar_t * | +| (const wchar_t *,__gnuc_va_list) | | __vwprintf | 1 | __gnuc_va_list | +| (const wchar_t *,const wchar_t *) | | __wcscoll | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *) | | __wcscoll | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *) | | wcspbrk | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *) | | wcspbrk | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *) | | wcsstr | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *) | | wcsstr | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *,locale_t) | | __wcscasecmp_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *,locale_t) | | __wcscasecmp_l | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *,locale_t) | | __wcscasecmp_l | 2 | locale_t | +| (const wchar_t *,const wchar_t *,locale_t) | | __wcscoll_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *,locale_t) | | __wcscoll_l | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *,locale_t) | | __wcscoll_l | 2 | locale_t | +| (const wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsncasecmp_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsncasecmp_l | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsncasecmp_l | 2 | size_t | +| (const wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsncasecmp_l | 3 | locale_t | +| (const wchar_t *,const wchar_t *,va_list) | | __vswscanf | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *,va_list) | | __vswscanf | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *,va_list) | | __vswscanf | 2 | va_list | +| (const wchar_t *,const wchar_t *,wchar_t,const char *) | | __correctly_grouped_prefixwc | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *,wchar_t,const char *) | | __correctly_grouped_prefixwc | 1 | const wchar_t * | +| (const wchar_t *,const wchar_t *,wchar_t,const char *) | | __correctly_grouped_prefixwc | 2 | wchar_t | +| (const wchar_t *,const wchar_t *,wchar_t,const char *) | | __correctly_grouped_prefixwc | 3 | const char * | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vwscanf | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vwscanf | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vwscanf | 2 | __gnuc_va_list | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vwscanf | 3 | va_list | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vwscanf | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vwscanf | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vwscanf | 2 | __gnuc_va_list | +| (const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vwscanf | 3 | va_list | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vswscanf | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vswscanf | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vswscanf | 2 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vswscanf | 3 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vswscanf | 4 | __gnuc_va_list | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc23_vswscanf | 5 | va_list | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vswscanf | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vswscanf | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vswscanf | 2 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vswscanf | 3 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vswscanf | 4 | __gnuc_va_list | +| (const wchar_t *,const wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __isoc99_vswscanf | 5 | va_list | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstod | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstod | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstod | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstod | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof128 | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof128 | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof128 | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstof128 | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstold | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstold | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstold | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__) | | wcstold | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstol | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstol | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstol | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstol | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstol | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstoul | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstoul | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstoul | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstoul | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __isoc23_wcstoul | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstod_internal | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstod_internal | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstod_internal | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstod_internal | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstod_internal | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof128_internal | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof128_internal | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof128_internal | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof128_internal | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof128_internal | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof_internal | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof_internal | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof_internal | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof_internal | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstof_internal | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstold_internal | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstold_internal | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstold_internal | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstold_internal | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int) | | __wcstold_internal | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstol_internal | 5 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,int) | | __wcstoul_internal | 5 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstol_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstol_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstol_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstol_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstol_l | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstol_l | 5 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstoul_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstoul_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstoul_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstoul_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstoul_l | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __isoc23_wcstoul_l | 5 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstol_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstol_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstol_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstol_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstol_l | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstol_l | 5 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstoul_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstoul_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstoul_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstoul_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstoul_l | 4 | int | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,int,locale_t) | | __wcstoul_l | 5 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstod_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstod_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstod_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstod_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstod_l | 4 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof128_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof128_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof128_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof128_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof128_l | 4 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstof_l | 4 | locale_t | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstold_l | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstold_l | 1 | const wchar_t *__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstold_l | 2 | wchar_t ** | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstold_l | 3 | wchar_t **__restrict__ | +| (const wchar_t *,const wchar_t *__restrict__,wchar_t **,wchar_t **__restrict__,locale_t) | | __wcstold_l | 4 | locale_t | +| (const wchar_t *,const wchar_t,wchar_t) | | __wcschrnul | 0 | const wchar_t * | +| (const wchar_t *,const wchar_t,wchar_t) | | __wcschrnul | 1 | const wchar_t | +| (const wchar_t *,const wchar_t,wchar_t) | | __wcschrnul | 2 | wchar_t | +| (const wchar_t *,size_t) | | __wcsnlen_generic | 0 | const wchar_t * | +| (const wchar_t *,size_t) | | __wcsnlen_generic | 1 | size_t | +| (const wchar_t *,size_t) | | wcswidth | 0 | const wchar_t * | +| (const wchar_t *,size_t) | | wcswidth | 1 | size_t | +| (const wchar_t *,va_list) | | __vwscanf | 0 | const wchar_t * | +| (const wchar_t *,va_list) | | __vwscanf | 1 | va_list | +| (const wchar_t *,wchar_t **,int) | | __wcstol | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int) | | __wcstol | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int) | | __wcstol | 2 | int | +| (const wchar_t *,wchar_t **,int) | | __wcstoul | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int) | | __wcstoul | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int) | | __wcstoul | 2 | int | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstol_l_internal | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstol_l_internal | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstol_l_internal | 2 | int | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstol_l_internal | 3 | int | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstol_l_internal | 4 | bool | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstol_l_internal | 5 | locale_t | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstoul_l_internal | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstoul_l_internal | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstoul_l_internal | 2 | int | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstoul_l_internal | 3 | int | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstoul_l_internal | 4 | bool | +| (const wchar_t *,wchar_t **,int,int,bool,locale_t) | | ____wcstoul_l_internal | 5 | locale_t | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstod_l_internal | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstod_l_internal | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstod_l_internal | 2 | int | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstod_l_internal | 3 | locale_t | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof128_l_internal | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof128_l_internal | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof128_l_internal | 2 | int | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof128_l_internal | 3 | locale_t | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof_l_internal | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof_l_internal | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof_l_internal | 2 | int | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstof_l_internal | 3 | locale_t | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstold_l_internal | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstold_l_internal | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstold_l_internal | 2 | int | +| (const wchar_t *,wchar_t **,int,locale_t) | | ____wcstold_l_internal | 3 | locale_t | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstod_nan | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstod_nan | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstod_nan | 2 | wchar_t | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstof128_nan | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstof128_nan | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstof128_nan | 2 | wchar_t | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstof_nan | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstof_nan | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstof_nan | 2 | wchar_t | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstold_nan | 0 | const wchar_t * | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstold_nan | 1 | wchar_t ** | +| (const wchar_t *,wchar_t **,wchar_t) | | __wcstold_nan | 2 | wchar_t | | (const_DES_cblock *) | | DES_check_key_parity | 0 | const_DES_cblock * | | (const_iterator,InputIt,InputIt) | deque | insert | 0 | const_iterator | | (const_iterator,InputIt,InputIt) | deque | insert | 1 | func:0 | @@ -30120,6 +39088,32 @@ getSignatureParameterName | (const_iterator,size_type,const T &) | vector | insert | 0 | const_iterator | | (const_iterator,size_type,const T &) | vector | insert | 1 | size_type | | (const_iterator,size_type,const T &) | vector | insert | 2 | const class:0 & | +| (const_nis_name) | | __nis_domain_of | 0 | const_nis_name | +| (const_nis_name) | | nis_domain_of | 0 | const_nis_name | +| (const_nis_name) | | nis_getnames | 0 | const_nis_name | +| (const_nis_name,char *,size_t) | | nis_domain_of_r | 0 | const_nis_name | +| (const_nis_name,char *,size_t) | | nis_domain_of_r | 1 | char * | +| (const_nis_name,char *,size_t) | | nis_domain_of_r | 2 | size_t | +| (const_nis_name,char *,size_t) | | nis_leaf_of_r | 0 | const_nis_name | +| (const_nis_name,char *,size_t) | | nis_leaf_of_r | 1 | char * | +| (const_nis_name,char *,size_t) | | nis_leaf_of_r | 2 | size_t | +| (const_nis_name,char *,size_t) | | nis_name_of_r | 0 | const_nis_name | +| (const_nis_name,char *,size_t) | | nis_name_of_r | 1 | char * | +| (const_nis_name,char *,size_t) | | nis_name_of_r | 2 | size_t | +| (const_nis_name,const unsigned int,unsigned int) | | nis_lookup | 0 | const_nis_name | +| (const_nis_name,const unsigned int,unsigned int) | | nis_lookup | 1 | const unsigned int | +| (const_nis_name,const unsigned int,unsigned int) | | nis_lookup | 2 | unsigned int | +| (const_nis_name,directory_obj **,dir_binding *,unsigned int) | | __prepare_niscall | 0 | const_nis_name | +| (const_nis_name,directory_obj **,dir_binding *,unsigned int) | | __prepare_niscall | 1 | directory_obj ** | +| (const_nis_name,directory_obj **,dir_binding *,unsigned int) | | __prepare_niscall | 2 | dir_binding * | +| (const_nis_name,directory_obj **,dir_binding *,unsigned int) | | __prepare_niscall | 3 | unsigned int | +| (const_nis_name,int,directory_obj **,dir_binding *,unsigned int) | | __nisfind_server | 0 | const_nis_name | +| (const_nis_name,int,directory_obj **,dir_binding *,unsigned int) | | __nisfind_server | 1 | int | +| (const_nis_name,int,directory_obj **,dir_binding *,unsigned int) | | __nisfind_server | 2 | directory_obj ** | +| (const_nis_name,int,directory_obj **,dir_binding *,unsigned int) | | __nisfind_server | 3 | dir_binding * | +| (const_nis_name,int,directory_obj **,dir_binding *,unsigned int) | | __nisfind_server | 4 | unsigned int | +| (const_nis_name,unsigned int) | | __create_ib_request | 0 | const_nis_name | +| (const_nis_name,unsigned int) | | __create_ib_request | 1 | unsigned int | | (cpool *,Curl_cpool_disconnect_cb *,Curl_multi *,Curl_share *,size_t) | | Curl_cpool_init | 0 | cpool * | | (cpool *,Curl_cpool_disconnect_cb *,Curl_multi *,Curl_share *,size_t) | | Curl_cpool_init | 1 | Curl_cpool_disconnect_cb * | | (cpool *,Curl_cpool_disconnect_cb *,Curl_multi *,Curl_share *,size_t) | | Curl_cpool_init | 2 | Curl_multi * | @@ -30234,6 +39228,130 @@ getSignatureParameterName | (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 3 | void ** | | (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 4 | pem_password_cb * | | (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 5 | void * | +| (database_dyn *) | | gc | 0 | database_dyn * | +| (database_dyn *) | | setup_thread | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdgetnetgrent | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdgetnetgrent | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdgetnetgrent | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdgrbygid | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdgrbygid | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdgrbygid | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdgrbyname | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdgrbyname | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdgrbyname | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdhstai | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdhstai | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdhstai | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyaddr | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyaddr | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyaddr | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyaddrv6 | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyaddrv6 | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyaddrv6 | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyname | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyname | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbyname | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbynamev6 | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbynamev6 | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdhstbynamev6 | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdinitgroups | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdinitgroups | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdinitgroups | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdinnetgr | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdinnetgr | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdinnetgr | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdpwbyname | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdpwbyname | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdpwbyname | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdpwbyuid | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdpwbyuid | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdpwbyuid | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdservbyname | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdservbyname | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdservbyname | 2 | datahead * | +| (database_dyn *,hashentry *,datahead *) | | readdservbyport | 0 | database_dyn * | +| (database_dyn *,hashentry *,datahead *) | | readdservbyport | 1 | hashentry * | +| (database_dyn *,hashentry *,datahead *) | | readdservbyport | 2 | datahead * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgetnetgrent | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgetnetgrent | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgetnetgrent | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgetnetgrent | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgetnetgrent | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbygid | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbygid | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbygid | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbygid | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbygid | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbyname | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbyname | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbyname | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbyname | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addgrbyname | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstai | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstai | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstai | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstai | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstai | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddr | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddr | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddr | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddr | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddr | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddrv6 | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddrv6 | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddrv6 | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddrv6 | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyaddrv6 | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyname | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyname | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyname | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyname | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbyname | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbynamev6 | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbynamev6 | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbynamev6 | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbynamev6 | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addhstbynamev6 | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinitgroups | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinitgroups | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinitgroups | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinitgroups | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinitgroups | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinnetgr | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinnetgr | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinnetgr | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinnetgr | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addinnetgr | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyname | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyname | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyname | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyname | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyname | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyuid | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyuid | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyuid | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyuid | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addpwbyuid | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyname | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyname | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyname | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyname | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyname | 4 | uid_t | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyport | 0 | database_dyn * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyport | 1 | int | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyport | 2 | request_header * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyport | 3 | void * | +| (database_dyn *,int,request_header *,void *,uid_t) | | addservbyport | 4 | uid_t | +| (database_dyn *,size_t,int) | | mempool_alloc | 0 | database_dyn * | +| (database_dyn *,size_t,int) | | mempool_alloc | 1 | size_t | +| (database_dyn *,size_t,int) | | mempool_alloc | 2 | int | +| (database_dyn *,time_t,int) | | prune_cache | 0 | database_dyn * | +| (database_dyn *,time_t,int) | | prune_cache | 1 | time_t | +| (database_dyn *,time_t,int) | | prune_cache | 2 | int | +| (deadline_current_time,deadline) | | __deadline_to_ms | 0 | deadline_current_time | +| (deadline_current_time,deadline) | | __deadline_to_ms | 1 | deadline | +| (deadline_current_time,timeval) | | __deadline_from_timeval | 0 | deadline_current_time | +| (deadline_current_time,timeval) | | __deadline_from_timeval | 1 | timeval | | (deflate_state *,charf *,ulg,int) | | _tr_flush_block | 0 | deflate_state * | | (deflate_state *,charf *,ulg,int) | | _tr_flush_block | 1 | charf * | | (deflate_state *,charf *,ulg,int) | | _tr_flush_block | 2 | ulg | @@ -30248,6 +39366,340 @@ getSignatureParameterName | (deque &&) | deque | deque | 0 | deque && | | (deque &&,const Allocator &) | deque | deque | 0 | deque && | | (deque &&,const Allocator &) | deque | deque | 1 | const class:1 & | +| (dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int) | | __nisbind_create | 0 | dir_binding * | +| (dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int) | | __nisbind_create | 1 | const nis_server * | +| (dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int) | | __nisbind_create | 2 | unsigned int | +| (dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int) | | __nisbind_create | 3 | unsigned int | +| (dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int) | | __nisbind_create | 4 | unsigned int | +| (dir_binding *,const nis_server *,unsigned int,unsigned int,unsigned int,unsigned int) | | __nisbind_create | 5 | unsigned int | +| (dir_binding *,netobj *,nis_cb *) | | __nis_do_callback | 0 | dir_binding * | +| (dir_binding *,netobj *,nis_cb *) | | __nis_do_callback | 1 | netobj * | +| (dir_binding *,netobj *,nis_cb *) | | __nis_do_callback | 2 | nis_cb * | +| (dl_exception *,..(*)(..),void *) | | _dl_catch_exception | 0 | dl_exception * | +| (dl_exception *,..(*)(..),void *) | | _dl_catch_exception | 1 | ..(*)(..) | +| (dl_exception *,..(*)(..),void *) | | _dl_catch_exception | 2 | void * | +| (dl_exception *,const char *,const char *) | | _dl_exception_create | 0 | dl_exception * | +| (dl_exception *,const char *,const char *) | | _dl_exception_create | 1 | const char * | +| (dl_exception *,const char *,const char *) | | _dl_exception_create | 2 | const char * | +| (dl_find_object_internal *,size_t) | | _dlfo_sort_mappings | 0 | dl_find_object_internal * | +| (dl_find_object_internal *,size_t) | | _dlfo_sort_mappings | 1 | size_t | +| (double *,const double *) | | __canonicalize | 0 | double * | +| (double *,const double *) | | __canonicalize | 1 | const double * | +| (double *,double *,int,int,int,const int32_t *) | | __kernel_rem_pio2 | 0 | double * | +| (double *,double *,int,int,int,const int32_t *) | | __kernel_rem_pio2 | 1 | double * | +| (double *,double *,int,int,int,const int32_t *) | | __kernel_rem_pio2 | 2 | int | +| (double *,double *,int,int,int,const int32_t *) | | __kernel_rem_pio2 | 3 | int | +| (double *,double *,int,int,int,const int32_t *) | | __kernel_rem_pio2 | 4 | int | +| (double *,double *,int,int,int,const int32_t *) | | __kernel_rem_pio2 | 5 | const int32_t * | +| (double *,double) | | __setpayload | 0 | double * | +| (double *,double) | | __setpayload | 1 | double | +| (double *,double) | | __setpayloadsig | 0 | double * | +| (double *,double) | | __setpayloadsig | 1 | double | +| (double) | | __acos | 0 | double | +| (double) | | __acosh | 0 | double | +| (double) | | __acospi | 0 | double | +| (double) | | __asin | 0 | double | +| (double) | | __asinh | 0 | double | +| (double) | | __asinpi | 0 | double | +| (double) | | __atan_avx | 0 | double | +| (double) | | __atan_fma | 0 | double | +| (double) | | __atan_fma4 | 0 | double | +| (double) | | __atan_sse2 | 0 | double | +| (double) | | __atanh | 0 | double | +| (double) | | __cbrt | 0 | double | +| (double) | | __ceil_c | 0 | double | +| (double) | | __cos_avx | 0 | double | +| (double) | | __cos_fma | 0 | double | +| (double) | | __cos_fma4 | 0 | double | +| (double) | | __cos_sse2 | 0 | double | +| (double) | | __cosh | 0 | double | +| (double) | | __erf | 0 | double | +| (double) | | __erfc | 0 | double | +| (double) | | __exp2 | 0 | double | +| (double) | | __exp2_compat | 0 | double | +| (double) | | __exp10 | 0 | double | +| (double) | | __exp10_compat | 0 | double | +| (double) | | __exp_compat | 0 | double | +| (double) | | __expm1_fma | 0 | double | +| (double) | | __expm1_sse2 | 0 | double | +| (double) | | __finite | 0 | double | +| (double) | | __floor_c | 0 | double | +| (double) | | __ieee754_acos_fma | 0 | double | +| (double) | | __ieee754_acos_fma4 | 0 | double | +| (double) | | __ieee754_acos_sse2 | 0 | double | +| (double) | | __ieee754_acosh | 0 | double | +| (double) | | __ieee754_asin_fma | 0 | double | +| (double) | | __ieee754_asin_fma4 | 0 | double | +| (double) | | __ieee754_asin_sse2 | 0 | double | +| (double) | | __ieee754_atanh_fma | 0 | double | +| (double) | | __ieee754_atanh_sse2 | 0 | double | +| (double) | | __ieee754_cosh | 0 | double | +| (double) | | __ieee754_exp_avx | 0 | double | +| (double) | | __ieee754_exp_fma | 0 | double | +| (double) | | __ieee754_exp_fma4 | 0 | double | +| (double) | | __ieee754_exp_sse2 | 0 | double | +| (double) | | __ieee754_j0 | 0 | double | +| (double) | | __ieee754_j1 | 0 | double | +| (double) | | __ieee754_log10 | 0 | double | +| (double) | | __ieee754_log_avx | 0 | double | +| (double) | | __ieee754_log_fma | 0 | double | +| (double) | | __ieee754_log_fma4 | 0 | double | +| (double) | | __ieee754_log_sse2 | 0 | double | +| (double) | | __ieee754_sinh_fma | 0 | double | +| (double) | | __ieee754_sinh_sse2 | 0 | double | +| (double) | | __ieee754_y0 | 0 | double | +| (double) | | __ieee754_y1 | 0 | double | +| (double) | | __ilogb | 0 | double | +| (double) | | __isinf | 0 | double | +| (double) | | __isnan | 0 | double | +| (double) | | __j0 | 0 | double | +| (double) | | __j1 | 0 | double | +| (double) | | __lgamma | 0 | double | +| (double) | | __lgamma_compat | 0 | double | +| (double) | | __llogb | 0 | double | +| (double) | | __llround | 0 | double | +| (double) | | __log1p_fma | 0 | double | +| (double) | | __log1p_sse2 | 0 | double | +| (double) | | __log2_compat | 0 | double | +| (double) | | __log2_fma | 0 | double | +| (double) | | __log2_sse2 | 0 | double | +| (double) | | __log2p1 | 0 | double | +| (double) | | __log10 | 0 | double | +| (double) | | __log10p1 | 0 | double | +| (double) | | __log_compat | 0 | double | +| (double) | | __logb | 0 | double | +| (double) | | __math_check_oflow | 0 | double | +| (double) | | __math_check_uflow | 0 | double | +| (double) | | __math_edom | 0 | double | +| (double) | | __math_invalid | 0 | double | +| (double) | | __nearbyint_c | 0 | double | +| (double) | | __nextdown | 0 | double | +| (double) | | __nextup | 0 | double | +| (double) | | __rint_c | 0 | double | +| (double) | | __round | 0 | double | +| (double) | | __roundeven_c | 0 | double | +| (double) | | __significand | 0 | double | +| (double) | | __sin_avx | 0 | double | +| (double) | | __sin_fma | 0 | double | +| (double) | | __sin_fma4 | 0 | double | +| (double) | | __sin_sse2 | 0 | double | +| (double) | | __sinh | 0 | double | +| (double) | | __sinpi | 0 | double | +| (double) | | __sqrt | 0 | double | +| (double) | | __tan_avx | 0 | double | +| (double) | | __tan_fma | 0 | double | +| (double) | | __tan_fma4 | 0 | double | +| (double) | | __tan_sse2 | 0 | double | +| (double) | | __tanh_fma | 0 | double | +| (double) | | __tanh_sse2 | 0 | double | +| (double) | | __tanpi | 0 | double | +| (double) | | __tgamma | 0 | double | +| (double) | | __trunc_c | 0 | double | +| (double) | | __y0 | 0 | double | +| (double) | | __y1 | 0 | double | +| (double) | | dtotimespec | 0 | double | +| (double,double *) | | __modf | 0 | double | +| (double,double *) | | __modf | 1 | double * | +| (double,double *,double *) | | __branred | 0 | double | +| (double,double *,double *) | | __branred | 1 | double * | +| (double,double *,double *) | | __branred | 2 | double * | +| (double,double *,double *) | | __sincos_avx | 0 | double | +| (double,double *,double *) | | __sincos_avx | 1 | double * | +| (double,double *,double *) | | __sincos_avx | 2 | double * | +| (double,double *,double *) | | __sincos_fma | 0 | double | +| (double,double *,double *) | | __sincos_fma | 1 | double * | +| (double,double *,double *) | | __sincos_fma | 2 | double * | +| (double,double *,double *) | | __sincos_fma4 | 0 | double | +| (double,double *,double *) | | __sincos_fma4 | 1 | double * | +| (double,double *,double *) | | __sincos_fma4 | 2 | double * | +| (double,double *,double *) | | __sincos_sse2 | 0 | double | +| (double,double *,double *) | | __sincos_sse2 | 1 | double * | +| (double,double *,double *) | | __sincos_sse2 | 2 | double * | +| (double,double) | | __atan2 | 0 | double | +| (double,double) | | __atan2 | 1 | double | +| (double,double) | | __fadd | 0 | double | +| (double,double) | | __fadd | 1 | double | +| (double,double) | | __fdim | 0 | double | +| (double,double) | | __fdim | 1 | double | +| (double,double) | | __fdiv | 0 | double | +| (double,double) | | __fdiv | 1 | double | +| (double,double) | | __fmaximum | 0 | double | +| (double,double) | | __fmaximum | 1 | double | +| (double,double) | | __fmaximum_mag | 0 | double | +| (double,double) | | __fmaximum_mag | 1 | double | +| (double,double) | | __fmaximum_mag_num | 0 | double | +| (double,double) | | __fmaximum_mag_num | 1 | double | +| (double,double) | | __fmaximum_num | 0 | double | +| (double,double) | | __fmaximum_num | 1 | double | +| (double,double) | | __fmaxmag | 0 | double | +| (double,double) | | __fmaxmag | 1 | double | +| (double,double) | | __fminimum | 0 | double | +| (double,double) | | __fminimum | 1 | double | +| (double,double) | | __fminimum_mag | 0 | double | +| (double,double) | | __fminimum_mag | 1 | double | +| (double,double) | | __fminimum_mag_num | 0 | double | +| (double,double) | | __fminimum_mag_num | 1 | double | +| (double,double) | | __fminimum_num | 0 | double | +| (double,double) | | __fminimum_num | 1 | double | +| (double,double) | | __fminmag | 0 | double | +| (double,double) | | __fminmag | 1 | double | +| (double,double) | | __fmod | 0 | double | +| (double,double) | | __fmod | 1 | double | +| (double,double) | | __fmod_compat | 0 | double | +| (double,double) | | __fmod_compat | 1 | double | +| (double,double) | | __fmul | 0 | double | +| (double,double) | | __fmul | 1 | double | +| (double,double) | | __fsub | 0 | double | +| (double,double) | | __fsub | 1 | double | +| (double,double) | | __hypot | 0 | double | +| (double,double) | | __hypot | 1 | double | +| (double,double) | | __hypot_compat | 0 | double | +| (double,double) | | __hypot_compat | 1 | double | +| (double,double) | | __ieee754_atan2_avx | 0 | double | +| (double,double) | | __ieee754_atan2_avx | 1 | double | +| (double,double) | | __ieee754_atan2_fma | 0 | double | +| (double,double) | | __ieee754_atan2_fma | 1 | double | +| (double,double) | | __ieee754_atan2_fma4 | 0 | double | +| (double,double) | | __ieee754_atan2_fma4 | 1 | double | +| (double,double) | | __ieee754_atan2_sse2 | 0 | double | +| (double,double) | | __ieee754_atan2_sse2 | 1 | double | +| (double,double) | | __ieee754_pow_fma | 0 | double | +| (double,double) | | __ieee754_pow_fma | 1 | double | +| (double,double) | | __ieee754_pow_fma4 | 0 | double | +| (double,double) | | __ieee754_pow_fma4 | 1 | double | +| (double,double) | | __ieee754_pow_sse2 | 0 | double | +| (double,double) | | __ieee754_pow_sse2 | 1 | double | +| (double,double) | | __ieee754_remainder | 0 | double | +| (double,double) | | __ieee754_remainder | 1 | double | +| (double,double) | | __ieee754_scalb | 0 | double | +| (double,double) | | __ieee754_scalb | 1 | double | +| (double,double) | | __nextafter | 0 | double | +| (double,double) | | __nextafter | 1 | double | +| (double,double) | | __pow_compat | 0 | double | +| (double,double) | | __pow_compat | 1 | double | +| (double,double) | | __powr | 0 | double | +| (double,double) | | __powr | 1 | double | +| (double,double) | | __remainder | 0 | double | +| (double,double) | | __remainder | 1 | double | +| (double,double) | | __scalb | 0 | double | +| (double,double) | | __scalb | 1 | double | +| (double,double) | | __x2y2m1 | 0 | double | +| (double,double) | | __x2y2m1 | 1 | double | +| (double,double,double) | | __ffma | 0 | double | +| (double,double,double) | | __ffma | 1 | double | +| (double,double,double) | | __ffma | 2 | double | +| (double,double,double) | | __fma_sse2 | 0 | double | +| (double,double,double) | | __fma_sse2 | 1 | double | +| (double,double,double) | | __fma_sse2 | 2 | double | +| (double,double,double,int) | | __lgamma_product | 0 | double | +| (double,double,double,int) | | __lgamma_product | 1 | double | +| (double,double,double,int) | | __lgamma_product | 2 | double | +| (double,double,double,int) | | __lgamma_product | 3 | int | +| (double,double,int *) | | __remquo | 0 | double | +| (double,double,int *) | | __remquo | 1 | double | +| (double,double,int *) | | __remquo | 2 | int * | +| (double,double,int) | | __kernel_standard | 0 | double | +| (double,double,int) | | __kernel_standard | 1 | double | +| (double,double,int) | | __kernel_standard | 2 | int | +| (double,double,int,double *) | | __gamma_product | 0 | double | +| (double,double,int,double *) | | __gamma_product | 1 | double | +| (double,double,int,double *) | | __gamma_product | 2 | int | +| (double,double,int,double *) | | __gamma_product | 3 | double * | +| (double,int *) | | __frexp | 0 | double | +| (double,int *) | | __frexp | 1 | int * | +| (double,int *) | | __ieee754_gamma_r | 0 | double | +| (double,int *) | | __ieee754_gamma_r | 1 | int * | +| (double,int *) | | __ieee754_lgamma_r | 0 | double | +| (double,int *) | | __ieee754_lgamma_r | 1 | int * | +| (double,int *) | | __lgamma_neg | 0 | double | +| (double,int *) | | __lgamma_neg | 1 | int * | +| (double,int *) | | __lgamma_r | 0 | double | +| (double,int *) | | __lgamma_r | 1 | int * | +| (double,int) | | __ldexp | 0 | double | +| (double,int) | | __ldexp | 1 | int | +| (double,int) | | __scalbn | 0 | double | +| (double,int) | | __scalbn | 1 | int | +| (double,int,char *) | | __gcvt | 0 | double | +| (double,int,char *) | | __gcvt | 1 | int | +| (double,int,char *) | | __gcvt | 2 | char * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __ecvt | 0 | double | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __ecvt | 1 | int | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __ecvt | 2 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __ecvt | 3 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __ecvt | 4 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __ecvt | 5 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __fcvt | 0 | double | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __fcvt | 1 | int | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __fcvt | 2 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __fcvt | 3 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __fcvt | 4 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__) | | __fcvt | 5 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 0 | double | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 1 | int | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 2 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 3 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 4 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 5 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 6 | char * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 7 | char *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __ecvt_r | 8 | size_t | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 0 | double | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 1 | int | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 2 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 3 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 4 | int * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 5 | int *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 6 | char * | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 7 | char *__restrict__ | +| (double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __fcvt_r | 8 | size_t | +| (double,int,unsigned int) | | __fromfp | 0 | double | +| (double,int,unsigned int) | | __fromfp | 1 | int | +| (double,int,unsigned int) | | __fromfp | 2 | unsigned int | +| (double,int,unsigned int) | | __fromfpx | 0 | double | +| (double,int,unsigned int) | | __fromfpx | 1 | int | +| (double,int,unsigned int) | | __fromfpx | 2 | unsigned int | +| (double,int,unsigned int) | | __ufromfp | 0 | double | +| (double,int,unsigned int) | | __ufromfp | 1 | int | +| (double,int,unsigned int) | | __ufromfp | 2 | unsigned int | +| (double,int,unsigned int) | | __ufromfpx | 0 | double | +| (double,int,unsigned int) | | __ufromfpx | 1 | int | +| (double,int,unsigned int) | | __ufromfpx | 2 | unsigned int | +| (double,long double) | | __nexttoward | 0 | double | +| (double,long double) | | __nexttoward | 1 | long double | +| (double,long long) | | __compoundn | 0 | double | +| (double,long long) | | __compoundn | 1 | long long | +| (double,long long) | | __rootn | 0 | double | +| (double,long long) | | __rootn | 1 | long long | +| (double,long) | | __scalbln | 0 | double | +| (double,long) | | __scalbln | 1 | long | +| (double,long) | | __w_scalbln | 0 | double | +| (double,long) | | __w_scalbln | 1 | long | +| (double[],int) | | getloadavg | 0 | double[] | +| (double[],int) | | getloadavg | 1 | int | +| (drand48_data *,drand48_data *__restrict__,double *,double *__restrict__) | | drand48_r | 0 | drand48_data * | +| (drand48_data *,drand48_data *__restrict__,double *,double *__restrict__) | | drand48_r | 1 | drand48_data *__restrict__ | +| (drand48_data *,drand48_data *__restrict__,double *,double *__restrict__) | | drand48_r | 2 | double * | +| (drand48_data *,drand48_data *__restrict__,double *,double *__restrict__) | | drand48_r | 3 | double *__restrict__ | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | lrand48_r | 0 | drand48_data * | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | lrand48_r | 1 | drand48_data *__restrict__ | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | lrand48_r | 2 | long * | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | lrand48_r | 3 | long *__restrict__ | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | mrand48_r | 0 | drand48_data * | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | mrand48_r | 1 | drand48_data *__restrict__ | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | mrand48_r | 2 | long * | +| (drand48_data *,drand48_data *__restrict__,long *,long *__restrict__) | | mrand48_r | 3 | long *__restrict__ | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize | 0 | dynarray_header * | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize | 1 | size_t | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize | 2 | void * | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize | 3 | size_t | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize_clear | 0 | dynarray_header * | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize_clear | 1 | size_t | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize_clear | 2 | void * | +| (dynarray_header *,size_t,void *,size_t) | | __libc_dynarray_resize_clear | 3 | size_t | +| (dynarray_header *,void *,size_t,dynarray_finalize_result *) | | __libc_dynarray_finalize | 0 | dynarray_header * | +| (dynarray_header *,void *,size_t,dynarray_finalize_result *) | | __libc_dynarray_finalize | 1 | void * | +| (dynarray_header *,void *,size_t,dynarray_finalize_result *) | | __libc_dynarray_finalize | 2 | size_t | +| (dynarray_header *,void *,size_t,dynarray_finalize_result *) | | __libc_dynarray_finalize | 3 | dynarray_finalize_result * | | (dynbuf *) | | Curl_dyn_free | 0 | dynbuf * | | (dynbuf *) | | curlx_dyn_free | 0 | dynbuf * | | (dynbuf *,Curl_easy *) | | Curl_http2_request_upgrade | 0 | dynbuf * | @@ -30319,7 +39771,218 @@ getSignatureParameterName | (dynhds *,size_t,size_t) | | Curl_dynhds_init | 0 | dynhds * | | (dynhds *,size_t,size_t) | | Curl_dynhds_init | 1 | size_t | | (dynhds *,size_t,size_t) | | Curl_dynhds_init | 2 | size_t | +| (etherent *,char *,size_t,int *) | | _nss_db_getetherent_r | 0 | etherent * | +| (etherent *,char *,size_t,int *) | | _nss_db_getetherent_r | 1 | char * | +| (etherent *,char *,size_t,int *) | | _nss_db_getetherent_r | 2 | size_t | +| (etherent *,char *,size_t,int *) | | _nss_db_getetherent_r | 3 | int * | +| (etherent *,char *,size_t,int *) | | _nss_files_getetherent_r | 0 | etherent * | +| (etherent *,char *,size_t,int *) | | _nss_files_getetherent_r | 1 | char * | +| (etherent *,char *,size_t,int *) | | _nss_files_getetherent_r | 2 | size_t | +| (etherent *,char *,size_t,int *) | | _nss_files_getetherent_r | 3 | int * | +| (exit_function_list **) | | __new_exitfn | 0 | exit_function_list ** | +| (fexcept_t *,int) | | fegetexceptflag | 0 | fexcept_t * | +| (fexcept_t *,int) | | fegetexceptflag | 1 | int | +| (file_change_detection *,const stat64 *) | | __file_change_detection_for_stat | 0 | file_change_detection * | +| (file_change_detection *,const stat64 *) | | __file_change_detection_for_stat | 1 | const stat64 * | | (fileinfo *) | | Curl_fileinfo_cleanup | 0 | fileinfo * | +| (float *,const float *) | | __canonicalizef | 0 | float * | +| (float *,const float *) | | __canonicalizef | 1 | const float * | +| (float *,float) | | __setpayloadf | 0 | float * | +| (float *,float) | | __setpayloadf | 1 | float | +| (float *,float) | | __setpayloadsigf | 0 | float * | +| (float *,float) | | __setpayloadsigf | 1 | float | +| (float) | | __acosf | 0 | float | +| (float) | | __acoshf | 0 | float | +| (float) | | __acospif | 0 | float | +| (float) | | __asinf | 0 | float | +| (float) | | __asinhf | 0 | float | +| (float) | | __asinpif | 0 | float | +| (float) | | __atanf | 0 | float | +| (float) | | __atanhf | 0 | float | +| (float) | | __atanpif | 0 | float | +| (float) | | __cbrtf | 0 | float | +| (float) | | __ceilf_c | 0 | float | +| (float) | | __cosf_fma | 0 | float | +| (float) | | __cosf_sse2 | 0 | float | +| (float) | | __coshf | 0 | float | +| (float) | | __cospif | 0 | float | +| (float) | | __erfcf | 0 | float | +| (float) | | __erff | 0 | float | +| (float) | | __exp2f_compat | 0 | float | +| (float) | | __exp2f_fma | 0 | float | +| (float) | | __exp2f_sse2 | 0 | float | +| (float) | | __exp2m1f_fma | 0 | float | +| (float) | | __exp2m1f_sse2 | 0 | float | +| (float) | | __exp10f | 0 | float | +| (float) | | __exp10f_compat | 0 | float | +| (float) | | __exp10m1f_fma | 0 | float | +| (float) | | __exp10m1f_sse2 | 0 | float | +| (float) | | __expf_compat | 0 | float | +| (float) | | __expf_fma | 0 | float | +| (float) | | __expf_sse2 | 0 | float | +| (float) | | __expm1f | 0 | float | +| (float) | | __finitef | 0 | float | +| (float) | | __floorf_c | 0 | float | +| (float) | | __ieee754_acosf | 0 | float | +| (float) | | __ieee754_acoshf | 0 | float | +| (float) | | __ieee754_asinf | 0 | float | +| (float) | | __ieee754_atanhf | 0 | float | +| (float) | | __ieee754_coshf | 0 | float | +| (float) | | __ieee754_j0f | 0 | float | +| (float) | | __ieee754_j1f | 0 | float | +| (float) | | __ieee754_log10f | 0 | float | +| (float) | | __ieee754_sinhf | 0 | float | +| (float) | | __ieee754_y0f | 0 | float | +| (float) | | __ieee754_y1f | 0 | float | +| (float) | | __ilogbf | 0 | float | +| (float) | | __isinff | 0 | float | +| (float) | | __isnanf | 0 | float | +| (float) | | __j0f | 0 | float | +| (float) | | __j1f | 0 | float | +| (float) | | __lgammaf | 0 | float | +| (float) | | __lgammaf_compat | 0 | float | +| (float) | | __llogbf | 0 | float | +| (float) | | __llroundf | 0 | float | +| (float) | | __log1pf | 0 | float | +| (float) | | __log2f_compat | 0 | float | +| (float) | | __log2f_fma | 0 | float | +| (float) | | __log2f_sse2 | 0 | float | +| (float) | | __log2p1f | 0 | float | +| (float) | | __log10f | 0 | float | +| (float) | | __log10p1f | 0 | float | +| (float) | | __logbf | 0 | float | +| (float) | | __logf_compat | 0 | float | +| (float) | | __logf_fma | 0 | float | +| (float) | | __logf_sse2 | 0 | float | +| (float) | | __lroundf | 0 | float | +| (float) | | __math_edomf | 0 | float | +| (float) | | __math_invalidf | 0 | float | +| (float) | | __nearbyintf_c | 0 | float | +| (float) | | __nextdownf | 0 | float | +| (float) | | __nextupf | 0 | float | +| (float) | | __rintf_c | 0 | float | +| (float) | | __roundevenf_c | 0 | float | +| (float) | | __roundf | 0 | float | +| (float) | | __significandf | 0 | float | +| (float) | | __sinf_fma | 0 | float | +| (float) | | __sinf_sse2 | 0 | float | +| (float) | | __sinhf | 0 | float | +| (float) | | __sinpif | 0 | float | +| (float) | | __sqrtf | 0 | float | +| (float) | | __tanf | 0 | float | +| (float) | | __tanhf | 0 | float | +| (float) | | __tanpif | 0 | float | +| (float) | | __tgammaf | 0 | float | +| (float) | | __truncf_c | 0 | float | +| (float) | | __y0f | 0 | float | +| (float) | | __y1f | 0 | float | +| (float,float *) | | __modff | 0 | float | +| (float,float *) | | __modff | 1 | float * | +| (float,float *,float *) | | __sincosf_fma | 0 | float | +| (float,float *,float *) | | __sincosf_fma | 1 | float * | +| (float,float *,float *) | | __sincosf_fma | 2 | float * | +| (float,float *,float *) | | __sincosf_sse2 | 0 | float | +| (float,float *,float *) | | __sincosf_sse2 | 1 | float * | +| (float,float *,float *) | | __sincosf_sse2 | 2 | float * | +| (float,float) | | __atan2f | 0 | float | +| (float,float) | | __atan2f | 1 | float | +| (float,float) | | __atan2pif | 0 | float | +| (float,float) | | __atan2pif | 1 | float | +| (float,float) | | __fdimf | 0 | float | +| (float,float) | | __fdimf | 1 | float | +| (float,float) | | __fmaximum_mag_numf | 0 | float | +| (float,float) | | __fmaximum_mag_numf | 1 | float | +| (float,float) | | __fmaximum_magf | 0 | float | +| (float,float) | | __fmaximum_magf | 1 | float | +| (float,float) | | __fmaximum_numf | 0 | float | +| (float,float) | | __fmaximum_numf | 1 | float | +| (float,float) | | __fmaximumf | 0 | float | +| (float,float) | | __fmaximumf | 1 | float | +| (float,float) | | __fmaxmagf | 0 | float | +| (float,float) | | __fmaxmagf | 1 | float | +| (float,float) | | __fminimum_mag_numf | 0 | float | +| (float,float) | | __fminimum_mag_numf | 1 | float | +| (float,float) | | __fminimum_magf | 0 | float | +| (float,float) | | __fminimum_magf | 1 | float | +| (float,float) | | __fminimum_numf | 0 | float | +| (float,float) | | __fminimum_numf | 1 | float | +| (float,float) | | __fminimumf | 0 | float | +| (float,float) | | __fminimumf | 1 | float | +| (float,float) | | __fminmagf | 0 | float | +| (float,float) | | __fminmagf | 1 | float | +| (float,float) | | __fmod_compatf | 0 | float | +| (float,float) | | __fmod_compatf | 1 | float | +| (float,float) | | __fmodf | 0 | float | +| (float,float) | | __fmodf | 1 | float | +| (float,float) | | __hypotf | 0 | float | +| (float,float) | | __hypotf | 1 | float | +| (float,float) | | __hypotf_compat | 0 | float | +| (float,float) | | __hypotf_compat | 1 | float | +| (float,float) | | __ieee754_atan2f | 0 | float | +| (float,float) | | __ieee754_atan2f | 1 | float | +| (float,float) | | __ieee754_remainderf | 0 | float | +| (float,float) | | __ieee754_remainderf | 1 | float | +| (float,float) | | __ieee754_scalbf | 0 | float | +| (float,float) | | __ieee754_scalbf | 1 | float | +| (float,float) | | __nextafterf | 0 | float | +| (float,float) | | __nextafterf | 1 | float | +| (float,float) | | __powf_compat | 0 | float | +| (float,float) | | __powf_compat | 1 | float | +| (float,float) | | __powf_fma | 0 | float | +| (float,float) | | __powf_fma | 1 | float | +| (float,float) | | __powf_sse2 | 0 | float | +| (float,float) | | __powf_sse2 | 1 | float | +| (float,float) | | __powrf | 0 | float | +| (float,float) | | __powrf | 1 | float | +| (float,float) | | __remainderf | 0 | float | +| (float,float) | | __remainderf | 1 | float | +| (float,float) | | __scalbf | 0 | float | +| (float,float) | | __scalbf | 1 | float | +| (float,float) | | __x2y2m1f | 0 | float | +| (float,float) | | __x2y2m1f | 1 | float | +| (float,float,float) | | __fmaf_sse2 | 0 | float | +| (float,float,float) | | __fmaf_sse2 | 1 | float | +| (float,float,float) | | __fmaf_sse2 | 2 | float | +| (float,float,int *) | | __remquof | 0 | float | +| (float,float,int *) | | __remquof | 1 | float | +| (float,float,int *) | | __remquof | 2 | int * | +| (float,float,int) | | __kernel_standard_f | 0 | float | +| (float,float,int) | | __kernel_standard_f | 1 | float | +| (float,float,int) | | __kernel_standard_f | 2 | int | +| (float,int *) | | __frexpf | 0 | float | +| (float,int *) | | __frexpf | 1 | int * | +| (float,int *) | | __ieee754_gammaf_r | 0 | float | +| (float,int *) | | __ieee754_gammaf_r | 1 | int * | +| (float,int *) | | __ieee754_lgammaf_r | 0 | float | +| (float,int *) | | __ieee754_lgammaf_r | 1 | int * | +| (float,int *) | | __lgammaf_r | 0 | float | +| (float,int *) | | __lgammaf_r | 1 | int * | +| (float,int) | | __ldexpf | 0 | float | +| (float,int) | | __ldexpf | 1 | int | +| (float,int) | | __scalbnf | 0 | float | +| (float,int) | | __scalbnf | 1 | int | +| (float,int,unsigned int) | | __fromfpf | 0 | float | +| (float,int,unsigned int) | | __fromfpf | 1 | int | +| (float,int,unsigned int) | | __fromfpf | 2 | unsigned int | +| (float,int,unsigned int) | | __fromfpxf | 0 | float | +| (float,int,unsigned int) | | __fromfpxf | 1 | int | +| (float,int,unsigned int) | | __fromfpxf | 2 | unsigned int | +| (float,int,unsigned int) | | __ufromfpf | 0 | float | +| (float,int,unsigned int) | | __ufromfpf | 1 | int | +| (float,int,unsigned int) | | __ufromfpf | 2 | unsigned int | +| (float,int,unsigned int) | | __ufromfpxf | 0 | float | +| (float,int,unsigned int) | | __ufromfpxf | 1 | int | +| (float,int,unsigned int) | | __ufromfpxf | 2 | unsigned int | +| (float,long double) | | __nexttowardf | 0 | float | +| (float,long double) | | __nexttowardf | 1 | long double | +| (float,long long) | | __compoundnf | 0 | float | +| (float,long long) | | __compoundnf | 1 | long long | +| (float,long long) | | __rootnf | 0 | float | +| (float,long long) | | __rootnf | 1 | long long | +| (float,long) | | __scalblnf | 0 | float | +| (float,long) | | __scalblnf | 1 | long | +| (float,long) | | __w_scalblnf | 0 | float | +| (float,long) | | __w_scalblnf | 1 | long | | (format_string,Args &&) | | format | 0 | format_string | | (format_string,Args &&) | | format | 1 | func:0 && | | (forward_list &&) | forward_list | forward_list | 0 | forward_list && | @@ -30327,6 +39990,28 @@ getSignatureParameterName | (forward_list &&,const Allocator &) | forward_list | forward_list | 1 | const class:1 & | | (ftp_parselist_data *) | | Curl_ftp_parselist_geterror | 0 | ftp_parselist_data * | | (ftp_parselist_data **) | | Curl_ftp_parselist_data_free | 0 | ftp_parselist_data ** | +| (fuse_in_header *,uint32_t) | | support_fuse_cast_internal | 0 | fuse_in_header * | +| (fuse_in_header *,uint32_t) | | support_fuse_cast_internal | 1 | uint32_t | +| (fuse_in_header *,uint32_t,size_t,char **) | | support_fuse_cast_name_internal | 0 | fuse_in_header * | +| (fuse_in_header *,uint32_t,size_t,char **) | | support_fuse_cast_name_internal | 1 | uint32_t | +| (fuse_in_header *,uint32_t,size_t,char **) | | support_fuse_cast_name_internal | 2 | size_t | +| (fuse_in_header *,uint32_t,size_t,char **) | | support_fuse_cast_name_internal | 3 | char ** | +| (gaicb *) | | __gai_enqueue_request | 0 | gaicb * | +| (gaicb *) | | __gai_error | 0 | gaicb * | +| (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 0 | gconv_fcts * | +| (gconv_fcts *,const char *) | | __wcsmbs_named_conv | 1 | const char * | +| (gconv_spec *,__gconv_t *,int) | | __gconv_open | 0 | gconv_spec * | +| (gconv_spec *,__gconv_t *,int) | | __gconv_open | 1 | __gconv_t * | +| (gconv_spec *,__gconv_t *,int) | | __gconv_open | 2 | int | +| (gconv_spec *,const char *,const char *) | | __gconv_create_spec | 0 | gconv_spec * | +| (gconv_spec *,const char *,const char *) | | __gconv_create_spec | 1 | const char * | +| (gconv_spec *,const char *,const char *) | | __gconv_create_spec | 2 | const char * | +| (getent_r_function,void **,char **,size_t,size_t *,int *) | | __nss_getent | 0 | getent_r_function | +| (getent_r_function,void **,char **,size_t,size_t *,int *) | | __nss_getent | 1 | void ** | +| (getent_r_function,void **,char **,size_t,size_t *,int *) | | __nss_getent | 2 | char ** | +| (getent_r_function,void **,char **,size_t,size_t *,int *) | | __nss_getent | 3 | size_t | +| (getent_r_function,void **,char **,size_t,size_t *,int *) | | __nss_getent | 4 | size_t * | +| (getent_r_function,void **,char **,size_t,size_t *,int *) | | __nss_getent | 5 | int * | | (gf,const gf,const gf) | | gf_add | 0 | gf | | (gf,const gf,const gf) | | gf_add | 1 | const gf | | (gf,const gf,const gf) | | gf_add | 2 | const gf | @@ -30337,6 +40022,39 @@ getSignatureParameterName | (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 1 | const uint8_t[56] | | (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 2 | int | | (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 3 | uint8_t | +| (gid_t,group *,char *,size_t,group **) | | __nscd_getgrgid_r | 0 | gid_t | +| (gid_t,group *,char *,size_t,group **) | | __nscd_getgrgid_r | 1 | group * | +| (gid_t,group *,char *,size_t,group **) | | __nscd_getgrgid_r | 2 | char * | +| (gid_t,group *,char *,size_t,group **) | | __nscd_getgrgid_r | 3 | size_t | +| (gid_t,group *,char *,size_t,group **) | | __nscd_getgrgid_r | 4 | group ** | +| (group *,char *,char *,size_t,group *,char *) | | __merge_grp | 0 | group * | +| (group *,char *,char *,size_t,group *,char *) | | __merge_grp | 1 | char * | +| (group *,char *,char *,size_t,group *,char *) | | __merge_grp | 2 | char * | +| (group *,char *,char *,size_t,group *,char *) | | __merge_grp | 3 | size_t | +| (group *,char *,char *,size_t,group *,char *) | | __merge_grp | 4 | group * | +| (group *,char *,char *,size_t,group *,char *) | | __merge_grp | 5 | char * | +| (group *,char *,size_t,group **) | | __getgrent_r | 0 | group * | +| (group *,char *,size_t,group **) | | __getgrent_r | 1 | char * | +| (group *,char *,size_t,group **) | | __getgrent_r | 2 | size_t | +| (group *,char *,size_t,group **) | | __getgrent_r | 3 | group ** | +| (group *,char *,size_t,int *) | | _nss_compat_getgrent_r | 0 | group * | +| (group *,char *,size_t,int *) | | _nss_compat_getgrent_r | 1 | char * | +| (group *,char *,size_t,int *) | | _nss_compat_getgrent_r | 2 | size_t | +| (group *,char *,size_t,int *) | | _nss_compat_getgrent_r | 3 | int * | +| (group *,char *,size_t,int *) | | _nss_db_getgrent_r | 0 | group * | +| (group *,char *,size_t,int *) | | _nss_db_getgrent_r | 1 | char * | +| (group *,char *,size_t,int *) | | _nss_db_getgrent_r | 2 | size_t | +| (group *,char *,size_t,int *) | | _nss_db_getgrent_r | 3 | int * | +| (group *,char *,size_t,int *) | | _nss_files_getgrent_r | 0 | group * | +| (group *,char *,size_t,int *) | | _nss_files_getgrent_r | 1 | char * | +| (group *,char *,size_t,int *) | | _nss_files_getgrent_r | 2 | size_t | +| (group *,char *,size_t,int *) | | _nss_files_getgrent_r | 3 | int * | +| (grouping_iterator *,int,locale_t,unsigned int) | | __grouping_iterator_init | 0 | grouping_iterator * | +| (grouping_iterator *,int,locale_t,unsigned int) | | __grouping_iterator_init | 1 | int | +| (grouping_iterator *,int,locale_t,unsigned int) | | __grouping_iterator_init | 2 | locale_t | +| (grouping_iterator *,int,locale_t,unsigned int) | | __grouping_iterator_init | 3 | unsigned int | +| (grouping_iterator *,unsigned int) | | __grouping_iterator_init_none | 0 | grouping_iterator * | +| (grouping_iterator *,unsigned int) | | __grouping_iterator_init_none | 1 | unsigned int | | (gzFile) | | gzclearerr | 0 | gzFile | | (gzFile) | | gzclose | 0 | gzFile | | (gzFile) | | gzclose_w | 0 | gzFile | @@ -30391,6 +40109,26 @@ getSignatureParameterName | (h1_req_parser *,const char *,size_t,const char *,int,CURLcode *) | | Curl_h1_req_parse_read | 5 | CURLcode * | | (h1_req_parser *,size_t) | | Curl_h1_req_parse_init | 0 | h1_req_parser * | | (h1_req_parser *,size_t) | | Curl_h1_req_parse_init | 1 | size_t | +| (hash_table *,const void *,size_t,void *) | | insert_entry | 0 | hash_table * | +| (hash_table *,const void *,size_t,void *) | | insert_entry | 1 | const void * | +| (hash_table *,const void *,size_t,void *) | | insert_entry | 2 | size_t | +| (hash_table *,const void *,size_t,void *) | | insert_entry | 3 | void * | +| (hash_table *,unsigned long) | | init_hash | 0 | hash_table * | +| (hash_table *,unsigned long) | | init_hash | 1 | unsigned long | +| (hostent *,char *,size_t,int *,int *) | | _nss_files_gethostent_r | 0 | hostent * | +| (hostent *,char *,size_t,int *,int *) | | _nss_files_gethostent_r | 1 | char * | +| (hostent *,char *,size_t,int *,int *) | | _nss_files_gethostent_r | 2 | size_t | +| (hostent *,char *,size_t,int *,int *) | | _nss_files_gethostent_r | 3 | int * | +| (hostent *,char *,size_t,int *,int *) | | _nss_files_gethostent_r | 4 | int * | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 0 | hostent * | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 1 | hostent *__restrict__ | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 2 | char * | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 3 | char *__restrict__ | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 4 | size_t | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 5 | hostent ** | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 6 | hostent **__restrict__ | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 7 | int * | +| (hostent *,hostent *__restrict__,char *,char *__restrict__,size_t,hostent **,hostent **__restrict__,int *,int *__restrict__) | | __gethostent_r | 8 | int *__restrict__ | | (hsts **) | | Curl_hsts_cleanup | 0 | hsts ** | | (http_resp **,int,const char *) | | Curl_http_resp_make | 0 | http_resp ** | | (http_resp **,int,const char *) | | Curl_http_resp_make | 1 | int | @@ -30443,6 +40181,21 @@ getSignatureParameterName | (i2d_of_void *,d2i_of_void *,const void *) | | ASN1_dup | 0 | i2d_of_void * | | (i2d_of_void *,d2i_of_void *,const void *) | | ASN1_dup | 1 | d2i_of_void * | | (i2d_of_void *,d2i_of_void *,const void *) | | ASN1_dup | 2 | const void * | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 0 | iconv_t | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 1 | char ** | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 2 | char **__restrict__ | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 3 | size_t * | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 4 | size_t *__restrict__ | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 5 | char ** | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 6 | char **__restrict__ | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 7 | size_t * | +| (iconv_t,char **,char **__restrict__,size_t *,size_t *__restrict__,char **,char **__restrict__,size_t *,size_t *__restrict__) | | iconv | 8 | size_t *__restrict__ | +| (in_addr_t,in_addr_t) | | __inet_makeaddr | 0 | in_addr_t | +| (in_addr_t,in_addr_t) | | __inet_makeaddr | 1 | in_addr_t | +| (in_addr_t,uint32_t,char *,size_t) | | inet_neta | 0 | in_addr_t | +| (in_addr_t,uint32_t,char *,size_t) | | inet_neta | 1 | uint32_t | +| (in_addr_t,uint32_t,char *,size_t) | | inet_neta | 2 | char * | +| (in_addr_t,uint32_t,char *,size_t) | | inet_neta | 3 | size_t | | (int32_t *,int32_t *,int32_t *,int32_t *) | | nghttp2_adjust_local_window_size | 0 | int32_t * | | (int32_t *,int32_t *,int32_t *,int32_t *) | | nghttp2_adjust_local_window_size | 1 | int32_t * | | (int32_t *,int32_t *,int32_t *,int32_t *) | | nghttp2_adjust_local_window_size | 2 | int32_t * | @@ -30455,6 +40208,7 @@ getSignatureParameterName | (int64_t *,const ASN1_ENUMERATED *) | | ASN1_ENUMERATED_get_int64 | 1 | const ASN1_ENUMERATED * | | (int64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_int64 | 0 | int64_t * | | (int64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_int64 | 1 | const ASN1_INTEGER * | +| (int *) | | rresvport | 0 | int * | | (int *,ASN1_TIME **,const ASN1_TIME *) | | ossl_x509_set1_time | 0 | int * | | (int *,ASN1_TIME **,const ASN1_TIME *) | | ossl_x509_set1_time | 1 | ASN1_TIME ** | | (int *,ASN1_TIME **,const ASN1_TIME *) | | ossl_x509_set1_time | 2 | const ASN1_TIME * | @@ -30500,6 +40254,20 @@ getSignatureParameterName | (int *,int) | | X509_PURPOSE_set | 1 | int | | (int *,int) | | X509_TRUST_set | 0 | int * | | (int *,int) | | X509_TRUST_set | 1 | int | +| (int *,int) | | __lll_unlock_elision | 0 | int * | +| (int *,int) | | __lll_unlock_elision | 1 | int | +| (int *,sa_family_t) | | rresvport_af | 0 | int * | +| (int *,sa_family_t) | | rresvport_af | 1 | sa_family_t | +| (int *,short *) | | __lll_trylock_elision | 0 | int * | +| (int *,short *) | | __lll_trylock_elision | 1 | short * | +| (int *,short *,clockid_t,const timespec *,int) | | __lll_clocklock_elision | 0 | int * | +| (int *,short *,clockid_t,const timespec *,int) | | __lll_clocklock_elision | 1 | short * | +| (int *,short *,clockid_t,const timespec *,int) | | __lll_clocklock_elision | 2 | clockid_t | +| (int *,short *,clockid_t,const timespec *,int) | | __lll_clocklock_elision | 3 | const timespec * | +| (int *,short *,clockid_t,const timespec *,int) | | __lll_clocklock_elision | 4 | int | +| (int *,short *,int) | | __lll_lock_elision | 0 | int * | +| (int *,short *,int) | | __lll_lock_elision | 1 | short * | +| (int *,short *,int) | | __lll_lock_elision | 2 | int | | (int *,sqlite3_stmt *) | | shellReset | 0 | int * | | (int *,sqlite3_stmt *) | | shellReset | 1 | sqlite3_stmt * | | (int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_restore | 0 | int * | @@ -30524,22 +40292,60 @@ getSignatureParameterName | (int) | | X509_TRUST_get0 | 0 | int | | (int) | | X509_TRUST_get_by_id | 0 | int | | (int) | | X509_VERIFY_PARAM_get0 | 0 | int | +| (int) | | __btowc | 0 | int | +| (int) | | __current_locale_name | 0 | int | +| (int) | | __fdopendir | 0 | int | +| (int) | | __get_errlist | 0 | int | +| (int) | | __get_errname | 0 | int | +| (int) | | __math_invalid_i | 0 | int | +| (int) | | __math_invalidf_i | 0 | int | +| (int) | | __p_class | 0 | int | +| (int) | | __p_rcode | 0 | int | +| (int) | | __p_type | 0 | int | +| (int) | | __pkey_get | 0 | int | +| (int) | | __sigdescr_np | 0 | int | +| (int) | | __strerrordesc_np | 0 | int | +| (int) | | _tolower | 0 | int | +| (int) | | _toupper | 0 | int | +| (int) | | btowc | 0 | int | | (int) | | c_tolower | 0 | int | | (int) | | c_toupper | 0 | int | | (int) | | curlx_sitouz | 0 | int | | (int) | | evp_pkey_type2name | 0 | int | +| (int) | | inet6_option_space | 0 | int | +| (int) | | isalnum | 0 | int | +| (int) | | isalpha | 0 | int | +| (int) | | isblank | 0 | int | +| (int) | | iscntrl | 0 | int | +| (int) | | isdigit | 0 | int | +| (int) | | isgraph | 0 | int | +| (int) | | islower | 0 | int | +| (int) | | isprint | 0 | int | +| (int) | | ispunct | 0 | int | +| (int) | | isspace | 0 | int | +| (int) | | isupper | 0 | int | +| (int) | | isxdigit | 0 | int | | (int) | | ossl_cmp_bodytype_to_string | 0 | int | | (int) | | ossl_tolower | 0 | int | | (int) | | ossl_toupper | 0 | int | +| (int) | | sigabbrev_np | 0 | int | | (int) | | sqlite3_compileoption_get | 0 | int | | (int) | | sqlite3_errstr | 0 | int | +| (int) | | strerrorname_np | 0 | int | +| (int) | | support_report_failure | 0 | int | +| (int) | | svcudp_create | 0 | int | | (int) | | tls13_alert_code | 0 | int | +| (int) | | toascii | 0 | int | +| (int) | | tolower | 0 | int | +| (int) | | toupper | 0 | int | +| (int) | | uabs | 0 | int | | (int) | | uv__accept | 0 | int | | (int) | | uv_err_name | 0 | int | | (int) | | uv_get_osfhandle | 0 | int | | (int) | | uv_strerror | 0 | int | | (int) | | uv_translate_sys_error | 0 | int | | (int) | | zError | 0 | int | +| (int) | __pthread_cleanup_class | __setdoit | 0 | int | | (int,BIO_ADDR *,int) | | BIO_accept_ex | 0 | int | | (int,BIO_ADDR *,int) | | BIO_accept_ex | 1 | BIO_ADDR * | | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | int | @@ -30591,6 +40397,18 @@ getSignatureParameterName | (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 3 | long | | (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 4 | OSSL_LIB_CTX * | | (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 5 | const char * | +| (int,FILE *) | | _IO_putc | 0 | int | +| (int,FILE *) | | _IO_putc | 1 | FILE * | +| (int,FILE *) | | __putc_unlocked | 0 | int | +| (int,FILE *) | | __putc_unlocked | 1 | FILE * | +| (int,FILE *) | | fputc | 0 | int | +| (int,FILE *) | | fputc | 1 | FILE * | +| (int,FILE *) | | fputc_unlocked | 0 | int | +| (int,FILE *) | | fputc_unlocked | 1 | FILE * | +| (int,FILE *) | | putc_unlocked | 0 | int | +| (int,FILE *) | | putc_unlocked | 1 | FILE * | +| (int,FILE *) | | ungetc | 0 | int | +| (int,FILE *) | | ungetc | 1 | FILE * | | (int,LPCOLESTR) | CComBSTR | CComBSTR | 0 | int | | (int,LPCOLESTR) | CComBSTR | CComBSTR | 1 | LPCOLESTR | | (int,LPCSTR) | CComBSTR | CComBSTR | 0 | int | @@ -30631,6 +40449,38 @@ getSignatureParameterName | (int,X509_STORE_CTX *) | | verify_callback | 1 | X509_STORE_CTX * | | (int,XCHAR) | CStringT | Insert | 0 | int | | (int,XCHAR) | CStringT | Insert | 1 | XCHAR | +| (int,_Float128) | | __ieee754_jnf128 | 0 | int | +| (int,_Float128) | | __ieee754_jnf128 | 1 | _Float128 | +| (int,_Float128) | | __ieee754_ynf128 | 0 | int | +| (int,_Float128) | | __ieee754_ynf128 | 1 | _Float128 | +| (int,_Float128) | | __jnf128 | 0 | int | +| (int,_Float128) | | __jnf128 | 1 | _Float128 | +| (int,_Float128) | | __ynf128 | 0 | int | +| (int,_Float128) | | __ynf128 | 1 | _Float128 | +| (int,__locale_data *) | | _nl_select_era_entry | 0 | int | +| (int,__locale_data *) | | _nl_select_era_entry | 1 | __locale_data * | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 0 | int | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 1 | __off64_t * | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 2 | off64_t * | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 3 | int | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 4 | __off64_t * | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 5 | off64_t * | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 6 | size_t | +| (int,__off64_t *,off64_t *,int,__off64_t *,off64_t *,size_t,unsigned int) | | support_copy_file_range | 7 | unsigned int | +| (int,aiocb *) | | __aio_fsync | 0 | int | +| (int,aiocb *) | | __aio_fsync | 1 | aiocb * | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_21 | 0 | int | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_21 | 1 | aiocb *const[] | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_21 | 2 | int | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_21 | 3 | sigevent * | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_24 | 0 | int | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_24 | 1 | aiocb *const[] | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_24 | 2 | int | +| (int,aiocb *const[],int,sigevent *) | | __lio_listio_24 | 3 | sigevent * | +| (int,bool,int,const stat64 *) | | __alloc_dir | 0 | int | +| (int,bool,int,const stat64 *) | | __alloc_dir | 1 | bool | +| (int,bool,int,const stat64 *) | | __alloc_dir | 2 | int | +| (int,bool,int,const stat64 *) | | __alloc_dir | 3 | const stat64 * | | (int,char **) | | BIO_accept | 0 | int | | (int,char **) | | BIO_accept | 1 | char ** | | (int,char **) | | uv_setup_args | 0 | int | @@ -30791,6 +40641,33 @@ getSignatureParameterName | (int,char **,const OPTIONS *) | | opt_init | 0 | int | | (int,char **,const OPTIONS *) | | opt_init | 1 | char ** | | (int,char **,const OPTIONS *) | | opt_init | 2 | const OPTIONS * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_only_r | 0 | int | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_only_r | 1 | char ** | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_only_r | 2 | const char * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_only_r | 3 | const option * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_only_r | 4 | int * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_only_r | 5 | _getopt_data * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_r | 0 | int | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_r | 1 | char ** | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_r | 2 | const char * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_r | 3 | const option * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_r | 4 | int * | +| (int,char **,const char *,const option *,int *,_getopt_data *) | | _getopt_long_r | 5 | _getopt_data * | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 0 | int | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 1 | char ** | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 2 | const char * | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 3 | const option * | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 4 | int * | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 5 | int | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 6 | _getopt_data * | +| (int,char **,const char *,const option *,int *,int,_getopt_data *,int) | | _getopt_internal_r | 7 | int | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 0 | int | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 1 | char ** | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 2 | const char * | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 3 | const option * | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 4 | int * | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 5 | int | +| (int,char **,const char *,const option *,int *,int,int) | | _getopt_internal | 6 | int | | (int,char **,gengetopt_args_info *) | | cmdline_parser | 0 | int | | (int,char **,gengetopt_args_info *) | | cmdline_parser | 1 | char ** | | (int,char **,gengetopt_args_info *) | | cmdline_parser | 2 | gengetopt_args_info * | @@ -30815,12 +40692,38 @@ getSignatureParameterName | (int,char *,size_t) | | Curl_strerror | 0 | int | | (int,char *,size_t) | | Curl_strerror | 1 | char * | | (int,char *,size_t) | | Curl_strerror | 2 | size_t | +| (int,char *,size_t) | | __strerror_r | 0 | int | +| (int,char *,size_t) | | __strerror_r | 1 | char * | +| (int,char *,size_t) | | __strerror_r | 2 | size_t | +| (int,char *,size_t) | | __ttyname_r | 0 | int | +| (int,char *,size_t) | | __ttyname_r | 1 | char * | +| (int,char *,size_t) | | __ttyname_r | 2 | size_t | | (int,char *,size_t) | | uv_err_name_r | 0 | int | | (int,char *,size_t) | | uv_err_name_r | 1 | char * | | (int,char *,size_t) | | uv_err_name_r | 2 | size_t | | (int,char *,size_t) | | uv_strerror_r | 0 | int | | (int,char *,size_t) | | uv_strerror_r | 1 | char * | | (int,char *,size_t) | | uv_strerror_r | 2 | size_t | +| (int,char *,size_t,size_t) | | __ttyname_r_chk | 0 | int | +| (int,char *,size_t,size_t) | | __ttyname_r_chk | 1 | char * | +| (int,char *,size_t,size_t) | | __ttyname_r_chk | 2 | size_t | +| (int,char *,size_t,size_t) | | __ttyname_r_chk | 3 | size_t | +| (int,char *const *,const char *) | | __posix_getopt | 0 | int | +| (int,char *const *,const char *) | | __posix_getopt | 1 | char *const * | +| (int,char *const *,const char *) | | __posix_getopt | 2 | const char * | +| (int,char *const *,const char *) | | getopt | 0 | int | +| (int,char *const *,const char *) | | getopt | 1 | char *const * | +| (int,char *const *,const char *) | | getopt | 2 | const char * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long | 0 | int | +| (int,char *const *,const char *,const option *,int *) | | getopt_long | 1 | char *const * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long | 2 | const char * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long | 3 | const option * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long | 4 | int * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long_only | 0 | int | +| (int,char *const *,const char *,const option *,int *) | | getopt_long_only | 1 | char *const * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long_only | 2 | const char * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long_only | 3 | const option * | +| (int,char *const *,const char *,const option *,int *) | | getopt_long_only | 4 | int * | | (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 0 | int | | (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 1 | const EVP_CIPHER * | | (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 2 | const char * | @@ -30846,11 +40749,73 @@ getSignatureParameterName | (int,const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_data | 1 | const OSSL_STORE_INFO * | | (int,const char *) | | BIO_meth_new | 0 | int | | (int,const char *) | | BIO_meth_new | 1 | const char * | +| (int,const char *) | | _IO_new_fdopen | 0 | int | +| (int,const char *) | | _IO_new_fdopen | 1 | const char * | | (int,const char *) | | gzdopen | 0 | int | | (int,const char *) | | gzdopen | 1 | const char * | +| (int,const char *) | | setlocale | 0 | int | +| (int,const char *) | | setlocale | 1 | const char * | +| (int,const char *) | | xsetlocale | 0 | int | +| (int,const char *) | | xsetlocale | 1 | const char * | +| (int,const char **) | | _nl_load_locale_from_archive | 0 | int | +| (int,const char **) | | _nl_load_locale_from_archive | 1 | const char ** | | (int,const char **,int *) | | sqlite3_keyword_name | 0 | int | | (int,const char **,int *) | | sqlite3_keyword_name | 1 | const char ** | | (int,const char **,int *) | | sqlite3_keyword_name | 2 | int * | +| (int,const char *,__gnuc_va_list) | | verr | 0 | int | +| (int,const char *,__gnuc_va_list) | | verr | 1 | const char * | +| (int,const char *,__gnuc_va_list) | | verr | 2 | __gnuc_va_list | +| (int,const char *,__gnuc_va_list) | | verrx | 0 | int | +| (int,const char *,__gnuc_va_list) | | verrx | 1 | const char * | +| (int,const char *,__gnuc_va_list) | | verrx | 2 | __gnuc_va_list | +| (int,const char *,__gnuc_va_list,va_list,unsigned int) | | __vsyslog_internal | 0 | int | +| (int,const char *,__gnuc_va_list,va_list,unsigned int) | | __vsyslog_internal | 1 | const char * | +| (int,const char *,__gnuc_va_list,va_list,unsigned int) | | __vsyslog_internal | 2 | __gnuc_va_list | +| (int,const char *,__gnuc_va_list,va_list,unsigned int) | | __vsyslog_internal | 3 | va_list | +| (int,const char *,__gnuc_va_list,va_list,unsigned int) | | __vsyslog_internal | 4 | unsigned int | +| (int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknod | 0 | int | +| (int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknod | 1 | const char * | +| (int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknod | 2 | __mode_t | +| (int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknod | 3 | mode_t | +| (int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknod | 4 | __dev_t * | +| (int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknod | 5 | dev_t * | +| (int,const char *,const char *,const charmap_t *) | | find_locale | 0 | int | +| (int,const char *,const char *,const charmap_t *) | | find_locale | 1 | const char * | +| (int,const char *,const char *,const charmap_t *) | | find_locale | 2 | const char * | +| (int,const char *,const char *,const charmap_t *) | | find_locale | 3 | const charmap_t * | +| (int,const char *,const char *,const charmap_t *,localedef_t *) | | load_locale | 0 | int | +| (int,const char *,const char *,const charmap_t *,localedef_t *) | | load_locale | 1 | const char * | +| (int,const char *,const char *,const charmap_t *,localedef_t *) | | load_locale | 2 | const char * | +| (int,const char *,const char *,const charmap_t *,localedef_t *) | | load_locale | 3 | const charmap_t * | +| (int,const char *,const char *,const charmap_t *,localedef_t *) | | load_locale | 4 | localedef_t * | +| (int,const char *,const char *,int,localedef_t *) | | add_to_readlist | 0 | int | +| (int,const char *,const char *,int,localedef_t *) | | add_to_readlist | 1 | const char * | +| (int,const char *,const char *,int,localedef_t *) | | add_to_readlist | 2 | const char * | +| (int,const char *,const char *,int,localedef_t *) | | add_to_readlist | 3 | int | +| (int,const char *,const char *,int,localedef_t *) | | add_to_readlist | 4 | localedef_t * | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 0 | int | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 1 | const char * | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 2 | const char *__restrict__ | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 3 | servent * | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 4 | servent *__restrict__ | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 5 | char * | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 6 | char *__restrict__ | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 7 | size_t | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 8 | servent ** | +| (int,const char *,const char *__restrict__,servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservbyport_r | 9 | servent **__restrict__ | +| (int,const char *,const timespec[2],int) | | __utimensat | 0 | int | +| (int,const char *,const timespec[2],int) | | __utimensat | 1 | const char * | +| (int,const char *,const timespec[2],int) | | __utimensat | 2 | const timespec[2] | +| (int,const char *,const timespec[2],int) | | __utimensat | 3 | int | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 0 | int | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 1 | const char * | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 2 | int | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 3 | int | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 4 | const unsigned char * | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 5 | int | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 6 | const unsigned char * | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 7 | unsigned char * | +| (int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_mkquery | 8 | int | | (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 0 | int | | (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 1 | const char * | | (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 2 | int | @@ -30883,10 +40848,60 @@ getSignatureParameterName | (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 6 | stack_st_PKCS12_SAFEBAG * | | (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 7 | OSSL_LIB_CTX * | | (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 8 | const char * | +| (int,const char *,locale_t) | | __newlocale | 0 | int | +| (int,const char *,locale_t) | | __newlocale | 1 | const char * | +| (int,const char *,locale_t) | | __newlocale | 2 | locale_t | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyport_r | 0 | int | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyport_r | 1 | const char * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyport_r | 2 | servent * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyport_r | 3 | char * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyport_r | 4 | size_t | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_db_getservbyport_r | 5 | int * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyport_r | 0 | int | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyport_r | 1 | const char * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyport_r | 2 | servent * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyport_r | 3 | char * | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyport_r | 4 | size_t | +| (int,const char *,servent *,char *,size_t,int *) | | _nss_files_getservbyport_r | 5 | int * | +| (int,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyport_r | 0 | int | +| (int,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyport_r | 1 | const char * | +| (int,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyport_r | 2 | servent * | +| (int,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyport_r | 3 | char * | +| (int,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyport_r | 4 | size_t | +| (int,const char *,servent *,char *,size_t,servent **) | | __nscd_getservbyport_r | 5 | servent ** | +| (int,const char *,va_list) | | ___vprintf_chk | 0 | int | +| (int,const char *,va_list) | | ___vprintf_chk | 1 | const char * | +| (int,const char *,va_list) | | ___vprintf_chk | 2 | va_list | +| (int,const char *,va_list) | | __vdprintf | 0 | int | +| (int,const char *,va_list) | | __vdprintf | 1 | const char * | +| (int,const char *,va_list) | | __vdprintf | 2 | va_list | +| (int,const char *,va_list) | | __vsyslog | 0 | int | +| (int,const char *,va_list) | | __vsyslog | 1 | const char * | +| (int,const char *,va_list) | | __vsyslog | 2 | va_list | +| (int,const char *,va_list,unsigned int) | | __vdprintf_internal | 0 | int | +| (int,const char *,va_list,unsigned int) | | __vdprintf_internal | 1 | const char * | +| (int,const char *,va_list,unsigned int) | | __vdprintf_internal | 2 | va_list | +| (int,const char *,va_list,unsigned int) | | __vdprintf_internal | 3 | unsigned int | +| (int,const char *,void *,size_t) | | inet_net_pton | 0 | int | +| (int,const char *,void *,size_t) | | inet_net_pton | 1 | const char * | +| (int,const char *,void *,size_t) | | inet_net_pton | 2 | void * | +| (int,const char *,void *,size_t) | | inet_net_pton | 3 | size_t | | (int,const regex_t *,char *,size_t) | | jim_regerror | 0 | int | | (int,const regex_t *,char *,size_t) | | jim_regerror | 1 | const regex_t * | | (int,const regex_t *,char *,size_t) | | jim_regerror | 2 | char * | | (int,const regex_t *,char *,size_t) | | jim_regerror | 3 | size_t | +| (int,const sigset_t *,sigset_t *) | | __pthread_sigmask | 0 | int | +| (int,const sigset_t *,sigset_t *) | | __pthread_sigmask | 1 | const sigset_t * | +| (int,const sigset_t *,sigset_t *) | | __pthread_sigmask | 2 | sigset_t * | +| (int,const sigset_t *,sigset_t *) | | __sigprocmask | 0 | int | +| (int,const sigset_t *,sigset_t *) | | __sigprocmask | 1 | const sigset_t * | +| (int,const sigset_t *,sigset_t *) | | __sigprocmask | 2 | sigset_t * | +| (int,const timespec[2]) | | __futimens | 0 | int | +| (int,const timespec[2]) | | __futimens | 1 | const timespec[2] | +| (int,const u_char *,const unsigned char *,char *) | | inet_nsap_ntoa | 0 | int | +| (int,const u_char *,const unsigned char *,char *) | | inet_nsap_ntoa | 1 | const u_char * | +| (int,const u_char *,const unsigned char *,char *) | | inet_nsap_ntoa | 2 | const unsigned char * | +| (int,const u_char *,const unsigned char *,char *) | | inet_nsap_ntoa | 3 | char * | | (int,const uint8_t *__restrict__,size_t,size_t,size_t,size_t *__restrict__,uint8_t *__restrict__) | | BrotliStoreUncompressedMetaBlock | 0 | int | | (int,const uint8_t *__restrict__,size_t,size_t,size_t,size_t *__restrict__,uint8_t *__restrict__) | | BrotliStoreUncompressedMetaBlock | 1 | const uint8_t *__restrict__ | | (int,const uint8_t *__restrict__,size_t,size_t,size_t,size_t *__restrict__,uint8_t *__restrict__) | | BrotliStoreUncompressedMetaBlock | 2 | size_t | @@ -30942,12 +40957,93 @@ getSignatureParameterName | (int,const void *,char *,size_t) | | uv_inet_ntop | 1 | const void * | | (int,const void *,char *,size_t) | | uv_inet_ntop | 2 | char * | | (int,const void *,char *,size_t) | | uv_inet_ntop | 3 | size_t | +| (int,const void *,char *,socklen_t,size_t) | | __inet_ntop_chk | 0 | int | +| (int,const void *,char *,socklen_t,size_t) | | __inet_ntop_chk | 1 | const void * | +| (int,const void *,char *,socklen_t,size_t) | | __inet_ntop_chk | 2 | char * | +| (int,const void *,char *,socklen_t,size_t) | | __inet_ntop_chk | 3 | socklen_t | +| (int,const void *,char *,socklen_t,size_t) | | __inet_ntop_chk | 4 | size_t | | (int,const void *,const char *,int) | | Curl_ip2addr | 0 | int | | (int,const void *,const char *,int) | | Curl_ip2addr | 1 | const void * | | (int,const void *,const char *,int) | | Curl_ip2addr | 2 | const char * | | (int,const void *,const char *,int) | | Curl_ip2addr | 3 | int | +| (int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t) | | __inet_ntop | 0 | int | +| (int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t) | | __inet_ntop | 1 | const void * | +| (int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t) | | __inet_ntop | 2 | const void *__restrict__ | +| (int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t) | | __inet_ntop | 3 | char * | +| (int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t) | | __inet_ntop | 4 | char *__restrict__ | +| (int,const void *,const void *__restrict__,char *,char *__restrict__,socklen_t) | | __inet_ntop | 5 | socklen_t | +| (int,const void *,int,char *,size_t) | | inet_net_ntop | 0 | int | +| (int,const void *,int,char *,size_t) | | inet_net_ntop | 1 | const void * | +| (int,const void *,int,char *,size_t) | | inet_net_ntop | 2 | int | +| (int,const void *,int,char *,size_t) | | inet_net_ntop | 3 | char * | +| (int,const void *,int,char *,size_t) | | inet_net_ntop | 4 | size_t | +| (int,const void *,size_t) | | _nl_intern_locale_data | 0 | int | +| (int,const void *,size_t) | | _nl_intern_locale_data | 1 | const void * | +| (int,const void *,size_t) | | _nl_intern_locale_data | 2 | size_t | +| (int,const void *,size_t) | | writeall | 0 | int | +| (int,const void *,size_t) | | writeall | 1 | const void * | +| (int,const void *,size_t) | | writeall | 2 | size_t | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 0 | int | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 1 | const void * | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 2 | size_t | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 3 | datahead * | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 4 | bool | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 5 | database_dyn * | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 6 | uid_t | +| (int,const void *,size_t,datahead *,bool,database_dyn *,uid_t,bool) | | cache_add | 7 | bool | +| (int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vwprintf_chk | 0 | int | +| (int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vwprintf_chk | 1 | const wchar_t * | +| (int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vwprintf_chk | 2 | const wchar_t *__restrict__ | +| (int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vwprintf_chk | 3 | __gnuc_va_list | +| (int,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vwprintf_chk | 4 | va_list | +| (int,dl_exception *,const char *) | | _dl_signal_cexception | 0 | int | +| (int,dl_exception *,const char *) | | _dl_signal_cexception | 1 | dl_exception * | +| (int,dl_exception *,const char *) | | _dl_signal_cexception | 2 | const char * | +| (int,dl_exception *,const char *) | | _dl_signal_exception | 0 | int | +| (int,dl_exception *,const char *) | | _dl_signal_exception | 1 | dl_exception * | +| (int,dl_exception *,const char *) | | _dl_signal_exception | 2 | const char * | +| (int,double) | | __ieee754_jn | 0 | int | +| (int,double) | | __ieee754_jn | 1 | double | +| (int,double) | | __ieee754_yn | 0 | int | +| (int,double) | | __ieee754_yn | 1 | double | +| (int,double) | | __jn | 0 | int | +| (int,double) | | __jn | 1 | double | +| (int,double) | | __yn | 0 | int | +| (int,double) | | __yn | 1 | double | +| (int,exit_function_list **,bool,bool) | | __run_exit_handlers | 0 | int | +| (int,exit_function_list **,bool,bool) | | __run_exit_handlers | 1 | exit_function_list ** | +| (int,exit_function_list **,bool,bool) | | __run_exit_handlers | 2 | bool | +| (int,exit_function_list **,bool,bool) | | __run_exit_handlers | 3 | bool | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 0 | int | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 1 | fd_set * | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 2 | fd_set * | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 3 | fd_set * | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 4 | const timespec * | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 5 | const __jmpbuf_arch_t * | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 6 | const __sigset_t * | +| (int,fd_set *,fd_set *,fd_set *,const timespec *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | __pselect | 7 | const sigset_t * | +| (int,fd_to_filename *) | | __fd_to_filename | 0 | int | +| (int,fd_to_filename *) | | __fd_to_filename | 1 | fd_to_filename * | +| (int,float) | | __ieee754_jnf | 0 | int | +| (int,float) | | __ieee754_jnf | 1 | float | +| (int,float) | | __ieee754_ynf | 0 | int | +| (int,float) | | __ieee754_ynf | 1 | float | +| (int,float) | | __jnf | 0 | int | +| (int,float) | | __jnf | 1 | float | +| (int,float) | | __ynf | 0 | int | +| (int,float) | | __ynf | 1 | float | +| (int,gaicb *[],int,sigevent *) | | __getaddrinfo_a | 0 | int | +| (int,gaicb *[],int,sigevent *) | | __getaddrinfo_a | 1 | gaicb *[] | +| (int,gaicb *[],int,sigevent *) | | __getaddrinfo_a | 2 | int | +| (int,gaicb *[],int,sigevent *) | | __getaddrinfo_a | 3 | sigevent * | | (int,gzFile) | | gzungetc | 0 | int | | (int,gzFile) | | gzungetc | 1 | gzFile | +| (int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *) | | getipv4sourcefilter | 0 | int | +| (int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *) | | getipv4sourcefilter | 1 | in_addr | +| (int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *) | | getipv4sourcefilter | 2 | in_addr | +| (int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *) | | getipv4sourcefilter | 3 | uint32_t * | +| (int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *) | | getipv4sourcefilter | 4 | uint32_t * | +| (int,in_addr,in_addr,uint32_t *,uint32_t *,in_addr *) | | getipv4sourcefilter | 5 | in_addr * | | (int,int *,int *,int) | | sqlite3_status | 0 | int | | (int,int *,int *,int) | | sqlite3_status | 1 | int * | | (int,int *,int *,int) | | sqlite3_status | 2 | int * | @@ -30958,8 +41054,14 @@ getSignatureParameterName | (int,int) | | EVP_MD_meth_new | 1 | int | | (int,int) | | EVP_PKEY_meth_new | 0 | int | | (int,int) | | EVP_PKEY_meth_new | 1 | int | +| (int,int) | | __isctype | 0 | int | +| (int,int) | | __isctype | 1 | int | | (int,int) | | acttab_alloc | 0 | int | | (int,int) | | acttab_alloc | 1 | int | +| (int,int) | | div | 0 | int | +| (int,int) | | div | 1 | int | +| (int,int) | | inet6_rth_space | 0 | int | +| (int,int) | | inet6_rth_space | 1 | int | | (int,int,BrotliEncoderMode,size_t,const uint8_t[],size_t *,uint8_t[]) | | BrotliEncoderCompress | 0 | int | | (int,int,BrotliEncoderMode,size_t,const uint8_t[],size_t *,uint8_t[]) | | BrotliEncoderCompress | 1 | int | | (int,int,BrotliEncoderMode,size_t,const uint8_t[],size_t *,uint8_t[]) | | BrotliEncoderCompress | 2 | BrotliEncoderMode | @@ -30976,14 +41078,43 @@ getSignatureParameterName | (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 0 | int | | (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 1 | int | | (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 2 | const char * | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vdprintf_chk | 0 | int | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vdprintf_chk | 1 | int | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vdprintf_chk | 2 | const char * | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vdprintf_chk | 3 | __gnuc_va_list | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vdprintf_chk | 4 | va_list | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vsyslog_chk | 0 | int | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vsyslog_chk | 1 | int | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vsyslog_chk | 2 | const char * | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vsyslog_chk | 3 | __gnuc_va_list | +| (int,int,const char *,__gnuc_va_list,va_list) | | __vsyslog_chk | 4 | va_list | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 0 | int | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 1 | int | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 2 | const char * | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 3 | __mode_t | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 4 | mode_t | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 5 | __dev_t * | +| (int,int,const char *,__mode_t,mode_t,__dev_t *,dev_t *) | | __xmknodat | 6 | dev_t * | | (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 0 | int | | (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 1 | int | | (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 2 | const char * | | (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 3 | const char * | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 0 | int | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 1 | int | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 2 | const char * | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 3 | unsigned int | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 4 | const char * | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 5 | va_list | +| (int,int,const char *,unsigned int,const char *,va_list,unsigned int) | | __error_at_line_internal | 6 | unsigned int | | (int,int,const char *,va_list) | | ERR_vset_error | 0 | int | | (int,int,const char *,va_list) | | ERR_vset_error | 1 | int | | (int,int,const char *,va_list) | | ERR_vset_error | 2 | const char * | | (int,int,const char *,va_list) | | ERR_vset_error | 3 | va_list | +| (int,int,const char *,va_list,unsigned int) | | __error_internal | 0 | int | +| (int,int,const char *,va_list,unsigned int) | | __error_internal | 1 | int | +| (int,int,const char *,va_list,unsigned int) | | __error_internal | 2 | const char * | +| (int,int,const char *,va_list,unsigned int) | | __error_internal | 3 | va_list | +| (int,int,const char *,va_list,unsigned int) | | __error_internal | 4 | unsigned int | | (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 0 | int | | (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 1 | int | | (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 2 | const unsigned char * | @@ -31025,20 +41156,129 @@ getSignatureParameterName | (int,int,void *) | | ossl_X509_ALGOR_from_nid | 0 | int | | (int,int,void *) | | ossl_X509_ALGOR_from_nid | 1 | int | | (int,int,void *) | | ossl_X509_ALGOR_from_nid | 2 | void * | +| (int,locale_t) | | __isalnum_l | 0 | int | +| (int,locale_t) | | __isalnum_l | 1 | locale_t | +| (int,locale_t) | | __isalpha_l | 0 | int | +| (int,locale_t) | | __isalpha_l | 1 | locale_t | +| (int,locale_t) | | __isblank_l | 0 | int | +| (int,locale_t) | | __isblank_l | 1 | locale_t | +| (int,locale_t) | | __iscntrl_l | 0 | int | +| (int,locale_t) | | __iscntrl_l | 1 | locale_t | +| (int,locale_t) | | __isdigit_l | 0 | int | +| (int,locale_t) | | __isdigit_l | 1 | locale_t | +| (int,locale_t) | | __isgraph_l | 0 | int | +| (int,locale_t) | | __isgraph_l | 1 | locale_t | +| (int,locale_t) | | __islower_l | 0 | int | +| (int,locale_t) | | __islower_l | 1 | locale_t | +| (int,locale_t) | | __isprint_l | 0 | int | +| (int,locale_t) | | __isprint_l | 1 | locale_t | +| (int,locale_t) | | __ispunct_l | 0 | int | +| (int,locale_t) | | __ispunct_l | 1 | locale_t | +| (int,locale_t) | | __isspace_l | 0 | int | +| (int,locale_t) | | __isspace_l | 1 | locale_t | +| (int,locale_t) | | __isupper_l | 0 | int | +| (int,locale_t) | | __isupper_l | 1 | locale_t | +| (int,locale_t) | | __isxdigit_l | 0 | int | +| (int,locale_t) | | __isxdigit_l | 1 | locale_t | +| (int,locale_t) | | __tolower_l | 0 | int | +| (int,locale_t) | | __tolower_l | 1 | locale_t | +| (int,locale_t) | | __toupper_l | 0 | int | +| (int,locale_t) | | __toupper_l | 1 | locale_t | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 0 | int | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 1 | loff_t * | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 2 | off64_t * | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 3 | int | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 4 | loff_t * | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 5 | off64_t * | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 6 | size_t | +| (int,loff_t *,off64_t *,int,loff_t *,off64_t *,size_t,unsigned int) | | xcopy_file_range | 7 | unsigned int | +| (int,long double) | | __ieee754_jnl | 0 | int | +| (int,long double) | | __ieee754_jnl | 1 | long double | +| (int,long double) | | __ieee754_ynl | 0 | int | +| (int,long double) | | __ieee754_ynl | 1 | long double | +| (int,long double) | | __jnl | 0 | int | +| (int,long double) | | __jnl | 1 | long double | +| (int,long double) | | __ynl | 0 | int | +| (int,long double) | | __ynl | 1 | long double | | (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 0 | int | | (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 1 | long | | (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 2 | void * | | (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 3 | CRYPTO_EX_new * | | (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 4 | CRYPTO_EX_dup * | | (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 5 | CRYPTO_EX_free * | +| (int,protoent *,char *,size_t,int *) | | _nss_db_getprotobynumber_r | 0 | int | +| (int,protoent *,char *,size_t,int *) | | _nss_db_getprotobynumber_r | 1 | protoent * | +| (int,protoent *,char *,size_t,int *) | | _nss_db_getprotobynumber_r | 2 | char * | +| (int,protoent *,char *,size_t,int *) | | _nss_db_getprotobynumber_r | 3 | size_t | +| (int,protoent *,char *,size_t,int *) | | _nss_db_getprotobynumber_r | 4 | int * | +| (int,protoent *,char *,size_t,int *) | | _nss_files_getprotobynumber_r | 0 | int | +| (int,protoent *,char *,size_t,int *) | | _nss_files_getprotobynumber_r | 1 | protoent * | +| (int,protoent *,char *,size_t,int *) | | _nss_files_getprotobynumber_r | 2 | char * | +| (int,protoent *,char *,size_t,int *) | | _nss_files_getprotobynumber_r | 3 | size_t | +| (int,protoent *,char *,size_t,int *) | | _nss_files_getprotobynumber_r | 4 | int * | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 0 | int | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 1 | protoent * | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 2 | protoent *__restrict__ | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 3 | char * | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 4 | char *__restrict__ | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 5 | size_t | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 6 | protoent ** | +| (int,protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotobynumber_r | 7 | protoent **__restrict__ | +| (int,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbynumber_r | 0 | int | +| (int,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbynumber_r | 1 | rpcent * | +| (int,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbynumber_r | 2 | char * | +| (int,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbynumber_r | 3 | size_t | +| (int,rpcent *,char *,size_t,int *) | | _nss_db_getrpcbynumber_r | 4 | int * | +| (int,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbynumber_r | 0 | int | +| (int,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbynumber_r | 1 | rpcent * | +| (int,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbynumber_r | 2 | char * | +| (int,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbynumber_r | 3 | size_t | +| (int,rpcent *,char *,size_t,int *) | | _nss_files_getrpcbynumber_r | 4 | int * | +| (int,rpcent *,char *,size_t,rpcent **) | | __getrpcbynumber_r | 0 | int | +| (int,rpcent *,char *,size_t,rpcent **) | | __getrpcbynumber_r | 1 | rpcent * | +| (int,rpcent *,char *,size_t,rpcent **) | | __getrpcbynumber_r | 2 | char * | +| (int,rpcent *,char *,size_t,rpcent **) | | __getrpcbynumber_r | 3 | size_t | +| (int,rpcent *,char *,size_t,rpcent **) | | __getrpcbynumber_r | 4 | rpcent ** | | (int,size_t) | | ossl_calculate_comp_expansion | 0 | int | | (int,size_t) | | ossl_calculate_comp_expansion | 1 | size_t | +| (int,sockaddr *,socklen_t *) | | xaccept | 0 | int | +| (int,sockaddr *,socklen_t *) | | xaccept | 1 | sockaddr * | +| (int,sockaddr *,socklen_t *) | | xaccept | 2 | socklen_t * | +| (int,sockaddr *,socklen_t *,int) | | xaccept4 | 0 | int | +| (int,sockaddr *,socklen_t *,int) | | xaccept4 | 1 | sockaddr * | +| (int,sockaddr *,socklen_t *,int) | | xaccept4 | 2 | socklen_t * | +| (int,sockaddr *,socklen_t *,int) | | xaccept4 | 3 | int | | (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 0 | int | | (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 1 | sqlite3_int64 * | | (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 2 | sqlite3_int64 * | | (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 3 | int | | (int,stat *) | | stat_time_normalize | 0 | int | | (int,stat *) | | stat_time_normalize | 1 | stat * | +| (int,statvfs64 *) | | __fstatvfs64 | 0 | int | +| (int,statvfs64 *) | | __fstatvfs64 | 1 | statvfs64 * | +| (int,u_int,u_int) | | svcfd_create | 0 | int | +| (int,u_int,u_int) | | svcfd_create | 1 | u_int | +| (int,u_int,u_int) | | svcfd_create | 2 | u_int | +| (int,u_int,u_int) | | svctcp_create | 0 | int | +| (int,u_int,u_int) | | svctcp_create | 1 | u_int | +| (int,u_int,u_int) | | svctcp_create | 2 | u_int | +| (int,u_int,u_int) | | svcudp_bufcreate | 0 | int | +| (int,u_int,u_int) | | svcudp_bufcreate | 1 | u_int | +| (int,u_int,u_int) | | svcudp_bufcreate | 2 | u_int | +| (int,u_int,u_int) | | svcunixfd_create | 0 | int | +| (int,u_int,u_int) | | svcunixfd_create | 1 | u_int | +| (int,u_int,u_int) | | svcunixfd_create | 2 | u_int | +| (int,u_int,u_int,char *) | | svcunix_create | 0 | int | +| (int,u_int,u_int,char *) | | svcunix_create | 1 | u_int | +| (int,u_int,u_int,char *) | | svcunix_create | 2 | u_int | +| (int,u_int,u_int,char *) | | svcunix_create | 3 | char * | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 0 | int | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 1 | uint32_t | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 2 | const sockaddr * | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 3 | socklen_t | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 4 | uint32_t * | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 5 | uint32_t * | +| (int,uint32_t,const sockaddr *,socklen_t,uint32_t *,uint32_t *,sockaddr_storage *) | | getsourcefilter | 6 | sockaddr_storage * | | (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 0 | int | | (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 1 | unsigned char * | | (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 2 | int | @@ -31061,9 +41301,13 @@ getSignatureParameterName | (int,void *) | | OSSL_STORE_INFO_new | 1 | void * | | (int,void *) | | sqlite3_randomness | 0 | int | | (int,void *) | | sqlite3_randomness | 1 | void * | +| (int,void *,size_t) | | __readall | 0 | int | +| (int,void *,size_t) | | __readall | 1 | void * | +| (int,void *,size_t) | | __readall | 2 | size_t | | (int_dhx942_dh **,const unsigned char **,long) | | d2i_int_dhx | 0 | int_dhx942_dh ** | | (int_dhx942_dh **,const unsigned char **,long) | | d2i_int_dhx | 1 | const unsigned char ** | | (int_dhx942_dh **,const unsigned char **,long) | | d2i_int_dhx | 2 | long | +| (intptr_t) | | __sbrk | 0 | intptr_t | | (lemon *) | | ResortStates | 0 | lemon * | | (lemon *) | | getstate | 0 | lemon * | | (lemon *,action *) | | compute_action | 0 | lemon * | @@ -31086,6 +41330,154 @@ getSignatureParameterName | (lhash_st_CONF_VALUE *,const char *,long *) | | CONF_load | 0 | lhash_st_CONF_VALUE * | | (lhash_st_CONF_VALUE *,const char *,long *) | | CONF_load | 1 | const char * | | (lhash_st_CONF_VALUE *,const char *,long *) | | CONF_load | 2 | long * | +| (linereader *) | | lr_eof | 0 | linereader * | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 0 | linereader * | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 1 | const charmap_t * | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 2 | const char * | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 3 | localedef_t * | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 4 | token_t | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 5 | int | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 6 | const char * | +| (linereader *,const charmap_t *,const char *,localedef_t *,token_t,int,const char *,int) | | handle_copy | 7 | int | +| (linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int) | | lr_token | 0 | linereader * | +| (linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int) | | lr_token | 1 | const charmap_t * | +| (linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int) | | lr_token | 2 | localedef_t * | +| (linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int) | | lr_token | 3 | const repertoire_t * | +| (linereader *,const charmap_t *,localedef_t *,const repertoire_t *,int) | | lr_token | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | address_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | address_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | address_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | address_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | address_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | identification_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | identification_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | identification_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | identification_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | identification_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | measurement_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | measurement_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | measurement_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | measurement_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | measurement_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | messages_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | messages_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | messages_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | messages_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | messages_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | monetary_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | monetary_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | monetary_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | monetary_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | monetary_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | name_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | name_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | name_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | name_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | name_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | numeric_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | numeric_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | numeric_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | numeric_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | numeric_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | paper_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | paper_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | paper_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | paper_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | paper_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | telephone_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | telephone_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | telephone_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | telephone_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | telephone_read | 4 | int | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | time_read | 0 | linereader * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | time_read | 1 | localedef_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | time_read | 2 | const charmap_t * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | time_read | 3 | const char * | +| (linereader *,localedef_t *,const charmap_t *,const char *,int) | | time_read | 4 | int | +| (link_map *) | | __rtld_malloc_init_real | 0 | link_map * | +| (link_map *) | | _dl_find_object_update | 0 | link_map * | +| (link_map **,unsigned int,bool,bool) | | _dl_sort_maps | 0 | link_map ** | +| (link_map **,unsigned int,bool,bool) | | _dl_sort_maps | 1 | unsigned int | +| (link_map **,unsigned int,bool,bool) | | _dl_sort_maps | 2 | bool | +| (link_map **,unsigned int,bool,bool) | | _dl_sort_maps | 3 | bool | +| (link_map *,Dl_serinfo *,bool) | | _dl_rtld_di_serinfo | 0 | link_map * | +| (link_map *,Dl_serinfo *,bool) | | _dl_rtld_di_serinfo | 1 | Dl_serinfo * | +| (link_map *,Dl_serinfo *,bool) | | _dl_rtld_di_serinfo | 2 | bool | +| (link_map *,Elf64_Word) | | _dl_fixup | 0 | link_map * | +| (link_map *,Elf64_Word) | | _dl_fixup | 1 | Elf64_Word | +| (link_map *,Elf64_Word,Elf64_Addr,void *,long *) | | _dl_profile_fixup | 0 | link_map * | +| (link_map *,Elf64_Word,Elf64_Addr,void *,long *) | | _dl_profile_fixup | 1 | Elf64_Word | +| (link_map *,Elf64_Word,Elf64_Addr,void *,long *) | | _dl_profile_fixup | 2 | Elf64_Addr | +| (link_map *,Elf64_Word,Elf64_Addr,void *,long *) | | _dl_profile_fixup | 3 | void * | +| (link_map *,Elf64_Word,Elf64_Addr,void *,long *) | | _dl_profile_fixup | 4 | long * | +| (link_map *,Lmid_t) | | _dl_add_to_namespace_list | 0 | link_map * | +| (link_map *,Lmid_t) | | _dl_add_to_namespace_list | 1 | Lmid_t | +| (link_map *,Lmid_t) | | _dl_audit_objopen | 0 | link_map * | +| (link_map *,Lmid_t) | | _dl_audit_objopen | 1 | Lmid_t | +| (link_map *,Lmid_t,uintptr_t *) | | la_objopen | 0 | link_map * | +| (link_map *,Lmid_t,uintptr_t *) | | la_objopen | 1 | Lmid_t | +| (link_map *,Lmid_t,uintptr_t *) | | la_objopen | 2 | uintptr_t * | +| (link_map *,const Elf64_Sym *,void **,lookup_t) | | _dl_audit_symbind_alt | 0 | link_map * | +| (link_map *,const Elf64_Sym *,void **,lookup_t) | | _dl_audit_symbind_alt | 1 | const Elf64_Sym * | +| (link_map *,const Elf64_Sym *,void **,lookup_t) | | _dl_audit_symbind_alt | 2 | void ** | +| (link_map *,const Elf64_Sym *,void **,lookup_t) | | _dl_audit_symbind_alt | 3 | lookup_t | +| (link_map *,const char *,char *) | | _dl_dst_substitute | 0 | link_map * | +| (link_map *,const char *,char *) | | _dl_dst_substitute | 1 | const char * | +| (link_map *,const char *,char *) | | _dl_dst_substitute | 2 | char * | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_new_object | 0 | link_map * | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_new_object | 1 | const char * | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_new_object | 2 | int | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_new_object | 3 | int | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_new_object | 4 | int | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_new_object | 5 | Lmid_t | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_object | 0 | link_map * | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_object | 1 | const char * | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_object | 2 | int | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_object | 3 | int | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_object | 4 | int | +| (link_map *,const char *,int,int,int,Lmid_t) | | _dl_map_object | 5 | Lmid_t | +| (link_map *,const char *,uint32_t,const char *,uint32_t) | | _dl_lookup_direct | 0 | link_map * | +| (link_map *,const char *,uint32_t,const char *,uint32_t) | | _dl_lookup_direct | 1 | const char * | +| (link_map *,const char *,uint32_t,const char *,uint32_t) | | _dl_lookup_direct | 2 | uint32_t | +| (link_map *,const char *,uint32_t,const char *,uint32_t) | | _dl_lookup_direct | 3 | const char * | +| (link_map *,const char *,uint32_t,const char *,uint32_t) | | _dl_lookup_direct | 4 | uint32_t | +| (link_map *,int,char **,char **) | | _dl_init | 0 | link_map * | +| (link_map *,int,char **,char **) | | _dl_init | 1 | int | +| (link_map *,int,char **,char **) | | _dl_init | 2 | char ** | +| (link_map *,int,char **,char **) | | _dl_init | 3 | char ** | +| (link_map *,int,const Elf64_Phdr *) | | _dl_process_pt_gnu_property | 0 | link_map * | +| (link_map *,int,const Elf64_Phdr *) | | _dl_process_pt_gnu_property | 1 | int | +| (link_map *,int,const Elf64_Phdr *) | | _dl_process_pt_gnu_property | 2 | const Elf64_Phdr * | +| (link_map *,link_map **,unsigned int,int,int) | | _dl_map_object_deps | 0 | link_map * | +| (link_map *,link_map **,unsigned int,int,int) | | _dl_map_object_deps | 1 | link_map ** | +| (link_map *,link_map **,unsigned int,int,int) | | _dl_map_object_deps | 2 | unsigned int | +| (link_map *,link_map **,unsigned int,int,int) | | _dl_map_object_deps | 3 | int | +| (link_map *,link_map **,unsigned int,int,int) | | _dl_map_object_deps | 4 | int | +| (link_map *,link_map_public *,bool) | | _dl_close_worker | 0 | link_map * | +| (link_map *,link_map_public *,bool) | | _dl_close_worker | 1 | link_map_public * | +| (link_map *,link_map_public *,bool) | | _dl_close_worker | 2 | bool | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object | 0 | link_map * | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object | 1 | r_scope_elem *[] | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object | 2 | int | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object | 3 | int | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object_no_relro | 0 | link_map * | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object_no_relro | 1 | r_scope_elem *[] | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object_no_relro | 2 | int | +| (link_map *,r_scope_elem *[],int,int) | | _dl_relocate_object_no_relro | 3 | int | +| (link_map *,reloc_result *,Elf64_Addr *,void *,long *) | | _dl_audit_pltenter | 0 | link_map * | +| (link_map *,reloc_result *,Elf64_Addr *,void *,long *) | | _dl_audit_pltenter | 1 | reloc_result * | +| (link_map *,reloc_result *,Elf64_Addr *,void *,long *) | | _dl_audit_pltenter | 2 | Elf64_Addr * | +| (link_map *,reloc_result *,Elf64_Addr *,void *,long *) | | _dl_audit_pltenter | 3 | void * | +| (link_map *,reloc_result *,Elf64_Addr *,void *,long *) | | _dl_audit_pltenter | 4 | long * | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 0 | link_map * | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 1 | reloc_result * | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 2 | const void * | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 3 | const Elf64_Sym * | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 4 | Elf64_Addr * | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 5 | lookup_t | +| (link_map *,reloc_result *,const void *,const Elf64_Sym *,Elf64_Addr *,lookup_t,bool) | | _dl_audit_symbind | 6 | bool | +| (link_map *,size_t) | | _dl_make_tlsdesc_dynamic | 0 | link_map * | +| (link_map *,size_t) | | _dl_make_tlsdesc_dynamic | 1 | size_t | | (list &&) | list | list | 0 | list && | | (list &&,const Allocator &) | list | list | 0 | list && | | (list &&,const Allocator &) | list | list | 1 | const class:1 & | @@ -31095,6 +41487,37 @@ getSignatureParameterName | (list_head *,list_node *) | | _libssh2_list_add | 1 | list_node * | | (list_node *) | | _libssh2_list_next | 0 | list_node * | | (list_node *) | | _libssh2_list_prev | 0 | list_node * | +| (list_t *,list_t *) | | __nptl_stack_list_add | 0 | list_t * | +| (list_t *,list_t *) | | __nptl_stack_list_add | 1 | list_t * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 0 | loaded_l10nfile ** | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 1 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 2 | size_t | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 3 | int | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 4 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 5 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 6 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 7 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 8 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 9 | const char * | +| (loaded_l10nfile **,const char *,size_t,int,const char *,const char *,const char *,const char *,const char *,const char *,int) | | _nl_make_l10nflist | 10 | int | +| (loaded_l10nfile *,binding *,const char *,int,size_t *) | | _nl_find_msg | 0 | loaded_l10nfile * | +| (loaded_l10nfile *,binding *,const char *,int,size_t *) | | _nl_find_msg | 1 | binding * | +| (loaded_l10nfile *,binding *,const char *,int,size_t *) | | _nl_find_msg | 2 | const char * | +| (loaded_l10nfile *,binding *,const char *,int,size_t *) | | _nl_find_msg | 3 | int | +| (loaded_l10nfile *,binding *,const char *,int,size_t *) | | _nl_find_msg | 4 | size_t * | +| (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 0 | locale_file * | +| (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 1 | const uint32_t * | +| (locale_file *,const uint32_t *,size_t) | | add_locale_uint32_array | 2 | size_t | +| (locale_file *,size_t) | | init_locale_data | 0 | locale_file * | +| (locale_file *,size_t) | | init_locale_data | 1 | size_t | +| (locale_t) | | __duplocale | 0 | locale_t | +| (locale_t,const char *,const char *) | | __translated_number_width | 0 | locale_t | +| (locale_t,const char *,const char *) | | __translated_number_width | 1 | const char * | +| (locale_t,const char *,const char *) | | __translated_number_width | 2 | const char * | +| (locarhandle *,const char *,locale_data_t,bool) | | add_locale_to_archive | 0 | locarhandle * | +| (locarhandle *,const char *,locale_data_t,bool) | | add_locale_to_archive | 1 | const char * | +| (locarhandle *,const char *,locale_data_t,bool) | | add_locale_to_archive | 2 | locale_data_t | +| (locarhandle *,const char *,locale_data_t,bool) | | add_locale_to_archive | 3 | bool | | (long *,const char *) | | secs2ms | 0 | long * | | (long *,const char *) | | secs2ms | 1 | const char * | | (long *,const char *) | | str2num | 0 | long * | @@ -31107,10 +41530,342 @@ getSignatureParameterName | (long *,const char *,long) | | str2unummax | 0 | long * | | (long *,const char *,long) | | str2unummax | 1 | const char * | | (long *,const char *,long) | | str2unummax | 2 | long | +| (long double *,const long double *) | | __canonicalizel | 0 | long double * | +| (long double *,const long double *) | | __canonicalizel | 1 | const long double * | +| (long double *,long double) | | __setpayloadl | 0 | long double * | +| (long double *,long double) | | __setpayloadl | 1 | long double | +| (long double *,long double) | | __setpayloadsigl | 0 | long double * | +| (long double *,long double) | | __setpayloadsigl | 1 | long double | +| (long double) | | __acoshl | 0 | long double | +| (long double) | | __acosl | 0 | long double | +| (long double) | | __acospil | 0 | long double | +| (long double) | | __asinhl | 0 | long double | +| (long double) | | __asinl | 0 | long double | +| (long double) | | __asinpil | 0 | long double | +| (long double) | | __atanhl | 0 | long double | +| (long double) | | __cbrtl | 0 | long double | +| (long double) | | __coshl | 0 | long double | +| (long double) | | __cosl | 0 | long double | +| (long double) | | __erfcl | 0 | long double | +| (long double) | | __erfl | 0 | long double | +| (long double) | | __exp2l | 0 | long double | +| (long double) | | __exp10l | 0 | long double | +| (long double) | | __expl | 0 | long double | +| (long double) | | __ieee754_acoshl | 0 | long double | +| (long double) | | __ieee754_asinl | 0 | long double | +| (long double) | | __ieee754_atanhl | 0 | long double | +| (long double) | | __ieee754_coshl | 0 | long double | +| (long double) | | __ieee754_j0l | 0 | long double | +| (long double) | | __ieee754_j1l | 0 | long double | +| (long double) | | __ieee754_sinhl | 0 | long double | +| (long double) | | __ieee754_y0l | 0 | long double | +| (long double) | | __ieee754_y1l | 0 | long double | +| (long double) | | __iscanonicall | 0 | long double | +| (long double) | | __isinfl | 0 | long double | +| (long double) | | __isnanl | 0 | long double | +| (long double) | | __j0l | 0 | long double | +| (long double) | | __j1l | 0 | long double | +| (long double) | | __lgammal | 0 | long double | +| (long double) | | __lgammal_compat | 0 | long double | +| (long double) | | __llroundl | 0 | long double | +| (long double) | | __log2l | 0 | long double | +| (long double) | | __log2p1l | 0 | long double | +| (long double) | | __log10l | 0 | long double | +| (long double) | | __log10p1l | 0 | long double | +| (long double) | | __logl | 0 | long double | +| (long double) | | __lroundl | 0 | long double | +| (long double) | | __nextdownl | 0 | long double | +| (long double) | | __nextupl | 0 | long double | +| (long double) | | __roundevenl | 0 | long double | +| (long double) | | __roundl | 0 | long double | +| (long double) | | __sinhl | 0 | long double | +| (long double) | | __sinl | 0 | long double | +| (long double) | | __sinpil | 0 | long double | +| (long double) | | __sqrtl | 0 | long double | +| (long double) | | __tanhl | 0 | long double | +| (long double) | | __tanl | 0 | long double | +| (long double) | | __tanpil | 0 | long double | +| (long double) | | __tgammal | 0 | long double | +| (long double) | | __y0l | 0 | long double | +| (long double) | | __y1l | 0 | long double | +| (long double,int *) | | __frexpl | 0 | long double | +| (long double,int *) | | __frexpl | 1 | int * | +| (long double,int *) | | __ieee754_gammal_r | 0 | long double | +| (long double,int *) | | __ieee754_gammal_r | 1 | int * | +| (long double,int *) | | __ieee754_lgammal_r | 0 | long double | +| (long double,int *) | | __ieee754_lgammal_r | 1 | int * | +| (long double,int *) | | __lgamma_negl | 0 | long double | +| (long double,int *) | | __lgamma_negl | 1 | int * | +| (long double,int *) | | __lgammal_r | 0 | long double | +| (long double,int *) | | __lgammal_r | 1 | int * | +| (long double,int) | | __ldexpl | 0 | long double | +| (long double,int) | | __ldexpl | 1 | int | +| (long double,int,char *) | | __qgcvt | 0 | long double | +| (long double,int,char *) | | __qgcvt | 1 | int | +| (long double,int,char *) | | __qgcvt | 2 | char * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qecvt | 0 | long double | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qecvt | 1 | int | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qecvt | 2 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qecvt | 3 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qecvt | 4 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qecvt | 5 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qfcvt | 0 | long double | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qfcvt | 1 | int | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qfcvt | 2 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qfcvt | 3 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qfcvt | 4 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__) | | __qfcvt | 5 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 0 | long double | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 1 | int | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 2 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 3 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 4 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 5 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 6 | char * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 7 | char *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qecvt_r | 8 | size_t | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 0 | long double | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 1 | int | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 2 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 3 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 4 | int * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 5 | int *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 6 | char * | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 7 | char *__restrict__ | +| (long double,int,int *,int *__restrict__,int *,int *__restrict__,char *,char *__restrict__,size_t) | | __qfcvt_r | 8 | size_t | +| (long double,int,unsigned int) | | __fromfpl | 0 | long double | +| (long double,int,unsigned int) | | __fromfpl | 1 | int | +| (long double,int,unsigned int) | | __fromfpl | 2 | unsigned int | +| (long double,int,unsigned int) | | __fromfpxl | 0 | long double | +| (long double,int,unsigned int) | | __fromfpxl | 1 | int | +| (long double,int,unsigned int) | | __fromfpxl | 2 | unsigned int | +| (long double,int,unsigned int) | | __ufromfpl | 0 | long double | +| (long double,int,unsigned int) | | __ufromfpl | 1 | int | +| (long double,int,unsigned int) | | __ufromfpl | 2 | unsigned int | +| (long double,int,unsigned int) | | __ufromfpxl | 0 | long double | +| (long double,int,unsigned int) | | __ufromfpxl | 1 | int | +| (long double,int,unsigned int) | | __ufromfpxl | 2 | unsigned int | +| (long double,long double *) | | __ieee754_rem_pio2l | 0 | long double | +| (long double,long double *) | | __ieee754_rem_pio2l | 1 | long double * | +| (long double,long double *) | | __modfl | 0 | long double | +| (long double,long double *) | | __modfl | 1 | long double * | +| (long double,long double *,long double *) | | __sincosl | 0 | long double | +| (long double,long double *,long double *) | | __sincosl | 1 | long double * | +| (long double,long double *,long double *) | | __sincosl | 2 | long double * | +| (long double,long double) | | __atan2l | 0 | long double | +| (long double,long double) | | __atan2l | 1 | long double | +| (long double,long double) | | __daddl | 0 | long double | +| (long double,long double) | | __daddl | 1 | long double | +| (long double,long double) | | __ddivl | 0 | long double | +| (long double,long double) | | __ddivl | 1 | long double | +| (long double,long double) | | __dmull | 0 | long double | +| (long double,long double) | | __dmull | 1 | long double | +| (long double,long double) | | __dsubl | 0 | long double | +| (long double,long double) | | __dsubl | 1 | long double | +| (long double,long double) | | __faddl | 0 | long double | +| (long double,long double) | | __faddl | 1 | long double | +| (long double,long double) | | __fdiml | 0 | long double | +| (long double,long double) | | __fdiml | 1 | long double | +| (long double,long double) | | __fdivl | 0 | long double | +| (long double,long double) | | __fdivl | 1 | long double | +| (long double,long double) | | __fmaximum_mag_numl | 0 | long double | +| (long double,long double) | | __fmaximum_mag_numl | 1 | long double | +| (long double,long double) | | __fmaximum_magl | 0 | long double | +| (long double,long double) | | __fmaximum_magl | 1 | long double | +| (long double,long double) | | __fmaximum_numl | 0 | long double | +| (long double,long double) | | __fmaximum_numl | 1 | long double | +| (long double,long double) | | __fmaximuml | 0 | long double | +| (long double,long double) | | __fmaximuml | 1 | long double | +| (long double,long double) | | __fmaxmagl | 0 | long double | +| (long double,long double) | | __fmaxmagl | 1 | long double | +| (long double,long double) | | __fminimum_mag_numl | 0 | long double | +| (long double,long double) | | __fminimum_mag_numl | 1 | long double | +| (long double,long double) | | __fminimum_magl | 0 | long double | +| (long double,long double) | | __fminimum_magl | 1 | long double | +| (long double,long double) | | __fminimum_numl | 0 | long double | +| (long double,long double) | | __fminimum_numl | 1 | long double | +| (long double,long double) | | __fminimuml | 0 | long double | +| (long double,long double) | | __fminimuml | 1 | long double | +| (long double,long double) | | __fminmagl | 0 | long double | +| (long double,long double) | | __fminmagl | 1 | long double | +| (long double,long double) | | __fmodl | 0 | long double | +| (long double,long double) | | __fmodl | 1 | long double | +| (long double,long double) | | __fmull | 0 | long double | +| (long double,long double) | | __fmull | 1 | long double | +| (long double,long double) | | __fsubl | 0 | long double | +| (long double,long double) | | __fsubl | 1 | long double | +| (long double,long double) | | __hypotl | 0 | long double | +| (long double,long double) | | __hypotl | 1 | long double | +| (long double,long double) | | __ieee754_hypotl | 0 | long double | +| (long double,long double) | | __ieee754_hypotl | 1 | long double | +| (long double,long double) | | __kernel_cosl | 0 | long double | +| (long double,long double) | | __kernel_cosl | 1 | long double | +| (long double,long double) | | __nextafterl | 0 | long double | +| (long double,long double) | | __nextafterl | 1 | long double | +| (long double,long double) | | __powl | 0 | long double | +| (long double,long double) | | __powl | 1 | long double | +| (long double,long double) | | __powrl | 0 | long double | +| (long double,long double) | | __powrl | 1 | long double | +| (long double,long double) | | __remainderl | 0 | long double | +| (long double,long double) | | __remainderl | 1 | long double | +| (long double,long double) | | __scalbl | 0 | long double | +| (long double,long double) | | __scalbl | 1 | long double | +| (long double,long double) | | __x2y2m1l | 0 | long double | +| (long double,long double) | | __x2y2m1l | 1 | long double | +| (long double,long double,int *) | | __remquol | 0 | long double | +| (long double,long double,int *) | | __remquol | 1 | long double | +| (long double,long double,int *) | | __remquol | 2 | int * | +| (long double,long double,int) | | __kernel_sinl | 0 | long double | +| (long double,long double,int) | | __kernel_sinl | 1 | long double | +| (long double,long double,int) | | __kernel_sinl | 2 | int | +| (long double,long double,int) | | __kernel_standard_l | 0 | long double | +| (long double,long double,int) | | __kernel_standard_l | 1 | long double | +| (long double,long double,int) | | __kernel_standard_l | 2 | int | +| (long double,long double,int) | | __kernel_tanl | 0 | long double | +| (long double,long double,int) | | __kernel_tanl | 1 | long double | +| (long double,long double,int) | | __kernel_tanl | 2 | int | +| (long double,long double,int,long double *) | | __gamma_productl | 0 | long double | +| (long double,long double,int,long double *) | | __gamma_productl | 1 | long double | +| (long double,long double,int,long double *) | | __gamma_productl | 2 | int | +| (long double,long double,int,long double *) | | __gamma_productl | 3 | long double * | +| (long double,long double,long double) | | __dfmal | 0 | long double | +| (long double,long double,long double) | | __dfmal | 1 | long double | +| (long double,long double,long double) | | __dfmal | 2 | long double | +| (long double,long double,long double) | | __ffmal | 0 | long double | +| (long double,long double,long double) | | __ffmal | 1 | long double | +| (long double,long double,long double) | | __ffmal | 2 | long double | +| (long double,long double,long double) | | __fmal | 0 | long double | +| (long double,long double,long double) | | __fmal | 1 | long double | +| (long double,long double,long double) | | __fmal | 2 | long double | +| (long double,long double,long double,int) | | __lgamma_productl | 0 | long double | +| (long double,long double,long double,int) | | __lgamma_productl | 1 | long double | +| (long double,long double,long double,int) | | __lgamma_productl | 2 | long double | +| (long double,long double,long double,int) | | __lgamma_productl | 3 | int | +| (long double,long long) | | __compoundnl | 0 | long double | +| (long double,long long) | | __compoundnl | 1 | long long | +| (long double,long long) | | __rootnl | 0 | long double | +| (long double,long long) | | __rootnl | 1 | long long | +| (long double,long) | | __scalblnl | 0 | long double | +| (long double,long) | | __scalblnl | 1 | long | +| (long double,long) | | __w_scalblnl | 0 | long double | +| (long double,long) | | __w_scalblnl | 1 | long | | (long long *) | | uv__get_constrained_cpu | 0 | long long * | +| (long long) | | llabs | 0 | long long | +| (long long) | | ullabs | 0 | long long | +| (long long,long long) | | lldiv | 0 | long long | +| (long long,long long) | | lldiv | 1 | long long | +| (long) | | __fdelt_chk | 0 | long | +| (long) | | __math_invalid_li | 0 | long | +| (long) | | __math_invalidf_li | 0 | long | | (long) | | curlx_sltosi | 0 | long | | (long) | | curlx_sltoui | 0 | long | | (long) | | curlx_sltous | 0 | long | +| (long) | | l64a | 0 | long | +| (long) | | ulabs | 0 | long | +| (long,drand48_data *) | | __srand48_r | 0 | long | +| (long,drand48_data *) | | __srand48_r | 1 | drand48_data * | +| (long,long) | | ldiv | 0 | long | +| (long,long) | | ldiv | 1 | long | +| (md5_ctx *,void *) | | __md5_finish_ctx | 0 | md5_ctx * | +| (md5_ctx *,void *) | | __md5_finish_ctx | 1 | void * | +| (mp_ptr,mp_size_t,int *,int *,_Float128) | | __mpn_extract_float128 | 0 | mp_ptr | +| (mp_ptr,mp_size_t,int *,int *,_Float128) | | __mpn_extract_float128 | 1 | mp_size_t | +| (mp_ptr,mp_size_t,int *,int *,_Float128) | | __mpn_extract_float128 | 2 | int * | +| (mp_ptr,mp_size_t,int *,int *,_Float128) | | __mpn_extract_float128 | 3 | int * | +| (mp_ptr,mp_size_t,int *,int *,_Float128) | | __mpn_extract_float128 | 4 | _Float128 | +| (mp_ptr,mp_size_t,int *,int *,double) | | __mpn_extract_double | 0 | mp_ptr | +| (mp_ptr,mp_size_t,int *,int *,double) | | __mpn_extract_double | 1 | mp_size_t | +| (mp_ptr,mp_size_t,int *,int *,double) | | __mpn_extract_double | 2 | int * | +| (mp_ptr,mp_size_t,int *,int *,double) | | __mpn_extract_double | 3 | int * | +| (mp_ptr,mp_size_t,int *,int *,double) | | __mpn_extract_double | 4 | double | +| (mp_ptr,mp_size_t,int *,int *,long double) | | __mpn_extract_long_double | 0 | mp_ptr | +| (mp_ptr,mp_size_t,int *,int *,long double) | | __mpn_extract_long_double | 1 | mp_size_t | +| (mp_ptr,mp_size_t,int *,int *,long double) | | __mpn_extract_long_double | 2 | int * | +| (mp_ptr,mp_size_t,int *,int *,long double) | | __mpn_extract_long_double | 3 | int * | +| (mp_ptr,mp_size_t,int *,int *,long double) | | __mpn_extract_long_double | 4 | long double | +| (mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_divrem | 0 | mp_ptr | +| (mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_divrem | 1 | mp_size_t | +| (mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_divrem | 2 | mp_ptr | +| (mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_divrem | 3 | mp_size_t | +| (mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_divrem | 4 | mp_srcptr | +| (mp_ptr,mp_size_t,mp_ptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_divrem | 5 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t) | | __mpn_impn_sqr_n_basecase | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t) | | __mpn_impn_sqr_n_basecase | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t) | | __mpn_impn_sqr_n_basecase | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_add_1 | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_add_1 | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_add_1 | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_add_1 | 3 | mp_limb_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_divmod_1 | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_divmod_1 | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_divmod_1 | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_divmod_1 | 3 | mp_limb_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_sub_1 | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_sub_1 | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_sub_1 | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_sub_1 | 3 | mp_limb_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_sqr_n | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_sqr_n | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_sqr_n | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_sqr_n | 3 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_add | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_add | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_add | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_add | 3 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_add | 4 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_mul | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_mul | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_mul | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_mul | 3 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_mul | 4 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_sub | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_sub | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_sub | 2 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_sub | 3 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_size_t,mp_srcptr,mp_size_t) | | __mpn_sub | 4 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_impn_mul_n_basecase | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_impn_mul_n_basecase | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_impn_mul_n_basecase | 2 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_impn_mul_n_basecase | 3 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_mul_n | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_mul_n | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_mul_n | 2 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t) | | __mpn_mul_n | 3 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_mul_n | 0 | mp_ptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_mul_n | 1 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_mul_n | 2 | mp_srcptr | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_mul_n | 3 | mp_size_t | +| (mp_ptr,mp_srcptr,mp_srcptr,mp_size_t,mp_ptr) | | __mpn_impn_mul_n | 4 | mp_ptr | +| (mp_srcptr,int,int) | | __mpn_construct_double | 0 | mp_srcptr | +| (mp_srcptr,int,int) | | __mpn_construct_double | 1 | int | +| (mp_srcptr,int,int) | | __mpn_construct_double | 2 | int | +| (mp_srcptr,int,int) | | __mpn_construct_float | 0 | mp_srcptr | +| (mp_srcptr,int,int) | | __mpn_construct_float | 1 | int | +| (mp_srcptr,int,int) | | __mpn_construct_float | 2 | int | +| (mp_srcptr,int,int) | | __mpn_construct_float128 | 0 | mp_srcptr | +| (mp_srcptr,int,int) | | __mpn_construct_float128 | 1 | int | +| (mp_srcptr,int,int) | | __mpn_construct_float128 | 2 | int | +| (mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_mod_1 | 0 | mp_srcptr | +| (mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_mod_1 | 1 | mp_size_t | +| (mp_srcptr,mp_size_t,mp_limb_t) | | __mpn_mod_1 | 2 | mp_limb_t | +| (msghdr *,cmsghdr *) | | __cmsg_nxthdr | 0 | msghdr * | +| (msghdr *,cmsghdr *) | | __cmsg_nxthdr | 1 | cmsghdr * | +| (netent *,char *,size_t,int *,int *) | | _nss_files_getnetent_r | 0 | netent * | +| (netent *,char *,size_t,int *,int *) | | _nss_files_getnetent_r | 1 | char * | +| (netent *,char *,size_t,int *,int *) | | _nss_files_getnetent_r | 2 | size_t | +| (netent *,char *,size_t,int *,int *) | | _nss_files_getnetent_r | 3 | int * | +| (netent *,char *,size_t,int *,int *) | | _nss_files_getnetent_r | 4 | int * | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 0 | netent * | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 1 | netent *__restrict__ | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 2 | char * | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 3 | char *__restrict__ | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 4 | size_t | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 5 | netent ** | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 6 | netent **__restrict__ | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 7 | int * | +| (netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetent_r | 8 | int *__restrict__ | +| (netlink_handle *,int) | | __netlink_request | 0 | netlink_handle * | +| (netlink_handle *,int) | | __netlink_request | 1 | int | | (nghttp2_buf *,size_t,nghttp2_mem *) | | nghttp2_buf_init2 | 0 | nghttp2_buf * | | (nghttp2_buf *,size_t,nghttp2_mem *) | | nghttp2_buf_init2 | 1 | size_t | | (nghttp2_buf *,size_t,nghttp2_mem *) | | nghttp2_buf_init2 | 2 | nghttp2_mem * | @@ -31697,18 +42452,211 @@ getSignatureParameterName | (nghttp2_window_update *,uint8_t,int32_t,int32_t) | | nghttp2_frame_window_update_init | 1 | uint8_t | | (nghttp2_window_update *,uint8_t,int32_t,int32_t) | | nghttp2_frame_window_update_init | 2 | int32_t | | (nghttp2_window_update *,uint8_t,int32_t,int32_t) | | nghttp2_frame_window_update_init | 3 | int32_t | +| (nis_server **) | | nis_freeservlist | 0 | nis_server ** | +| (nl_catd,int,int,const char *) | | catgets | 0 | nl_catd | +| (nl_catd,int,int,const char *) | | catgets | 1 | int | +| (nl_catd,int,int,const char *) | | catgets | 2 | int | +| (nl_catd,int,int,const char *) | | catgets | 3 | const char * | +| (nl_item) | | nl_langinfo | 0 | nl_item | +| (nl_item,locale_t) | | __nl_langinfo_l | 0 | nl_item | +| (nl_item,locale_t) | | __nl_langinfo_l | 1 | locale_t | +| (ns_msg *,ns_sect,int,ns_rr *) | | ns_parserr | 0 | ns_msg * | +| (ns_msg *,ns_sect,int,ns_rr *) | | ns_parserr | 1 | ns_sect | +| (ns_msg *,ns_sect,int,ns_rr *) | | ns_parserr | 2 | int | +| (ns_msg *,ns_sect,int,ns_rr *) | | ns_parserr | 3 | ns_rr * | +| (ns_msg,int) | | ns_msg_getflag | 0 | ns_msg | +| (ns_msg,int) | | ns_msg_getflag | 1 | int | +| (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 0 | ns_rr_cursor * | +| (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 1 | const unsigned char * | +| (ns_rr_cursor *,const unsigned char *,size_t) | | __ns_rr_cursor_init | 2 | size_t | +| (ns_rr_cursor *,ns_rr_wire *) | | __ns_rr_cursor_next | 0 | ns_rr_cursor * | +| (ns_rr_cursor *,ns_rr_wire *) | | __ns_rr_cursor_next | 1 | ns_rr_wire * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_aliases_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_aliases_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_aliases_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_aliases_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_aliases_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_ethers_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_ethers_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_ethers_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_ethers_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_ethers_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_group_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_group_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_group_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_group_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_group_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_gshadow_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_gshadow_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_gshadow_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_gshadow_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_gshadow_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_hosts_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_hosts_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_hosts_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_hosts_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_hosts_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_lookup | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_lookup | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_lookup | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_lookup | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_lookup | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_netgroup_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_netgroup_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_netgroup_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_netgroup_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_netgroup_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_networks_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_networks_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_networks_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_networks_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_networks_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_passwd_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_passwd_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_passwd_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_passwd_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_passwd_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_protocols_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_protocols_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_protocols_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_protocols_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_protocols_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_publickey_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_publickey_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_publickey_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_publickey_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_publickey_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_rpc_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_rpc_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_rpc_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_rpc_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_rpc_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_services_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_services_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_services_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_services_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_services_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_shadow_lookup2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_shadow_lookup2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_shadow_lookup2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_shadow_lookup2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **) | | __nss_shadow_lookup2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 0 | nss_action ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 1 | nss_action_list * | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 2 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 3 | const char * | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 4 | void ** | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 5 | int | +| (nss_action **,nss_action_list *,const char *,const char *,void **,int,int) | | __nss_next2 | 6 | int | +| (nss_action *,size_t) | | __nss_action_allocate | 0 | nss_action * | +| (nss_action *,size_t) | | __nss_action_allocate | 1 | size_t | +| (nss_database) | | __nss_database_get_noreload | 0 | nss_database | +| (nss_database,nss_action_list *) | | __nss_database_get | 0 | nss_database | +| (nss_database,nss_action_list *) | | __nss_database_get | 1 | nss_action_list * | +| (nss_database_data *) | | __nss_database_fork_subprocess | 0 | nss_database_data * | +| (nss_files_per_file_data **,nss_files_file,const char *,int *,int *) | | __nss_files_data_open | 0 | nss_files_per_file_data ** | +| (nss_files_per_file_data **,nss_files_file,const char *,int *,int *) | | __nss_files_data_open | 1 | nss_files_file | +| (nss_files_per_file_data **,nss_files_file,const char *,int *,int *) | | __nss_files_data_open | 2 | const char * | +| (nss_files_per_file_data **,nss_files_file,const char *,int *,int *) | | __nss_files_data_open | 3 | int * | +| (nss_files_per_file_data **,nss_files_file,const char *,int *,int *) | | __nss_files_data_open | 4 | int * | +| (nss_module *,const char *) | | __nss_module_get_function | 0 | nss_module * | +| (nss_module *,const char *) | | __nss_module_get_function | 1 | const char * | +| (obstack *) | | _obstack_memory_used | 0 | obstack * | +| (obstack *,const char *,va_list) | | __obstack_vprintf | 0 | obstack * | +| (obstack *,const char *,va_list) | | __obstack_vprintf | 1 | const char * | +| (obstack *,const char *,va_list) | | __obstack_vprintf | 2 | va_list | +| (obstack *,const char *,va_list,unsigned int) | | __obstack_vprintf_internal | 0 | obstack * | +| (obstack *,const char *,va_list,unsigned int) | | __obstack_vprintf_internal | 1 | const char * | +| (obstack *,const char *,va_list,unsigned int) | | __obstack_vprintf_internal | 2 | va_list | +| (obstack *,const char *,va_list,unsigned int) | | __obstack_vprintf_internal | 3 | unsigned int | +| (obstack *,int) | | _obstack_newchunk | 0 | obstack * | +| (obstack *,int) | | _obstack_newchunk | 1 | int | +| (obstack *,int,const char *,__gnuc_va_list,va_list) | | __obstack_vprintf_chk | 0 | obstack * | +| (obstack *,int,const char *,__gnuc_va_list,va_list) | | __obstack_vprintf_chk | 1 | int | +| (obstack *,int,const char *,__gnuc_va_list,va_list) | | __obstack_vprintf_chk | 2 | const char * | +| (obstack *,int,const char *,__gnuc_va_list,va_list) | | __obstack_vprintf_chk | 3 | __gnuc_va_list | +| (obstack *,int,const char *,__gnuc_va_list,va_list) | | __obstack_vprintf_chk | 4 | va_list | +| (obstack *,int,int,..(*)(..),..(*)(..)) | | _obstack_begin | 0 | obstack * | +| (obstack *,int,int,..(*)(..),..(*)(..)) | | _obstack_begin | 1 | int | +| (obstack *,int,int,..(*)(..),..(*)(..)) | | _obstack_begin | 2 | int | +| (obstack *,int,int,..(*)(..),..(*)(..)) | | _obstack_begin | 3 | ..(*)(..) | +| (obstack *,int,int,..(*)(..),..(*)(..)) | | _obstack_begin | 4 | ..(*)(..) | +| (obstack *,int,int,..(*)(..),..(*)(..),void *) | | _obstack_begin_1 | 0 | obstack * | +| (obstack *,int,int,..(*)(..),..(*)(..),void *) | | _obstack_begin_1 | 1 | int | +| (obstack *,int,int,..(*)(..),..(*)(..),void *) | | _obstack_begin_1 | 2 | int | +| (obstack *,int,int,..(*)(..),..(*)(..),void *) | | _obstack_begin_1 | 3 | ..(*)(..) | +| (obstack *,int,int,..(*)(..),..(*)(..),void *) | | _obstack_begin_1 | 4 | ..(*)(..) | +| (obstack *,int,int,..(*)(..),..(*)(..),void *) | | _obstack_begin_1 | 5 | void * | +| (obstack *,void *) | | _obstack_allocated_p | 0 | obstack * | +| (obstack *,void *) | | _obstack_allocated_p | 1 | void * | +| (obstack *,void *) | | obstack_free | 0 | obstack * | +| (obstack *,void *) | | obstack_free | 1 | void * | +| (old_termios_t *,speed_t) | | __old_cfsetispeed | 0 | old_termios_t * | +| (old_termios_t *,speed_t) | | __old_cfsetispeed | 1 | speed_t | +| (old_termios_t *,speed_t) | | __old_cfsetospeed | 0 | old_termios_t * | +| (old_termios_t *,speed_t) | | __old_cfsetospeed | 1 | speed_t | +| (old_termios_t *,speed_t) | | __old_cfsetspeed | 0 | old_termios_t * | +| (old_termios_t *,speed_t) | | __old_cfsetspeed | 1 | speed_t | +| (passwd *,char *,size_t,int *) | | _nss_compat_getpwent_r | 0 | passwd * | +| (passwd *,char *,size_t,int *) | | _nss_compat_getpwent_r | 1 | char * | +| (passwd *,char *,size_t,int *) | | _nss_compat_getpwent_r | 2 | size_t | +| (passwd *,char *,size_t,int *) | | _nss_compat_getpwent_r | 3 | int * | +| (passwd *,char *,size_t,int *) | | _nss_db_getpwent_r | 0 | passwd * | +| (passwd *,char *,size_t,int *) | | _nss_db_getpwent_r | 1 | char * | +| (passwd *,char *,size_t,int *) | | _nss_db_getpwent_r | 2 | size_t | +| (passwd *,char *,size_t,int *) | | _nss_db_getpwent_r | 3 | int * | +| (passwd *,char *,size_t,int *) | | _nss_files_getpwent_r | 0 | passwd * | +| (passwd *,char *,size_t,int *) | | _nss_files_getpwent_r | 1 | char * | +| (passwd *,char *,size_t,int *) | | _nss_files_getpwent_r | 2 | size_t | +| (passwd *,char *,size_t,int *) | | _nss_files_getpwent_r | 3 | int * | +| (passwd *,char *,size_t,passwd **) | | __getpwent_r | 0 | passwd * | +| (passwd *,char *,size_t,passwd **) | | __getpwent_r | 1 | char * | +| (passwd *,char *,size_t,passwd **) | | __getpwent_r | 2 | size_t | +| (passwd *,char *,size_t,passwd **) | | __getpwent_r | 3 | passwd ** | | (pgrs_dir *,curl_off_t,curltime) | | Curl_pgrsLimitWaitTime | 0 | pgrs_dir * | | (pgrs_dir *,curl_off_t,curltime) | | Curl_pgrsLimitWaitTime | 1 | curl_off_t | | (pgrs_dir *,curl_off_t,curltime) | | Curl_pgrsLimitWaitTime | 2 | curltime | +| (pid_t,clockid_t *) | | __clock_getcpuclockid | 0 | pid_t | +| (pid_t,clockid_t *) | | __clock_getcpuclockid | 1 | clockid_t * | | (piterator *) | | pqueue_next | 0 | piterator * | | (plink *) | | Plink_delete | 0 | plink * | | (plink **,config *) | | Plink_add | 0 | plink ** | | (plink **,config *) | | Plink_add | 1 | config * | | (plink **,plink *) | | Plink_copy | 0 | plink ** | | (plink **,plink *) | | Plink_copy | 1 | plink * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *) | | ppoll | 0 | pollfd * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *) | | ppoll | 1 | nfds_t | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *) | | ppoll | 2 | const timespec * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *) | | ppoll | 3 | const __sigset_t * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,const sigset_t *) | | ppoll | 4 | const sigset_t * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long) | | __ppoll_chk | 0 | pollfd * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long) | | __ppoll_chk | 1 | nfds_t | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long) | | __ppoll_chk | 2 | const timespec * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long) | | __ppoll_chk | 3 | const __sigset_t * | +| (pollfd *,nfds_t,const timespec *,const __sigset_t *,unsigned long) | | __ppoll_chk | 4 | unsigned long | | (pollfd[],unsigned int,timediff_t) | | Curl_poll | 0 | pollfd[] | | (pollfd[],unsigned int,timediff_t) | | Curl_poll | 1 | unsigned int | | (pollfd[],unsigned int,timediff_t) | | Curl_poll | 2 | timediff_t | +| (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,int) | | posix_spawnattr_setcgroup_np | 1 | int | +| (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,int) | | posix_spawnattr_setschedpolicy | 1 | int | +| (posix_spawnattr_t *,pid_t) | | posix_spawnattr_setpgroup | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,pid_t) | | posix_spawnattr_setpgroup | 1 | pid_t | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__) | | posix_spawnattr_setschedparam | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__) | | posix_spawnattr_setschedparam | 1 | posix_spawnattr_t *__restrict__ | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__) | | posix_spawnattr_setschedparam | 2 | const sched_param * | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sched_param *,const sched_param *__restrict__) | | posix_spawnattr_setschedparam | 3 | const sched_param *__restrict__ | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigdefault | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigdefault | 1 | posix_spawnattr_t *__restrict__ | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigdefault | 2 | const sigset_t * | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigdefault | 3 | const sigset_t *__restrict__ | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigmask | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigmask | 1 | posix_spawnattr_t *__restrict__ | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigmask | 2 | const sigset_t * | +| (posix_spawnattr_t *,posix_spawnattr_t *__restrict__,const sigset_t *,const sigset_t *__restrict__) | | __posix_spawnattr_setsigmask | 3 | const sigset_t *__restrict__ | +| (posix_spawnattr_t *,short) | | __posix_spawnattr_setflags | 0 | posix_spawnattr_t * | +| (posix_spawnattr_t *,short) | | __posix_spawnattr_setflags | 1 | short | | (pqueue *) | | pqueue_iterator | 0 | pqueue * | | (pqueue *) | | pqueue_peek | 0 | pqueue * | | (pqueue *) | | pqueue_pop | 0 | pqueue * | @@ -31716,8 +42664,124 @@ getSignatureParameterName | (pqueue *,pitem *) | | pqueue_insert | 1 | pitem * | | (pqueue *,unsigned char *) | | pqueue_find | 0 | pqueue * | | (pqueue *,unsigned char *) | | pqueue_find | 1 | unsigned char * | +| (prof *,int,timeval *,unsigned int) | | __sprofil | 0 | prof * | +| (prof *,int,timeval *,unsigned int) | | __sprofil | 1 | int | +| (prof *,int,timeval *,unsigned int) | | __sprofil | 2 | timeval * | +| (prof *,int,timeval *,unsigned int) | | __sprofil | 3 | unsigned int | +| (protoent *,char *,size_t,int *) | | _nss_files_getprotoent_r | 0 | protoent * | +| (protoent *,char *,size_t,int *) | | _nss_files_getprotoent_r | 1 | char * | +| (protoent *,char *,size_t,int *) | | _nss_files_getprotoent_r | 2 | size_t | +| (protoent *,char *,size_t,int *) | | _nss_files_getprotoent_r | 3 | int * | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 0 | protoent * | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 1 | protoent *__restrict__ | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 2 | char * | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 3 | char *__restrict__ | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 4 | size_t | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 5 | protoent ** | +| (protoent *,protoent *__restrict__,char *,char *__restrict__,size_t,protoent **,protoent **__restrict__) | | __getprotoent_r | 6 | protoent **__restrict__ | +| (ps_prochandle *,td_thragent_t **) | | td_ta_new | 0 | ps_prochandle * | +| (ps_prochandle *,td_thragent_t **) | | td_ta_new | 1 | td_thragent_t ** | +| (pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | pthread_attr_setsigmask_np | 0 | pthread_attr_t * | +| (pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | pthread_attr_setsigmask_np | 1 | const __jmpbuf_arch_t * | +| (pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | pthread_attr_setsigmask_np | 2 | const __sigset_t * | +| (pthread_attr_t *,const __jmpbuf_arch_t *,const __sigset_t *,const sigset_t *) | | pthread_attr_setsigmask_np | 3 | const sigset_t * | +| (pthread_attr_t *,const pthread_attr_t *) | | __pthread_attr_copy | 0 | pthread_attr_t * | +| (pthread_attr_t *,const pthread_attr_t *) | | __pthread_attr_copy | 1 | const pthread_attr_t * | +| (pthread_attr_t *,const sched_param *) | | __pthread_attr_setschedparam | 0 | pthread_attr_t * | +| (pthread_attr_t *,const sched_param *) | | __pthread_attr_setschedparam | 1 | const sched_param * | +| (pthread_attr_t *,const sigset_t *) | | __pthread_attr_setsigmask_internal | 0 | pthread_attr_t * | +| (pthread_attr_t *,const sigset_t *) | | __pthread_attr_setsigmask_internal | 1 | const sigset_t * | +| (pthread_attr_t *,cpu_set_t *) | | __pthread_attr_setaffinity_old | 0 | pthread_attr_t * | +| (pthread_attr_t *,cpu_set_t *) | | __pthread_attr_setaffinity_old | 1 | cpu_set_t * | +| (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 0 | pthread_attr_t * | +| (pthread_attr_t *,int) | | __pthread_attr_setschedpolicy | 1 | int | +| (pthread_attr_t *,size_t) | | __pthread_attr_setguardsize | 0 | pthread_attr_t * | +| (pthread_attr_t *,size_t) | | __pthread_attr_setguardsize | 1 | size_t | +| (pthread_attr_t *,size_t) | | __pthread_attr_setstacksize | 0 | pthread_attr_t * | +| (pthread_attr_t *,size_t) | | __pthread_attr_setstacksize | 1 | size_t | +| (pthread_attr_t *,size_t,const cpu_set_t *) | | __pthread_attr_setaffinity_np | 0 | pthread_attr_t * | +| (pthread_attr_t *,size_t,const cpu_set_t *) | | __pthread_attr_setaffinity_np | 1 | size_t | +| (pthread_attr_t *,size_t,const cpu_set_t *) | | __pthread_attr_setaffinity_np | 2 | const cpu_set_t * | +| (pthread_attr_t *,void *) | | __pthread_attr_setstackaddr | 0 | pthread_attr_t * | +| (pthread_attr_t *,void *) | | __pthread_attr_setstackaddr | 1 | void * | +| (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 0 | pthread_attr_t * | +| (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 1 | void * | +| (pthread_attr_t *,void *,size_t) | | __pthread_attr_setstack | 2 | size_t | +| (pthread_barrier_t *,const pthread_barrierattr_t *,unsigned int) | | ___pthread_barrier_init | 0 | pthread_barrier_t * | +| (pthread_barrier_t *,const pthread_barrierattr_t *,unsigned int) | | ___pthread_barrier_init | 1 | const pthread_barrierattr_t * | +| (pthread_barrier_t *,const pthread_barrierattr_t *,unsigned int) | | ___pthread_barrier_init | 2 | unsigned int | +| (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 0 | pthread_barrierattr_t * | +| (pthread_barrierattr_t *,int) | | __pthread_barrierattr_setpshared | 1 | int | +| (pthread_key_t) | | ___pthread_getspecific | 0 | pthread_key_t | +| (pthread_mutex_t *,const pthread_mutexattr_t *) | | ___pthread_mutex_init | 0 | pthread_mutex_t * | +| (pthread_mutex_t *,const pthread_mutexattr_t *) | | ___pthread_mutex_init | 1 | const pthread_mutexattr_t * | +| (pthread_mutex_t *,int,int *) | | __pthread_mutex_setprioceiling | 0 | pthread_mutex_t * | +| (pthread_mutex_t *,int,int *) | | __pthread_mutex_setprioceiling | 1 | int | +| (pthread_mutex_t *,int,int *) | | __pthread_mutex_setprioceiling | 2 | int * | +| (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 0 | pthread_mutexattr_t * | +| (pthread_mutexattr_t *,int) | | ___pthread_mutexattr_settype | 1 | int | +| (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 0 | pthread_mutexattr_t * | +| (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprioceiling | 1 | int | +| (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 0 | pthread_mutexattr_t * | +| (pthread_mutexattr_t *,int) | | __pthread_mutexattr_setprotocol | 1 | int | +| (pthread_rwlock_t *,const pthread_rwlockattr_t *) | | ___pthread_rwlock_init | 0 | pthread_rwlock_t * | +| (pthread_rwlock_t *,const pthread_rwlockattr_t *) | | ___pthread_rwlock_init | 1 | const pthread_rwlockattr_t * | +| (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 0 | pthread_rwlockattr_t * | +| (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setkind_np | 1 | int | +| (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 0 | pthread_rwlockattr_t * | +| (pthread_rwlockattr_t *,int) | | __pthread_rwlockattr_setpshared | 1 | int | | (pthread_t *) | | Curl_thread_destroy | 0 | pthread_t * | | (pthread_t **) | | Curl_thread_join | 0 | pthread_t ** | +| (pthread_t,int,const sched_param *) | | __pthread_setschedparam | 0 | pthread_t | +| (pthread_t,int,const sched_param *) | | __pthread_setschedparam | 1 | int | +| (pthread_t,int,const sched_param *) | | __pthread_setschedparam | 2 | const sched_param * | +| (random_data *,int32_t *) | | __random_r | 0 | random_data * | +| (random_data *,int32_t *) | | __random_r | 1 | int32_t * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 0 | re_pattern_buffer * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 1 | const char * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 2 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 3 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 4 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 5 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *) | | __re_match | 6 | re_registers * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 0 | re_pattern_buffer * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 1 | const char * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 2 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 3 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 4 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 5 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 6 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *) | | __re_search | 7 | re_registers * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 0 | re_pattern_buffer * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 1 | const char * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 2 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 3 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 4 | const char * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 5 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 6 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 7 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 8 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 9 | re_registers * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 10 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,re_registers *,Idx,regoff_t) | | __re_match_2 | 11 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 0 | re_pattern_buffer * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 1 | const char * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 2 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 3 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 4 | const char * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 5 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 6 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 7 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 8 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 9 | regoff_t | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 10 | re_registers * | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 11 | Idx | +| (re_pattern_buffer *,const char *,Idx,regoff_t,const char *,Idx,regoff_t,Idx,regoff_t,regoff_t,re_registers *,Idx,regoff_t) | | __re_search_2 | 12 | regoff_t | +| (re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *) | | __re_set_registers | 0 | re_pattern_buffer * | +| (re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *) | | __re_set_registers | 1 | re_registers * | +| (re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *) | | __re_set_registers | 2 | __re_size_t | +| (re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *) | | __re_set_registers | 3 | regoff_t * | +| (re_pattern_buffer *,re_registers *,__re_size_t,regoff_t *,regoff_t *) | | __re_set_registers | 4 | regoff_t * | | (regex_t *,const char *,int) | | jim_regcomp | 0 | regex_t * | | (regex_t *,const char *,int) | | jim_regcomp | 1 | const char * | | (regex_t *,const char *,int) | | jim_regcomp | 2 | int | @@ -31726,6 +42790,141 @@ getSignatureParameterName | (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 2 | size_t | | (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 3 | regmatch_t[] | | (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 4 | int | +| (request_type,const char *,mapped_database **) | | __nscd_get_mapping | 0 | request_type | +| (request_type,const char *,mapped_database **) | | __nscd_get_mapping | 1 | const char * | +| (request_type,const char *,mapped_database **) | | __nscd_get_mapping | 2 | mapped_database ** | +| (request_type,const char *,size_t,const mapped_database *,size_t) | | __nscd_cache_search | 0 | request_type | +| (request_type,const char *,size_t,const mapped_database *,size_t) | | __nscd_cache_search | 1 | const char * | +| (request_type,const char *,size_t,const mapped_database *,size_t) | | __nscd_cache_search | 2 | size_t | +| (request_type,const char *,size_t,const mapped_database *,size_t) | | __nscd_cache_search | 3 | const mapped_database * | +| (request_type,const char *,size_t,const mapped_database *,size_t) | | __nscd_cache_search | 4 | size_t | +| (request_type,const char *,volatile locked_map_ptr *,int *) | | __nscd_get_map_ref | 0 | request_type | +| (request_type,const char *,volatile locked_map_ptr *,int *) | | __nscd_get_map_ref | 1 | const char * | +| (request_type,const char *,volatile locked_map_ptr *,int *) | | __nscd_get_map_ref | 2 | volatile locked_map_ptr * | +| (request_type,const char *,volatile locked_map_ptr *,int *) | | __nscd_get_map_ref | 3 | int * | +| (request_type,const void *,size_t,database_dyn *,uid_t) | | cache_search | 0 | request_type | +| (request_type,const void *,size_t,database_dyn *,uid_t) | | cache_search | 1 | const void * | +| (request_type,const void *,size_t,database_dyn *,uid_t) | | cache_search | 2 | size_t | +| (request_type,const void *,size_t,database_dyn *,uid_t) | | cache_search | 3 | database_dyn * | +| (request_type,const void *,size_t,database_dyn *,uid_t) | | cache_search | 4 | uid_t | +| (requestlist *,requestlist *,int) | | __aio_remove_request | 0 | requestlist * | +| (requestlist *,requestlist *,int) | | __aio_remove_request | 1 | requestlist * | +| (requestlist *,requestlist *,int) | | __aio_remove_request | 2 | int | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 0 | res_state | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 1 | const char * | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 2 | const char * | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 3 | int | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 4 | int | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 5 | unsigned char * | +| (res_state,const char *,const char *,int,int,unsigned char *,int) | | ___res_nquerydomain | 6 | int | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 0 | res_state | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 1 | const char * | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 2 | int | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 3 | int | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 4 | unsigned char * | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nquery | 5 | int | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 0 | res_state | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 1 | const char * | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 2 | int | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 3 | int | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 4 | unsigned char * | +| (res_state,const char *,int,int,unsigned char *,int) | | ___res_nsearch | 5 | int | +| (res_state,const unsigned char *,int,unsigned char *,int) | | ___res_nsend | 0 | res_state | +| (res_state,const unsigned char *,int,unsigned char *,int) | | ___res_nsend | 1 | const unsigned char * | +| (res_state,const unsigned char *,int,unsigned char *,int) | | ___res_nsend | 2 | int | +| (res_state,const unsigned char *,int,unsigned char *,int) | | ___res_nsend | 3 | unsigned char * | +| (res_state,const unsigned char *,int,unsigned char *,int) | | ___res_nsend | 4 | int | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 0 | res_state | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 1 | int | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 2 | const char * | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 3 | int | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 4 | int | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 5 | const unsigned char * | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 6 | int | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 7 | const unsigned char * | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 8 | unsigned char * | +| (res_state,int,const char *,int,int,const unsigned char *,int,const unsigned char *,unsigned char *,int) | | ___res_nmkquery | 9 | int | +| (res_state,unsigned int) | | __res_get_nsaddr | 0 | res_state | +| (res_state,unsigned int) | | __res_get_nsaddr | 1 | unsigned int | +| (resolv_context *,const char *,char *,size_t) | | __res_context_hostalias | 0 | resolv_context * | +| (resolv_context *,const char *,char *,size_t) | | __res_context_hostalias | 1 | const char * | +| (resolv_context *,const char *,char *,size_t) | | __res_context_hostalias | 2 | char * | +| (resolv_context *,const char *,char *,size_t) | | __res_context_hostalias | 3 | size_t | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 0 | resolv_context * | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 1 | const char * | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 2 | hostent * | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 3 | char ** | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 4 | size_t * | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 5 | size_t | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 6 | hostent ** | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 7 | nss_status * | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 8 | int | +| (resolv_context *,const char *,hostent *,char **,size_t *,size_t,hostent **,nss_status *,int,int *) | | __nss_hostname_digits_dots_context | 9 | int * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 0 | resolv_context * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 1 | const char * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 2 | int | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 3 | int | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 4 | unsigned char * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 5 | int | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 6 | unsigned char ** | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 7 | unsigned char ** | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 8 | int * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 9 | int * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_query | 10 | int * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 0 | resolv_context * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 1 | const char * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 2 | int | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 3 | int | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 4 | unsigned char * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 5 | int | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 6 | unsigned char ** | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 7 | unsigned char ** | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 8 | int * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 9 | int * | +| (resolv_context *,const char *,int,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_search | 10 | int * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 0 | resolv_context * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 1 | const unsigned char * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 2 | int | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 3 | const unsigned char * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 4 | int | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 5 | unsigned char * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 6 | int | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 7 | unsigned char ** | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 8 | unsigned char ** | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 9 | int * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 10 | int * | +| (resolv_context *,const unsigned char *,int,const unsigned char *,int,unsigned char *,int,unsigned char **,unsigned char **,int *,int *,int *) | | __res_context_send | 11 | int * | +| (resolv_context *,const unsigned char *,int,unsigned char *,int,int *) | | __res_handle_no_aaaa | 0 | resolv_context * | +| (resolv_context *,const unsigned char *,int,unsigned char *,int,int *) | | __res_handle_no_aaaa | 1 | const unsigned char * | +| (resolv_context *,const unsigned char *,int,unsigned char *,int,int *) | | __res_handle_no_aaaa | 2 | int | +| (resolv_context *,const unsigned char *,int,unsigned char *,int,int *) | | __res_handle_no_aaaa | 3 | unsigned char * | +| (resolv_context *,const unsigned char *,int,unsigned char *,int,int *) | | __res_handle_no_aaaa | 4 | int | +| (resolv_context *,const unsigned char *,int,unsigned char *,int,int *) | | __res_handle_no_aaaa | 5 | int * | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 0 | resolv_context * | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 1 | int | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 2 | const char * | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 3 | int | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 4 | int | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 5 | const unsigned char * | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 6 | unsigned char * | +| (resolv_context *,int,const char *,int,int,const unsigned char *,unsigned char *,int) | | __res_context_mkquery | 7 | int | +| (resolv_context *,int,unsigned char *,int,int) | | __res_nopt | 0 | resolv_context * | +| (resolv_context *,int,unsigned char *,int,int) | | __res_nopt | 1 | int | +| (resolv_context *,int,unsigned char *,int,int) | | __res_nopt | 2 | unsigned char * | +| (resolv_context *,int,unsigned char *,int,int) | | __res_nopt | 3 | int | +| (resolv_context *,int,unsigned char *,int,int) | | __res_nopt | 4 | int | +| (rpcent *,char *,size_t,int *) | | _nss_db_getrpcent_r | 0 | rpcent * | +| (rpcent *,char *,size_t,int *) | | _nss_db_getrpcent_r | 1 | char * | +| (rpcent *,char *,size_t,int *) | | _nss_db_getrpcent_r | 2 | size_t | +| (rpcent *,char *,size_t,int *) | | _nss_db_getrpcent_r | 3 | int * | +| (rpcent *,char *,size_t,int *) | | _nss_files_getrpcent_r | 0 | rpcent * | +| (rpcent *,char *,size_t,int *) | | _nss_files_getrpcent_r | 1 | char * | +| (rpcent *,char *,size_t,int *) | | _nss_files_getrpcent_r | 2 | size_t | +| (rpcent *,char *,size_t,int *) | | _nss_files_getrpcent_r | 3 | int * | +| (rpcent *,char *,size_t,rpcent **) | | __getrpcent_r | 0 | rpcent * | +| (rpcent *,char *,size_t,rpcent **) | | __getrpcent_r | 1 | char * | +| (rpcent *,char *,size_t,rpcent **) | | __getrpcent_r | 2 | size_t | +| (rpcent *,char *,size_t,rpcent **) | | __getrpcent_r | 3 | rpcent ** | | (rule *,int) | | Configlist_add | 0 | rule * | | (rule *,int) | | Configlist_add | 1 | int | | (rule *,int) | | Configlist_addbasis | 0 | rule * | @@ -31734,6 +42933,23 @@ getSignatureParameterName | (scan_ctx *,const char *,const char *,const char *) | | inithelpscan | 1 | const char * | | (scan_ctx *,const char *,const char *,const char *) | | inithelpscan | 2 | const char * | | (scan_ctx *,const char *,const char *,const char *) | | inithelpscan | 3 | const char * | +| (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 0 | scratch_buffer * | +| (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 1 | size_t | +| (scratch_buffer *,size_t,size_t) | | __libc_scratch_buffer_set_array_size | 2 | size_t | +| (sem_t *,int,unsigned int) | | __new_sem_init | 0 | sem_t * | +| (sem_t *,int,unsigned int) | | __new_sem_init | 1 | int | +| (sem_t *,int,unsigned int) | | __new_sem_init | 2 | unsigned int | +| (servent *,char *,size_t,int *) | | _nss_files_getservent_r | 0 | servent * | +| (servent *,char *,size_t,int *) | | _nss_files_getservent_r | 1 | char * | +| (servent *,char *,size_t,int *) | | _nss_files_getservent_r | 2 | size_t | +| (servent *,char *,size_t,int *) | | _nss_files_getservent_r | 3 | int * | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 0 | servent * | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 1 | servent *__restrict__ | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 2 | char * | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 3 | char *__restrict__ | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 4 | size_t | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 5 | servent ** | +| (servent *,servent *__restrict__,char *,char *__restrict__,size_t,servent **,servent **__restrict__) | | __getservent_r | 6 | servent **__restrict__ | | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 0 | sfparse_parser * | | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 1 | const uint8_t * | | (sfparse_parser *,const uint8_t *,size_t) | | sfparse_parser_init | 2 | size_t | @@ -31755,6 +42971,28 @@ getSignatureParameterName | (sfparse_vec *,const sfparse_vec *) | | sfparse_pctdecode | 1 | const sfparse_vec * | | (sfparse_vec *,const sfparse_vec *) | | sfparse_unescape | 0 | sfparse_vec * | | (sfparse_vec *,const sfparse_vec *) | | sfparse_unescape | 1 | const sfparse_vec * | +| (sgrp *,char *,size_t,int *) | | _nss_db_getsgent_r | 0 | sgrp * | +| (sgrp *,char *,size_t,int *) | | _nss_db_getsgent_r | 1 | char * | +| (sgrp *,char *,size_t,int *) | | _nss_db_getsgent_r | 2 | size_t | +| (sgrp *,char *,size_t,int *) | | _nss_db_getsgent_r | 3 | int * | +| (sgrp *,char *,size_t,int *) | | _nss_files_getsgent_r | 0 | sgrp * | +| (sgrp *,char *,size_t,int *) | | _nss_files_getsgent_r | 1 | char * | +| (sgrp *,char *,size_t,int *) | | _nss_files_getsgent_r | 2 | size_t | +| (sgrp *,char *,size_t,int *) | | _nss_files_getsgent_r | 3 | int * | +| (sgrp *,char *,size_t,sgrp **) | | __getsgent_r | 0 | sgrp * | +| (sgrp *,char *,size_t,sgrp **) | | __getsgent_r | 1 | char * | +| (sgrp *,char *,size_t,sgrp **) | | __getsgent_r | 2 | size_t | +| (sgrp *,char *,size_t,sgrp **) | | __getsgent_r | 3 | sgrp ** | +| (sigset_t *,const sigset_t *,const sigset_t *) | | sigandset | 0 | sigset_t * | +| (sigset_t *,const sigset_t *,const sigset_t *) | | sigandset | 1 | const sigset_t * | +| (sigset_t *,const sigset_t *,const sigset_t *) | | sigandset | 2 | const sigset_t * | +| (sigset_t *,const sigset_t *,const sigset_t *) | | sigorset | 0 | sigset_t * | +| (sigset_t *,const sigset_t *,const sigset_t *) | | sigorset | 1 | const sigset_t * | +| (sigset_t *,const sigset_t *,const sigset_t *) | | sigorset | 2 | const sigset_t * | +| (sigset_t *,int) | | sigaddset | 0 | sigset_t * | +| (sigset_t *,int) | | sigaddset | 1 | int | +| (sigset_t *,int) | | sigdelset | 0 | sigset_t * | +| (sigset_t *,int) | | sigdelset | 1 | int | | (size_t *,const char *) | | next_protos_parse | 0 | size_t * | | (size_t *,const char *) | | next_protos_parse | 1 | const char * | | (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 0 | size_t * | @@ -31776,19 +43014,32 @@ getSignatureParameterName | (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 8 | OSSL_LIB_CTX * | | (size_t) | | BrotliEncoderMaxCompressedSize | 0 | size_t | | (size_t) | | EVP_PKEY_meth_get0 | 0 | size_t | +| (size_t) | | __libc_malloc | 0 | size_t | +| (size_t) | | __libc_valloc | 0 | size_t | +| (size_t) | | _dl_early_allocate | 0 | size_t | | (size_t) | | curlx_uztosi | 0 | size_t | | (size_t) | | curlx_uztosz | 0 | size_t | | (size_t) | | curlx_uztoui | 0 | size_t | | (size_t) | | curlx_uztoul | 0 | size_t | +| (size_t) | | malloc | 0 | size_t | | (size_t) | | ossl_get_extension_type | 0 | size_t | | (size_t) | | ossl_param_bytes_to_blocks | 0 | size_t | | (size_t) | | ossl_quic_sstream_new | 0 | size_t | | (size_t) | | ssl_cert_new | 0 | size_t | +| (size_t) | | support_next_to_fault_allocate | 0 | size_t | +| (size_t) | | support_next_to_fault_allocate_before | 0 | size_t | +| (size_t) | | support_stack_alloc | 0 | size_t | +| (size_t) | | xalloc_sigstack | 0 | size_t | | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 0 | size_t | | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 1 | OSSL_QTX_IOVEC * | | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | size_t | | (size_t,SSL_CTX *) | | ssl_cert_lookup_by_idx | 0 | size_t | | (size_t,SSL_CTX *) | | ssl_cert_lookup_by_idx | 1 | SSL_CTX * | +| (size_t,char *[]) | | delete_locales_from_archive | 0 | size_t | +| (size_t,char *[]) | | delete_locales_from_archive | 1 | char *[] | +| (size_t,char *[],bool) | | add_locales_to_archive | 0 | size_t | +| (size_t,char *[],bool) | | add_locales_to_archive | 1 | char *[] | +| (size_t,char *[],bool) | | add_locales_to_archive | 2 | bool | | (size_t,const QUIC_PKT_HDR *) | | ossl_quic_wire_get_encoded_pkt_hdr_len | 0 | size_t | | (size_t,const QUIC_PKT_HDR *) | | ossl_quic_wire_get_encoded_pkt_hdr_len | 1 | const QUIC_PKT_HDR * | | (size_t,const char **,size_t *) | | conf_ssl_get | 0 | size_t | @@ -31806,6 +43057,17 @@ getSignatureParameterName | (size_t,const uint32_t[],size_t *,char[]) | | _idn2_punycode_encode | 1 | const uint32_t[] | | (size_t,const uint32_t[],size_t *,char[]) | | _idn2_punycode_encode | 2 | size_t * | | (size_t,const uint32_t[],size_t *,char[]) | | _idn2_punycode_encode | 3 | char[] | +| (size_t,hsearch_data *) | | __hcreate_r | 0 | size_t | +| (size_t,hsearch_data *) | | __hcreate_r | 1 | hsearch_data * | +| (size_t,shadow_stack_size_t *) | | __allocate_shadow_stack | 0 | size_t | +| (size_t,shadow_stack_size_t *) | | __allocate_shadow_stack | 1 | shadow_stack_size_t * | +| (size_t,size_t *,int *) | | __malloc_hugepage_config | 0 | size_t | +| (size_t,size_t *,int *) | | __malloc_hugepage_config | 1 | size_t * | +| (size_t,size_t *,int *) | | __malloc_hugepage_config | 2 | int * | +| (size_t,size_t) | | __libc_memalign | 0 | size_t | +| (size_t,size_t) | | __libc_memalign | 1 | size_t | +| (size_t,size_t) | | aligned_alloc | 0 | size_t | +| (size_t,size_t) | | aligned_alloc | 1 | size_t | | (size_t,size_t,Curl_ssl_scache **) | | Curl_ssl_scache_create | 0 | size_t | | (size_t,size_t,Curl_ssl_scache **) | | Curl_ssl_scache_create | 1 | size_t | | (size_t,size_t,Curl_ssl_scache **) | | Curl_ssl_scache_create | 2 | Curl_ssl_scache ** | @@ -31836,9 +43098,13 @@ getSignatureParameterName | (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 2 | void ** | | (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 3 | const char * | | (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 4 | int | +| (size_t,traced_file *) | | register_traced_file | 0 | size_t | +| (size_t,traced_file *) | | register_traced_file | 1 | traced_file * | | (size_t,uint32_t *,uint8_t *) | | BrotliOptimizeHuffmanCountsForRle | 0 | size_t | | (size_t,uint32_t *,uint8_t *) | | BrotliOptimizeHuffmanCountsForRle | 1 | uint32_t * | | (size_t,uint32_t *,uint8_t *) | | BrotliOptimizeHuffmanCountsForRle | 2 | uint8_t * | +| (size_t,void **) | | __libc_alloc_buffer_allocate | 0 | size_t | +| (size_t,void **) | | __libc_alloc_buffer_allocate | 1 | void ** | | (size_type,const T &) | deque | assign | 0 | size_type | | (size_type,const T &) | deque | assign | 1 | const class:0 & | | (size_type,const T &) | forward_list | assign | 0 | size_type | @@ -31863,6 +43129,86 @@ getSignatureParameterName | (slist_wc **,const char *) | | easysrc_add | 1 | const char * | | (slist_wc *,const char *) | | slist_wc_append | 0 | slist_wc * | | (slist_wc *,const char *) | | slist_wc_append | 1 | const char * | +| (sockaddr_in *) | | pmap_getmaps | 0 | sockaddr_in * | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 0 | sockaddr_in * | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 1 | const u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 2 | u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 3 | const u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 4 | u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 5 | const u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 6 | u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 7 | xdrproc_t | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 8 | caddr_t | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 9 | xdrproc_t | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 10 | caddr_t | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 11 | timeval | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,const u_long,u_long,xdrproc_t,caddr_t,xdrproc_t,caddr_t,timeval,u_long *) | | pmap_rmtcall | 12 | u_long * | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int) | | pmap_getport | 0 | sockaddr_in * | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int) | | pmap_getport | 1 | const u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int) | | pmap_getport | 2 | u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int) | | pmap_getport | 3 | const u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int) | | pmap_getport | 4 | u_long | +| (sockaddr_in *,const u_long,u_long,const u_long,u_long,u_int) | | pmap_getport | 5 | u_int | +| (sockaddr_in *,u_long,u_long,int *,u_int,u_int) | | clnttcp_create | 0 | sockaddr_in * | +| (sockaddr_in *,u_long,u_long,int *,u_int,u_int) | | clnttcp_create | 1 | u_long | +| (sockaddr_in *,u_long,u_long,int *,u_int,u_int) | | clnttcp_create | 2 | u_long | +| (sockaddr_in *,u_long,u_long,int *,u_int,u_int) | | clnttcp_create | 3 | int * | +| (sockaddr_in *,u_long,u_long,int *,u_int,u_int) | | clnttcp_create | 4 | u_int | +| (sockaddr_in *,u_long,u_long,int *,u_int,u_int) | | clnttcp_create | 5 | u_int | +| (sockaddr_in *,u_long,u_long,timeval,int *) | | clntudp_create | 0 | sockaddr_in * | +| (sockaddr_in *,u_long,u_long,timeval,int *) | | clntudp_create | 1 | u_long | +| (sockaddr_in *,u_long,u_long,timeval,int *) | | clntudp_create | 2 | u_long | +| (sockaddr_in *,u_long,u_long,timeval,int *) | | clntudp_create | 3 | timeval | +| (sockaddr_in *,u_long,u_long,timeval,int *) | | clntudp_create | 4 | int * | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 0 | sockaddr_in * | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 1 | u_long | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 2 | u_long | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 3 | timeval | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 4 | int * | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 5 | u_int | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int) | | clntudp_bufcreate | 6 | u_int | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 0 | sockaddr_in * | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 1 | u_long | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 2 | u_long | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 3 | timeval | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 4 | int * | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 5 | u_int | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 6 | u_int | +| (sockaddr_in *,u_long,u_long,timeval,int *,u_int,u_int,int) | | __libc_clntudp_bufcreate | 7 | int | +| (sockaddr_in *,u_long,u_long,u_int) | | __pmap_getnisport | 0 | sockaddr_in * | +| (sockaddr_in *,u_long,u_long,u_int) | | __pmap_getnisport | 1 | u_long | +| (sockaddr_in *,u_long,u_long,u_int) | | __pmap_getnisport | 2 | u_long | +| (sockaddr_in *,u_long,u_long,u_int) | | __pmap_getnisport | 3 | u_int | +| (sockaddr_in *,u_long,u_long,u_int,time_t,time_t) | | __libc_rpc_getport | 0 | sockaddr_in * | +| (sockaddr_in *,u_long,u_long,u_int,time_t,time_t) | | __libc_rpc_getport | 1 | u_long | +| (sockaddr_in *,u_long,u_long,u_int,time_t,time_t) | | __libc_rpc_getport | 2 | u_long | +| (sockaddr_in *,u_long,u_long,u_int,time_t,time_t) | | __libc_rpc_getport | 3 | u_int | +| (sockaddr_in *,u_long,u_long,u_int,time_t,time_t) | | __libc_rpc_getport | 4 | time_t | +| (sockaddr_in *,u_long,u_long,u_int,time_t,time_t) | | __libc_rpc_getport | 5 | time_t | +| (sockaddr_un *,const char *) | | __sockaddr_un_set | 0 | sockaddr_un * | +| (sockaddr_un *,const char *) | | __sockaddr_un_set | 1 | const char * | +| (sockaddr_un *,u_long,u_long,int *,u_int,u_int) | | clntunix_create | 0 | sockaddr_un * | +| (sockaddr_un *,u_long,u_long,int *,u_int,u_int) | | clntunix_create | 1 | u_long | +| (sockaddr_un *,u_long,u_long,int *,u_int,u_int) | | clntunix_create | 2 | u_long | +| (sockaddr_un *,u_long,u_long,int *,u_int,u_int) | | clntunix_create | 3 | int * | +| (sockaddr_un *,u_long,u_long,int *,u_int,u_int) | | clntunix_create | 4 | u_int | +| (sockaddr_un *,u_long,u_long,int *,u_int,u_int) | | clntunix_create | 5 | u_int | +| (spwd *,char *,size_t,int *) | | _nss_compat_getspent_r | 0 | spwd * | +| (spwd *,char *,size_t,int *) | | _nss_compat_getspent_r | 1 | char * | +| (spwd *,char *,size_t,int *) | | _nss_compat_getspent_r | 2 | size_t | +| (spwd *,char *,size_t,int *) | | _nss_compat_getspent_r | 3 | int * | +| (spwd *,char *,size_t,int *) | | _nss_db_getspent_r | 0 | spwd * | +| (spwd *,char *,size_t,int *) | | _nss_db_getspent_r | 1 | char * | +| (spwd *,char *,size_t,int *) | | _nss_db_getspent_r | 2 | size_t | +| (spwd *,char *,size_t,int *) | | _nss_db_getspent_r | 3 | int * | +| (spwd *,char *,size_t,int *) | | _nss_files_getspent_r | 0 | spwd * | +| (spwd *,char *,size_t,int *) | | _nss_files_getspent_r | 1 | char * | +| (spwd *,char *,size_t,int *) | | _nss_files_getspent_r | 2 | size_t | +| (spwd *,char *,size_t,int *) | | _nss_files_getspent_r | 3 | int * | +| (spwd *,char *,size_t,spwd **) | | __getspent_r | 0 | spwd * | +| (spwd *,char *,size_t,spwd **) | | __getspent_r | 1 | char * | +| (spwd *,char *,size_t,spwd **) | | __getspent_r | 2 | size_t | +| (spwd *,char *,size_t,spwd **) | | __getspent_r | 3 | spwd ** | | (sqlite3 *) | | close_db | 0 | sqlite3 * | | (sqlite3 *) | | sqlite3CompletionVtabInit | 0 | sqlite3 * | | (sqlite3 *) | | sqlite3_changes | 0 | sqlite3 * | @@ -32542,6 +43888,8 @@ getSignatureParameterName | (stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *) | | ossl_policy_tree_find_sk | 1 | const ASN1_OBJECT * | | (state *,config *) | | State_insert | 0 | state * | | (state *,config *) | | State_insert | 1 | config * | +| (statvfs64 *,const statfs64 *) | | __internal_statvfs64 | 0 | statvfs64 * | +| (statvfs64 *,const statfs64 *) | | __internal_statvfs64 | 1 | const statfs64 * | | (store_netrc *) | | Curl_netrc_cleanup | 0 | store_netrc * | | (store_netrc *,const char *,char **,char **,char *) | | Curl_parsenetrc | 0 | store_netrc * | | (store_netrc *,const char *,char **,char **,char *) | | Curl_parsenetrc | 1 | const char * | @@ -32560,13 +43908,118 @@ getSignatureParameterName | (string_buf *,unsigned char **,size_t *) | | _libssh2_get_string | 0 | string_buf * | | (string_buf *,unsigned char **,size_t *) | | _libssh2_get_string | 1 | unsigned char ** | | (string_buf *,unsigned char **,size_t *) | | _libssh2_get_string | 2 | size_t * | +| (stringtable *,const char *) | | stringtable_add | 0 | stringtable * | +| (stringtable *,const char *) | | stringtable_add | 1 | const char * | +| (stringtable *,stringtable_finalized *) | | stringtable_finalize | 0 | stringtable * | +| (stringtable *,stringtable_finalized *) | | stringtable_finalize | 1 | stringtable_finalized * | +| (support_descriptors *,const char *,FILE *) | | support_descriptors_dump | 0 | support_descriptors * | +| (support_descriptors *,const char *,FILE *) | | support_descriptors_dump | 1 | const char * | +| (support_descriptors *,const char *,FILE *) | | support_descriptors_dump | 2 | FILE * | +| (support_fuse *) | | support_fuse_handle_directory | 0 | support_fuse * | +| (support_fuse *) | | support_fuse_handle_mountpoint | 0 | support_fuse * | +| (support_fuse *) | | support_fuse_mountpoint | 0 | support_fuse * | +| (support_fuse *) | | support_fuse_next | 0 | support_fuse * | +| (support_fuse *) | | support_fuse_prepare_attr | 0 | support_fuse * | +| (support_fuse *) | | support_fuse_prepare_readdir | 0 | support_fuse * | +| (support_fuse *,bool) | | support_fuse_filter_forget | 0 | support_fuse * | +| (support_fuse *,bool) | | support_fuse_filter_forget | 1 | bool | +| (support_fuse *,uint64_t) | | support_fuse_prepare_entry | 0 | support_fuse * | +| (support_fuse *,uint64_t) | | support_fuse_prepare_entry | 1 | uint64_t | +| (support_fuse *,uint64_t,fuse_entry_out **,fuse_open_out **) | | support_fuse_prepare_create | 0 | support_fuse * | +| (support_fuse *,uint64_t,fuse_entry_out **,fuse_open_out **) | | support_fuse_prepare_create | 1 | uint64_t | +| (support_fuse *,uint64_t,fuse_entry_out **,fuse_open_out **) | | support_fuse_prepare_create | 2 | fuse_entry_out ** | +| (support_fuse *,uint64_t,fuse_entry_out **,fuse_open_out **) | | support_fuse_prepare_create | 3 | fuse_open_out ** | +| (support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *) | | support_fuse_dirstream_add | 0 | support_fuse_dirstream * | +| (support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *) | | support_fuse_dirstream_add | 1 | uint64_t | +| (support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *) | | support_fuse_dirstream_add | 2 | uint64_t | +| (support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *) | | support_fuse_dirstream_add | 3 | uint32_t | +| (support_fuse_dirstream *,uint64_t,uint64_t,uint32_t,const char *) | | support_fuse_dirstream_add | 4 | const char * | | (symbol *,lemon *) | | has_destructor | 0 | symbol * | | (symbol *,lemon *) | | has_destructor | 1 | lemon * | +| (tcflag_t,speed_t) | | ___cbaud_to_speed | 0 | tcflag_t | +| (tcflag_t,speed_t) | | ___cbaud_to_speed | 1 | speed_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *) | | _td_locate_field | 0 | td_thragent_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *) | | _td_locate_field | 1 | db_desc_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *) | | _td_locate_field | 2 | int | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *) | | _td_locate_field | 3 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t *) | | _td_locate_field | 4 | psaddr_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *) | | _td_fetch_value | 0 | td_thragent_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *) | | _td_fetch_value | 1 | db_desc_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *) | | _td_fetch_value | 2 | int | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *) | | _td_fetch_value | 3 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *) | | _td_fetch_value | 4 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t *) | | _td_fetch_value | 5 | psaddr_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t) | | _td_store_value | 0 | td_thragent_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t) | | _td_store_value | 1 | db_desc_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t) | | _td_store_value | 2 | int | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t) | | _td_store_value | 3 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t) | | _td_store_value | 4 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,psaddr_t,psaddr_t) | | _td_store_value | 5 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *) | | _td_fetch_value_local | 0 | td_thragent_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *) | | _td_fetch_value_local | 1 | db_desc_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *) | | _td_fetch_value_local | 2 | int | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *) | | _td_fetch_value_local | 3 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *) | | _td_fetch_value_local | 4 | void * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t *) | | _td_fetch_value_local | 5 | psaddr_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t) | | _td_store_value_local | 0 | td_thragent_t * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t) | | _td_store_value_local | 1 | db_desc_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t) | | _td_store_value_local | 2 | int | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t) | | _td_store_value_local | 3 | psaddr_t | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t) | | _td_store_value_local | 4 | void * | +| (td_thragent_t *,db_desc_t,int,psaddr_t,void *,psaddr_t) | | _td_store_value_local | 5 | psaddr_t | +| (td_thragent_t *,psaddr_t *) | | __td_ta_stack_used | 0 | td_thragent_t * | +| (td_thragent_t *,psaddr_t *) | | __td_ta_stack_used | 1 | psaddr_t * | +| (td_thragent_t *,psaddr_t *) | | __td_ta_stack_user | 0 | td_thragent_t * | +| (td_thragent_t *,psaddr_t *) | | __td_ta_stack_user | 1 | psaddr_t * | +| (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 0 | td_thragent_t * | +| (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 1 | uint32_t * | +| (td_thragent_t *,uint32_t *,int) | | _td_check_sizeof | 2 | int | +| (termios *,baud_t) | | __cfsetbaud | 0 | termios * | +| (termios *,baud_t) | | __cfsetbaud | 1 | baud_t | +| (termios *,baud_t) | | __cfsetibaud | 0 | termios * | +| (termios *,baud_t) | | __cfsetibaud | 1 | baud_t | +| (termios *,baud_t) | | __cfsetobaud | 0 | termios * | +| (termios *,baud_t) | | __cfsetobaud | 1 | baud_t | +| (termios *,speed_t) | | __cfsetispeed | 0 | termios * | +| (termios *,speed_t) | | __cfsetispeed | 1 | speed_t | +| (termios *,speed_t) | | __cfsetospeed | 0 | termios * | +| (termios *,speed_t) | | __cfsetospeed | 1 | speed_t | +| (termios *,speed_t) | | __cfsetspeed | 0 | termios * | +| (termios *,speed_t) | | __cfsetspeed | 1 | speed_t | +| (time_t,int,long *,int *,tm *) | | __tzfile_compute | 0 | time_t | +| (time_t,int,long *,int *,tm *) | | __tzfile_compute | 1 | int | +| (time_t,int,long *,int *,tm *) | | __tzfile_compute | 2 | long * | +| (time_t,int,long *,int *,tm *) | | __tzfile_compute | 3 | int * | +| (time_t,int,long *,int *,tm *) | | __tzfile_compute | 4 | tm * | +| (time_t,int,tm *) | | __tz_convert | 0 | time_t | +| (time_t,int,tm *) | | __tz_convert | 1 | int | +| (time_t,int,tm *) | | __tz_convert | 2 | tm * | +| (time_t,long,tm *) | | __offtime | 0 | time_t | +| (time_t,long,tm *) | | __offtime | 1 | long | +| (time_t,long,tm *) | | __offtime | 2 | tm * | +| (time_t,time_t) | | __difftime | 0 | time_t | +| (time_t,time_t) | | __difftime | 1 | time_t | +| (timespec *,int) | | __timespec_get | 0 | timespec * | +| (timespec *,int) | | __timespec_get | 1 | int | +| (timespec *,int) | | __timespec_getres | 0 | timespec * | +| (timespec *,int) | | __timespec_getres | 1 | int | +| (timespec) | | support_timespec_normalize | 0 | timespec | +| (timespec,timespec) | | timespec_add | 0 | timespec | +| (timespec,timespec) | | timespec_add | 1 | timespec | +| (timespec,timespec) | | timespec_sub | 0 | timespec | +| (timespec,timespec) | | timespec_sub | 1 | timespec | | (timeval *) | | curlx_tvtoms | 0 | timeval * | | (timeval *,timediff_t) | | curlx_mstotv | 0 | timeval * | | (timeval *,timediff_t) | | curlx_mstotv | 1 | timediff_t | | (timeval,timeval) | | tvdiff | 0 | timeval | | (timeval,timeval) | | tvdiff | 1 | timeval | +| (tls_index *) | | ___tls_get_addr | 0 | tls_index * | +| (tls_index *) | | __tls_get_addr_slow | 0 | tls_index * | +| (tm *) | | mktime | 0 | tm * | +| (tm *) | | timegm | 0 | tm * | +| (tm *,..(*)(..),mktime_offset_t *) | | __mktime_internal | 0 | tm * | +| (tm *,..(*)(..),mktime_offset_t *) | | __mktime_internal | 1 | ..(*)(..) | +| (tm *,..(*)(..),mktime_offset_t *) | | __mktime_internal | 2 | mktime_offset_t * | | (tm *,const ASN1_TIME *) | | ossl_asn1_time_to_tm | 0 | tm * | | (tm *,const ASN1_TIME *) | | ossl_asn1_time_to_tm | 1 | const ASN1_TIME * | | (tm *,const ASN1_UTCTIME *) | | ossl_asn1_utctime_to_tm | 0 | tm * | @@ -32574,6 +44027,12 @@ getSignatureParameterName | (tm *,int,long) | | OPENSSL_gmtime_adj | 0 | tm * | | (tm *,int,long) | | OPENSSL_gmtime_adj | 1 | int | | (tm *,int,long) | | OPENSSL_gmtime_adj | 2 | long | +| (tunable_id_t) | | __tunable_is_initialized | 0 | tunable_id_t | +| (tunable_id_t,void *) | | __tunable_get_default | 0 | tunable_id_t | +| (tunable_id_t,void *) | | __tunable_get_default | 1 | void * | +| (tunable_id_t,void *,tunable_callback_t) | | __tunable_get_val | 0 | tunable_id_t | +| (tunable_id_t,void *,tunable_callback_t) | | __tunable_get_val | 1 | void * | +| (tunable_id_t,void *,tunable_callback_t) | | __tunable_get_val | 2 | tunable_callback_t | | (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 0 | u64[2] | | (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 1 | const u128[16] | | (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 2 | const u8 * | @@ -32617,6 +44076,25 @@ getSignatureParameterName | (u_char[16],unsigned char[16],const u_char *,const unsigned char *,size_t,const u_char[32],const unsigned char[32]) | | poly1305_auth | 4 | size_t | | (u_char[16],unsigned char[16],const u_char *,const unsigned char *,size_t,const u_char[32],const unsigned char[32]) | | poly1305_auth | 5 | const u_char[32] | | (u_char[16],unsigned char[16],const u_char *,const unsigned char *,size_t,const u_char[32],const unsigned char[32]) | | poly1305_auth | 6 | const unsigned char[32] | +| (u_int,unsigned int,u_char *,unsigned char *) | | ns_put16 | 0 | u_int | +| (u_int,unsigned int,u_char *,unsigned char *) | | ns_put16 | 1 | unsigned int | +| (u_int,unsigned int,u_char *,unsigned char *) | | ns_put16 | 2 | u_char * | +| (u_int,unsigned int,u_char *,unsigned char *) | | ns_put16 | 3 | unsigned char * | +| (u_long) | | __p_secstodate | 0 | u_long | +| (u_long,unsigned long) | | __p_option | 0 | u_long | +| (u_long,unsigned long) | | __p_option | 1 | unsigned long | +| (u_long,unsigned long,char *,size_t) | | ns_format_ttl | 0 | u_long | +| (u_long,unsigned long,char *,size_t) | | ns_format_ttl | 1 | unsigned long | +| (u_long,unsigned long,char *,size_t) | | ns_format_ttl | 2 | char * | +| (u_long,unsigned long,char *,size_t) | | ns_format_ttl | 3 | size_t | +| (u_long,unsigned long,u_char *,unsigned char *) | | ns_put32 | 0 | u_long | +| (u_long,unsigned long,u_char *,unsigned char *) | | ns_put32 | 1 | unsigned long | +| (u_long,unsigned long,u_char *,unsigned char *) | | ns_put32 | 2 | u_char * | +| (u_long,unsigned long,u_char *,unsigned char *) | | ns_put32 | 3 | unsigned char * | +| (ucontext_t *,..(*)(..),int,...) | | __makecontext | 0 | ucontext_t * | +| (ucontext_t *,..(*)(..),int,...) | | __makecontext | 1 | ..(*)(..) | +| (ucontext_t *,..(*)(..),int,...) | | __makecontext | 2 | int | +| (ucontext_t *,..(*)(..),int,...) | | __makecontext | 3 | ... | | (ucs4_t *,const uint8_t *,size_t) | | u8_mbtouc_aux | 0 | ucs4_t * | | (ucs4_t *,const uint8_t *,size_t) | | u8_mbtouc_aux | 1 | const uint8_t * | | (ucs4_t *,const uint8_t *,size_t) | | u8_mbtouc_aux | 2 | size_t | @@ -32635,6 +44113,11 @@ getSignatureParameterName | (ucs4_with_ccc *,size_t,ucs4_with_ccc *) | | gl_uninorm_decompose_merge_sort_inplace | 0 | ucs4_with_ccc * | | (ucs4_with_ccc *,size_t,ucs4_with_ccc *) | | gl_uninorm_decompose_merge_sort_inplace | 1 | size_t | | (ucs4_with_ccc *,size_t,ucs4_with_ccc *) | | gl_uninorm_decompose_merge_sort_inplace | 2 | ucs4_with_ccc * | +| (uid_t,passwd *,char *,size_t,passwd **) | | __nscd_getpwuid_r | 0 | uid_t | +| (uid_t,passwd *,char *,size_t,passwd **) | | __nscd_getpwuid_r | 1 | passwd * | +| (uid_t,passwd *,char *,size_t,passwd **) | | __nscd_getpwuid_r | 2 | char * | +| (uid_t,passwd *,char *,size_t,passwd **) | | __nscd_getpwuid_r | 3 | size_t | +| (uid_t,passwd *,char *,size_t,passwd **) | | __nscd_getpwuid_r | 4 | passwd ** | | (uint8_t *,const nghttp2_frame_hd *) | | nghttp2_frame_pack_frame_hd | 0 | uint8_t * | | (uint8_t *,const nghttp2_frame_hd *) | | nghttp2_frame_pack_frame_hd | 1 | const nghttp2_frame_hd * | | (uint8_t *,const nghttp2_priority_spec *) | | nghttp2_frame_pack_priority_spec | 0 | uint8_t * | @@ -32745,6 +44228,8 @@ getSignatureParameterName | (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 6 | void * | | (uint16_t,int) | | tls1_group_id2nid | 0 | uint16_t | | (uint16_t,int) | | tls1_group_id2nid | 1 | int | +| (uint16_t,unsigned char *) | | __putshort | 0 | uint16_t | +| (uint16_t,unsigned char *) | | __putshort | 1 | unsigned char * | | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 0 | uint32_t * | | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 1 | SSL_CONNECTION * | | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | int | @@ -32758,6 +44243,32 @@ getSignatureParameterName | (uint32_t *,size_t *,int *,uint32_t,size_t,uint8_t *,uint8_t *,size_t) | | nghttp2_hd_decode_length | 5 | uint8_t * | | (uint32_t *,size_t *,int *,uint32_t,size_t,uint8_t *,uint8_t *,size_t) | | nghttp2_hd_decode_length | 6 | uint8_t * | | (uint32_t *,size_t *,int *,uint32_t,size_t,uint8_t *,uint8_t *,size_t) | | nghttp2_hd_decode_length | 7 | size_t | +| (uint32_t) | | __p_time | 0 | uint32_t | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 0 | uint32_t | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 1 | int | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 2 | netent * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 3 | char * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 4 | size_t | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 5 | int * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_dns_getnetbyaddr_r | 6 | int * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 0 | uint32_t | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 1 | int | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 2 | netent * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 3 | char * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 4 | size_t | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 5 | int * | +| (uint32_t,int,netent *,char *,size_t,int *,int *) | | _nss_files_getnetbyaddr_r | 6 | int * | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 0 | uint32_t | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 1 | int | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 2 | netent * | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 3 | netent *__restrict__ | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 4 | char * | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 5 | char *__restrict__ | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 6 | size_t | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 7 | netent ** | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 8 | netent **__restrict__ | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 9 | int * | +| (uint32_t,int,netent *,netent *__restrict__,char *,char *__restrict__,size_t,netent **,netent **__restrict__,int *,int *__restrict__) | | __getnetbyaddr_r | 10 | int *__restrict__ | | (uint32_t,uint32_t *,uint32_t *) | | ossl_ml_dsa_key_compress_power2_round | 0 | uint32_t | | (uint32_t,uint32_t *,uint32_t *) | | ossl_ml_dsa_key_compress_power2_round | 1 | uint32_t * | | (uint32_t,uint32_t *,uint32_t *) | | ossl_ml_dsa_key_compress_power2_round | 2 | uint32_t * | @@ -32772,6 +44283,8 @@ getSignatureParameterName | (uint32_t,uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_use_hint | 0 | uint32_t | | (uint32_t,uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_use_hint | 1 | uint32_t | | (uint32_t,uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_use_hint | 2 | uint32_t | +| (uint32_t,unsigned char *) | | __putlong | 0 | uint32_t | +| (uint32_t,unsigned char *) | | __putlong | 1 | unsigned char * | | (uint64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_uint64 | 0 | uint64_t * | | (uint64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_uint64 | 1 | const ASN1_INTEGER * | | (uint64_t *,int *,const unsigned char **,long) | | ossl_c2i_uint64_int | 0 | uint64_t * | @@ -32900,6 +44413,9 @@ getSignatureParameterName | (unsigned char *,const BIGNUM *,DH *) | | ossl_dh_compute_key | 2 | DH * | | (unsigned char *,const char *) | | ossl_a2i_ipadd | 0 | unsigned char * | | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | const char * | +| (unsigned char *,const char *,int) | | data_string | 0 | unsigned char * | +| (unsigned char *,const char *,int) | | data_string | 1 | const char * | +| (unsigned char *,const char *,int) | | data_string | 2 | int | | (unsigned char *,const unsigned char *,const unsigned char *,size_t) | | _libssh2_xor_data | 0 | unsigned char * | | (unsigned char *,const unsigned char *,const unsigned char *,size_t) | | _libssh2_xor_data | 1 | const unsigned char * | | (unsigned char *,const unsigned char *,const unsigned char *,size_t) | | _libssh2_xor_data | 2 | const unsigned char * | @@ -33091,6 +44607,7 @@ getSignatureParameterName | (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 5 | const char * | | (unsigned char[56],const curve448_scalar_t) | | ossl_curve448_scalar_encode | 0 | unsigned char[56] | | (unsigned char[56],const curve448_scalar_t) | | ossl_curve448_scalar_encode | 1 | const curve448_scalar_t | +| (unsigned int *) | | rand_r | 0 | unsigned int * | | (unsigned int *,const BF_KEY *) | | BF_decrypt | 0 | unsigned int * | | (unsigned int *,const BF_KEY *) | | BF_decrypt | 1 | const BF_KEY * | | (unsigned int *,const BF_KEY *) | | BF_encrypt | 0 | unsigned int * | @@ -33100,17 +44617,45 @@ getSignatureParameterName | (unsigned int *,const CAST_KEY *) | | CAST_encrypt | 0 | unsigned int * | | (unsigned int *,const CAST_KEY *) | | CAST_encrypt | 1 | const CAST_KEY * | | (unsigned int) | | Jim_IntHashFunction | 0 | unsigned int | +| (unsigned int) | | __sleep | 0 | unsigned int | +| (unsigned int) | | __x86_get_cpuid_feature_leaf | 0 | unsigned int | | (unsigned int) | | curlx_uitous | 0 | unsigned int | +| (unsigned int) | | la_version | 0 | unsigned int | | (unsigned int) | | ssl3_get_cipher | 0 | unsigned int | +| (unsigned int,__locale_data *) | | _nl_get_alt_digit | 0 | unsigned int | +| (unsigned int,__locale_data *) | | _nl_get_alt_digit | 1 | __locale_data * | +| (unsigned int,__locale_data *) | | _nl_get_walt_digit | 0 | unsigned int | +| (unsigned int,__locale_data *) | | _nl_get_walt_digit | 1 | __locale_data * | | (unsigned int,char *,size_t *) | | uv_if_indextoiid | 0 | unsigned int | | (unsigned int,char *,size_t *) | | uv_if_indextoiid | 1 | char * | | (unsigned int,char *,size_t *) | | uv_if_indextoiid | 2 | size_t * | | (unsigned int,char *,size_t *) | | uv_if_indextoname | 0 | unsigned int | | (unsigned int,char *,size_t *) | | uv_if_indextoname | 1 | char * | | (unsigned int,char *,size_t *) | | uv_if_indextoname | 2 | size_t * | +| (unsigned int,char *,size_t) | | __initstate | 0 | unsigned int | +| (unsigned int,char *,size_t) | | __initstate | 1 | char * | +| (unsigned int,char *,size_t) | | __initstate | 2 | size_t | +| (unsigned int,char *,size_t,random_data *) | | __initstate_r | 0 | unsigned int | +| (unsigned int,char *,size_t,random_data *) | | __initstate_r | 1 | char * | +| (unsigned int,char *,size_t,random_data *) | | __initstate_r | 2 | size_t | +| (unsigned int,char *,size_t,random_data *) | | __initstate_r | 3 | random_data * | +| (unsigned int,char[16]) | | __if_indextoname | 0 | unsigned int | +| (unsigned int,char[16]) | | __if_indextoname | 1 | char[16] | +| (unsigned int,const char *,int) | | _IO_adjust_column | 0 | unsigned int | +| (unsigned int,const char *,int) | | _IO_adjust_column | 1 | const char * | +| (unsigned int,const char *,int) | | _IO_adjust_column | 2 | int | +| (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 0 | unsigned int | +| (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 1 | const wchar_t * | +| (unsigned int,const wchar_t *,int) | | _IO_adjust_wcolumn | 2 | int | | (unsigned int,int,int) | | ossl_blob_length | 0 | unsigned int | | (unsigned int,int,int) | | ossl_blob_length | 1 | int | | (unsigned int,int,int) | | ossl_blob_length | 2 | int | +| (unsigned int,random_data *) | | __srandom_r | 0 | unsigned int | +| (unsigned int,random_data *) | | __srandom_r | 1 | random_data * | +| (unsigned int,unsigned int) | | __gnu_dev_makedev | 0 | unsigned int | +| (unsigned int,unsigned int) | | __gnu_dev_makedev | 1 | unsigned int | +| (unsigned int,unsigned int) | | gnu_dev_makedev | 0 | unsigned int | +| (unsigned int,unsigned int) | | gnu_dev_makedev | 1 | unsigned int | | (unsigned int[5],const unsigned char[64]) | | SHA1Transform | 0 | unsigned int[5] | | (unsigned int[5],const unsigned char[64]) | | SHA1Transform | 1 | const unsigned char[64] | | (unsigned long *,IDEA_KEY_SCHEDULE *) | | IDEA_encrypt | 0 | unsigned long * | @@ -33191,16 +44736,29 @@ getSignatureParameterName | (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 2 | unsigned long * | | (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 3 | int | | (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 4 | unsigned long * | +| (unsigned long long,char *,unsigned int,int) | | _itoa | 0 | unsigned long long | +| (unsigned long long,char *,unsigned int,int) | | _itoa | 1 | char * | +| (unsigned long long,char *,unsigned int,int) | | _itoa | 2 | unsigned int | +| (unsigned long long,char *,unsigned int,int) | | _itoa | 3 | int | | (unsigned long) | | BN_num_bits_word | 0 | unsigned long | | (unsigned long) | | BUF_MEM_new_ex | 0 | unsigned long | | (unsigned long) | | curlx_ultouc | 0 | unsigned long | | (unsigned long) | | curlx_ultous | 0 | unsigned long | +| (unsigned long) | | next_prime | 0 | unsigned long | | (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 0 | unsigned long | | (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 1 | BIGNUM * | | (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 2 | BIGNUM * | | (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 3 | int | | (unsigned long,char *) | | ERR_error_string | 0 | unsigned long | | (unsigned long,char *) | | ERR_error_string | 1 | char * | +| (unsigned long,char *,unsigned int,int) | | _fitoa_word | 0 | unsigned long | +| (unsigned long,char *,unsigned int,int) | | _fitoa_word | 1 | char * | +| (unsigned long,char *,unsigned int,int) | | _fitoa_word | 2 | unsigned int | +| (unsigned long,char *,unsigned int,int) | | _fitoa_word | 3 | int | +| (unsigned long,char *,unsigned int,int) | | _itoa_word | 0 | unsigned long | +| (unsigned long,char *,unsigned int,int) | | _itoa_word | 1 | char * | +| (unsigned long,char *,unsigned int,int) | | _itoa_word | 2 | unsigned int | +| (unsigned long,char *,unsigned int,int) | | _itoa_word | 3 | int | | (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 0 | unsigned long[8] | | (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 1 | const unsigned long[8] | | (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 2 | const unsigned long[8] | @@ -33215,6 +44773,28 @@ getSignatureParameterName | (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 5 | unsigned long | | (unsigned short,int) | | dtls1_get_queue_priority | 0 | unsigned short | | (unsigned short,int) | | dtls1_get_queue_priority | 1 | int | +| (unsigned short[3]) | | erand48 | 0 | unsigned short[3] | +| (unsigned short[3]) | | jrand48 | 0 | unsigned short[3] | +| (unsigned short[3]) | | nrand48 | 0 | unsigned short[3] | +| (unsigned short[3],drand48_data *) | | __drand48_iterate | 0 | unsigned short[3] | +| (unsigned short[3],drand48_data *) | | __drand48_iterate | 1 | drand48_data * | +| (unsigned short[3],drand48_data *) | | __seed48_r | 0 | unsigned short[3] | +| (unsigned short[3],drand48_data *) | | __seed48_r | 1 | drand48_data * | +| (unsigned short[3],drand48_data *,double *) | | __erand48_r | 0 | unsigned short[3] | +| (unsigned short[3],drand48_data *,double *) | | __erand48_r | 1 | drand48_data * | +| (unsigned short[3],drand48_data *,double *) | | __erand48_r | 2 | double * | +| (unsigned short[3],drand48_data *,long *) | | __jrand48_r | 0 | unsigned short[3] | +| (unsigned short[3],drand48_data *,long *) | | __jrand48_r | 1 | drand48_data * | +| (unsigned short[3],drand48_data *,long *) | | __jrand48_r | 2 | long * | +| (unsigned short[3],drand48_data *,long *) | | __nrand48_r | 0 | unsigned short[3] | +| (unsigned short[3],drand48_data *,long *) | | __nrand48_r | 1 | drand48_data * | +| (unsigned short[3],drand48_data *,long *) | | __nrand48_r | 2 | long * | +| (unsigned short[7],drand48_data *) | | __lcong48_r | 0 | unsigned short[7] | +| (unsigned short[7],drand48_data *) | | __lcong48_r | 1 | drand48_data * | +| (utmp *,utmp **) | | __getutent_r | 0 | utmp * | +| (utmp *,utmp **) | | __getutent_r | 1 | utmp ** | +| (utmp *,utmp **) | | __libc_getutent_r | 0 | utmp * | +| (utmp *,utmp **) | | __libc_getutent_r | 1 | utmp ** | | (uv__io_t *,uv__io_cb,int) | | uv__io_init | 0 | uv__io_t * | | (uv__io_t *,uv__io_cb,int) | | uv__io_init | 1 | uv__io_cb | | (uv__io_t *,uv__io_cb,int) | | uv__io_init | 2 | int | @@ -33733,7 +45313,20 @@ getSignatureParameterName | (vector &&,const Allocator &) | vector | vector | 0 | vector && | | (vector &&,const Allocator &) | vector | vector | 1 | const class:1 & | | (void *) | | Curl_cpool_upkeep | 0 | void * | +| (void *) | | __dlclose | 0 | void * | +| (void *) | | __libc_dlclose | 0 | void * | +| (void *) | | __libc_free | 0 | void * | +| (void *) | | __malloc_usable_size | 0 | void * | +| (void *) | | _dl_allocate_tls | 0 | void * | +| (void *) | | _dl_close | 0 | void * | +| (void *) | | malloc_usable_size | 0 | void * | | (void *) | | ossl_kdf_data_new | 0 | void * | +| (void *) | | support_shared_free | 0 | void * | +| (void **,..(*)(..)) | | _dl_sysdep_start | 0 | void ** | +| (void **,..(*)(..)) | | _dl_sysdep_start | 1 | ..(*)(..) | +| (void **,size_t,size_t) | | __posix_memalign | 0 | void ** | +| (void **,size_t,size_t) | | __posix_memalign | 1 | size_t | +| (void **,size_t,size_t) | | __posix_memalign | 2 | size_t | | (void *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_join | 0 | void * | | (void *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_join | 1 | CRYPTO_THREAD_RETVAL * | | (void *,OSSL_PARAM[]) | | ossl_blake2b_get_ctx_params | 0 | void * | @@ -33754,6 +45347,23 @@ getSignatureParameterName | (void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *) | | ossl_gcm_initctx | 3 | const PROV_GCM_HW * | | (void *,block128_f) | | CRYPTO_gcm128_new | 0 | void * | | (void *,block128_f) | | CRYPTO_gcm128_new | 1 | block128_f | +| (void *,bool) | | _dl_allocate_tls_init | 0 | void * | +| (void *,bool) | | _dl_allocate_tls_init | 1 | bool | +| (void *,bool) | | _dl_deallocate_tls | 0 | void * | +| (void *,bool) | | _dl_deallocate_tls | 1 | bool | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 0 | void * | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 1 | char | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 2 | __STRING2_COPY_ARR2 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 3 | __STRING2_COPY_ARR3 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 4 | __STRING2_COPY_ARR4 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 5 | __STRING2_COPY_ARR5 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 6 | __STRING2_COPY_ARR6 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 7 | __STRING2_COPY_ARR7 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 8 | __STRING2_COPY_ARR8 | +| (void *,char,__STRING2_COPY_ARR2,__STRING2_COPY_ARR3,__STRING2_COPY_ARR4,__STRING2_COPY_ARR5,__STRING2_COPY_ARR6,__STRING2_COPY_ARR7,__STRING2_COPY_ARR8,size_t) | | __old_mempcpy_small | 9 | size_t | +| (void *,cmsghdr **,int) | | inet6_option_init | 0 | void * | +| (void *,cmsghdr **,int) | | inet6_option_init | 1 | cmsghdr ** | +| (void *,cmsghdr **,int) | | inet6_option_init | 2 | int | | (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 0 | void * | | (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 1 | const ASN1_ITEM * | | (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 2 | ASN1_OCTET_STRING ** | @@ -33776,9 +45386,18 @@ getSignatureParameterName | (void *,const OSSL_PARAM[]) | | ossl_gcm_set_ctx_params | 1 | const OSSL_PARAM[] | | (void *,const OSSL_PARAM[]) | | ossl_tdes_set_ctx_params | 0 | void * | | (void *,const OSSL_PARAM[]) | | ossl_tdes_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const char *,const char *,void *) | | _dl_vsym | 0 | void * | +| (void *,const char *,const char *,void *) | | _dl_vsym | 1 | const char * | +| (void *,const char *,const char *,void *) | | _dl_vsym | 2 | const char * | +| (void *,const char *,const char *,void *) | | _dl_vsym | 3 | void * | | (void *,const char *,int) | | CRYPTO_secure_free | 0 | void * | | (void *,const char *,int) | | CRYPTO_secure_free | 1 | const char * | | (void *,const char *,int) | | CRYPTO_secure_free | 2 | int | +| (void *,const char *,void *) | | _dl_sym | 0 | void * | +| (void *,const char *,void *) | | _dl_sym | 1 | const char * | +| (void *,const char *,void *) | | _dl_sym | 2 | void * | +| (void *,const in6_addr *) | | inet6_rth_add | 0 | void * | +| (void *,const in6_addr *) | | inet6_rth_add | 1 | const in6_addr * | | (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 0 | void * | | (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 1 | const unsigned char * | | (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 2 | size_t | @@ -33863,6 +45482,10 @@ getSignatureParameterName | (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 3 | const unsigned char * | | (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 4 | size_t | | (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 5 | block128_f | +| (void *,const void *,int,size_t) | | __memccpy | 0 | void * | +| (void *,const void *,int,size_t) | | __memccpy | 1 | const void * | +| (void *,const void *,int,size_t) | | __memccpy | 2 | int | +| (void *,const void *,int,size_t) | | __memccpy | 3 | size_t | | (void *,curl_off_t,curl_off_t,curl_off_t,curl_off_t) | | xferinfo_cb | 0 | void * | | (void *,curl_off_t,curl_off_t,curl_off_t,curl_off_t) | | xferinfo_cb | 1 | curl_off_t | | (void *,curl_off_t,curl_off_t,curl_off_t,curl_off_t) | | xferinfo_cb | 2 | curl_off_t | @@ -33885,12 +45508,30 @@ getSignatureParameterName | (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 4 | size_t | | (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 5 | uint64_t | | (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 6 | const PROV_CIPHER_HW * | +| (void *,int,void *,socklen_t) | | inet6_opt_get_val | 0 | void * | +| (void *,int,void *,socklen_t) | | inet6_opt_get_val | 1 | int | +| (void *,int,void *,socklen_t) | | inet6_opt_get_val | 2 | void * | +| (void *,int,void *,socklen_t) | | inet6_opt_get_val | 3 | socklen_t | +| (void *,int,void *,socklen_t) | | inet6_opt_set_val | 0 | void * | +| (void *,int,void *,socklen_t) | | inet6_opt_set_val | 1 | int | +| (void *,int,void *,socklen_t) | | inet6_opt_set_val | 2 | void * | +| (void *,int,void *,socklen_t) | | inet6_opt_set_val | 3 | socklen_t | | (void *,size_t) | | JimDefaultAllocator | 0 | void * | | (void *,size_t) | | JimDefaultAllocator | 1 | size_t | +| (void *,size_t) | | __arc4random_buf | 0 | void * | +| (void *,size_t) | | __arc4random_buf | 1 | size_t | +| (void *,size_t) | | __libc_realloc | 0 | void * | +| (void *,size_t) | | __libc_realloc | 1 | size_t | +| (void *,size_t) | | __minimal_realloc | 0 | void * | +| (void *,size_t) | | __minimal_realloc | 1 | size_t | +| (void *,size_t) | | getentropy | 0 | void * | +| (void *,size_t) | | getentropy | 1 | size_t | | (void *,size_t) | | uv__random_devurandom | 0 | void * | | (void *,size_t) | | uv__random_devurandom | 1 | size_t | | (void *,size_t) | | uv__random_getrandom | 0 | void * | | (void *,size_t) | | uv__random_getrandom | 1 | size_t | +| (void *,size_t) | | xrealloc | 0 | void * | +| (void *,size_t) | | xrealloc | 1 | size_t | | (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 0 | void * | | (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 1 | size_t | | (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 2 | const EC_POINT * | @@ -33903,6 +45544,17 @@ getSignatureParameterName | (void *,size_t,size_t) | | Curl_hash_str | 0 | void * | | (void *,size_t,size_t) | | Curl_hash_str | 1 | size_t | | (void *,size_t,size_t) | | Curl_hash_str | 2 | size_t | +| (void *,size_t,size_t) | | __libc_reallocarray | 0 | void * | +| (void *,size_t,size_t) | | __libc_reallocarray | 1 | size_t | +| (void *,size_t,size_t) | | __libc_reallocarray | 2 | size_t | +| (void *,size_t,size_t,FILE *) | | _IO_fread | 0 | void * | +| (void *,size_t,size_t,FILE *) | | _IO_fread | 1 | size_t | +| (void *,size_t,size_t,FILE *) | | _IO_fread | 2 | size_t | +| (void *,size_t,size_t,FILE *) | | _IO_fread | 3 | FILE * | +| (void *,size_t,size_t,__compar_fn_t) | | qsort | 0 | void * | +| (void *,size_t,size_t,__compar_fn_t) | | qsort | 1 | size_t | +| (void *,size_t,size_t,__compar_fn_t) | | qsort | 2 | size_t | +| (void *,size_t,size_t,__compar_fn_t) | | qsort | 3 | __compar_fn_t | | (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 0 | void * | | (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 1 | size_t | | (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 2 | size_t | @@ -33916,6 +45568,34 @@ getSignatureParameterName | (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 5 | uint64_t | | (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 6 | const PROV_CIPHER_HW * | | (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 7 | void * | +| (void *,socklen_t) | | inet6_opt_init | 0 | void * | +| (void *,socklen_t) | | inet6_opt_init | 1 | socklen_t | +| (void *,socklen_t,int) | | inet6_opt_finish | 0 | void * | +| (void *,socklen_t,int) | | inet6_opt_finish | 1 | socklen_t | +| (void *,socklen_t,int) | | inet6_opt_finish | 2 | int | +| (void *,socklen_t,int,int) | | inet6_rth_init | 0 | void * | +| (void *,socklen_t,int,int) | | inet6_rth_init | 1 | socklen_t | +| (void *,socklen_t,int,int) | | inet6_rth_init | 2 | int | +| (void *,socklen_t,int,int) | | inet6_rth_init | 3 | int | +| (void *,socklen_t,int,uint8_t *,socklen_t *,void **) | | inet6_opt_next | 0 | void * | +| (void *,socklen_t,int,uint8_t *,socklen_t *,void **) | | inet6_opt_next | 1 | socklen_t | +| (void *,socklen_t,int,uint8_t *,socklen_t *,void **) | | inet6_opt_next | 2 | int | +| (void *,socklen_t,int,uint8_t *,socklen_t *,void **) | | inet6_opt_next | 3 | uint8_t * | +| (void *,socklen_t,int,uint8_t *,socklen_t *,void **) | | inet6_opt_next | 4 | socklen_t * | +| (void *,socklen_t,int,uint8_t *,socklen_t *,void **) | | inet6_opt_next | 5 | void ** | +| (void *,socklen_t,int,uint8_t,socklen_t *,void **) | | inet6_opt_find | 0 | void * | +| (void *,socklen_t,int,uint8_t,socklen_t *,void **) | | inet6_opt_find | 1 | socklen_t | +| (void *,socklen_t,int,uint8_t,socklen_t *,void **) | | inet6_opt_find | 2 | int | +| (void *,socklen_t,int,uint8_t,socklen_t *,void **) | | inet6_opt_find | 3 | uint8_t | +| (void *,socklen_t,int,uint8_t,socklen_t *,void **) | | inet6_opt_find | 4 | socklen_t * | +| (void *,socklen_t,int,uint8_t,socklen_t *,void **) | | inet6_opt_find | 5 | void ** | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 0 | void * | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 1 | socklen_t | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 2 | int | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 3 | uint8_t | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 4 | socklen_t | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 5 | uint8_t | +| (void *,socklen_t,int,uint8_t,socklen_t,uint8_t,void **) | | inet6_opt_append | 6 | void ** | | (void *,sqlite3 *,int,const char *) | | useDummyCS | 0 | void * | | (void *,sqlite3 *,int,const char *) | | useDummyCS | 1 | sqlite3 * | | (void *,sqlite3 *,int,const char *) | | useDummyCS | 2 | int | @@ -33993,6 +45673,8 @@ getSignatureParameterName | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 0 | void * | | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 1 | unsigned char * | | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | size_t | +| (void *,void *) | | insque | 0 | void * | +| (void *,void *) | | insque | 1 | void * | | (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 0 | void * | | (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 1 | void * | | (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 2 | block128_f | @@ -34017,6 +45699,30 @@ getSignatureParameterName | (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 2 | const unsigned char * | | (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 3 | size_t | | (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 4 | const OSSL_PARAM[] | +| (void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | __fread_unlocked | 0 | void * | +| (void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | __fread_unlocked | 1 | void *__restrict__ | +| (void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | __fread_unlocked | 2 | size_t | +| (void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | __fread_unlocked | 3 | size_t | +| (void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | __fread_unlocked | 4 | FILE * | +| (void *,void *__restrict__,size_t,size_t,FILE *,FILE *__restrict__) | | __fread_unlocked | 5 | FILE *__restrict__ | +| (void *,void *const,size_t,size_t,__compar_d_fn_t,void *) | | __qsort_r | 0 | void * | +| (void *,void *const,size_t,size_t,__compar_d_fn_t,void *) | | __qsort_r | 1 | void *const | +| (void *,void *const,size_t,size_t,__compar_d_fn_t,void *) | | __qsort_r | 2 | size_t | +| (void *,void *const,size_t,size_t,__compar_d_fn_t,void *) | | __qsort_r | 3 | size_t | +| (void *,void *const,size_t,size_t,__compar_d_fn_t,void *) | | __qsort_r | 4 | __compar_d_fn_t | +| (void *,void *const,size_t,size_t,__compar_d_fn_t,void *) | | __qsort_r | 5 | void * | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_chk | 0 | void *__restrict__ | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_chk | 1 | size_t | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_chk | 2 | size_t | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_chk | 3 | size_t | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_chk | 4 | FILE *__restrict__ | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_unlocked_chk | 0 | void *__restrict__ | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_unlocked_chk | 1 | size_t | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_unlocked_chk | 2 | size_t | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_unlocked_chk | 3 | size_t | +| (void *__restrict__,size_t,size_t,size_t,FILE *__restrict__) | | __fread_unlocked_chk | 4 | FILE *__restrict__ | +| (void *const *,int) | | __backtrace_symbols | 0 | void *const * | +| (void *const *,int) | | __backtrace_symbols | 1 | int | | (voidp,z_size_t,z_size_t,gzFile) | | gzfread | 0 | voidp | | (voidp,z_size_t,z_size_t,gzFile) | | gzfread | 1 | z_size_t | | (voidp,z_size_t,z_size_t,gzFile) | | gzfread | 2 | z_size_t | @@ -34026,15 +45732,278 @@ getSignatureParameterName | (voidpc,z_size_t,z_size_t,gzFile) | | gzfwrite | 2 | z_size_t | | (voidpc,z_size_t,z_size_t,gzFile) | | gzfwrite | 3 | gzFile | | (wchar_t *) | CStringT | CStringT | 0 | wchar_t * | +| (wchar_t *,const char **,size_t,mbstate_t *,locale_t) | | __mbsrtowcs_l | 0 | wchar_t * | +| (wchar_t *,const char **,size_t,mbstate_t *,locale_t) | | __mbsrtowcs_l | 1 | const char ** | +| (wchar_t *,const char **,size_t,mbstate_t *,locale_t) | | __mbsrtowcs_l | 2 | size_t | +| (wchar_t *,const char **,size_t,mbstate_t *,locale_t) | | __mbsrtowcs_l | 3 | mbstate_t * | +| (wchar_t *,const char **,size_t,mbstate_t *,locale_t) | | __mbsrtowcs_l | 4 | locale_t | +| (wchar_t *,const char *,size_t,size_t) | | __mbstowcs_chk | 0 | wchar_t * | +| (wchar_t *,const char *,size_t,size_t) | | __mbstowcs_chk | 1 | const char * | +| (wchar_t *,const char *,size_t,size_t) | | __mbstowcs_chk | 2 | size_t | +| (wchar_t *,const char *,size_t,size_t) | | __mbstowcs_chk | 3 | size_t | +| (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 0 | wchar_t * | +| (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 1 | const wchar_t * | +| (wchar_t *,const wchar_t *,size_t) | | __wmemcpy | 2 | size_t | +| (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 0 | wchar_t * | +| (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 1 | const wchar_t * | +| (wchar_t *,const wchar_t *,size_t) | | __wmemmove | 2 | size_t | +| (wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsxfrm_l | 0 | wchar_t * | +| (wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsxfrm_l | 1 | const wchar_t * | +| (wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsxfrm_l | 2 | size_t | +| (wchar_t *,const wchar_t *,size_t,locale_t) | | __wcsxfrm_l | 3 | locale_t | +| (wchar_t *,const wchar_t *,size_t,size_t) | | __wmemmove_chk | 0 | wchar_t * | +| (wchar_t *,const wchar_t *,size_t,size_t) | | __wmemmove_chk | 1 | const wchar_t * | +| (wchar_t *,const wchar_t *,size_t,size_t) | | __wmemmove_chk | 2 | size_t | +| (wchar_t *,const wchar_t *,size_t,size_t) | | __wmemmove_chk | 3 | size_t | +| (wchar_t *,size_t,const wchar_t *,va_list) | | __vswprintf | 0 | wchar_t * | +| (wchar_t *,size_t,const wchar_t *,va_list) | | __vswprintf | 1 | size_t | +| (wchar_t *,size_t,const wchar_t *,va_list) | | __vswprintf | 2 | const wchar_t * | +| (wchar_t *,size_t,const wchar_t *,va_list) | | __vswprintf | 3 | va_list | +| (wchar_t *,size_t,const wchar_t *,va_list,unsigned int) | | __vswprintf_internal | 0 | wchar_t * | +| (wchar_t *,size_t,const wchar_t *,va_list,unsigned int) | | __vswprintf_internal | 1 | size_t | +| (wchar_t *,size_t,const wchar_t *,va_list,unsigned int) | | __vswprintf_internal | 2 | const wchar_t * | +| (wchar_t *,size_t,const wchar_t *,va_list,unsigned int) | | __vswprintf_internal | 3 | va_list | +| (wchar_t *,size_t,const wchar_t *,va_list,unsigned int) | | __vswprintf_internal | 4 | unsigned int | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 2 | const char ** | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 3 | const char **__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 5 | __mbstate_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsrtowcs | 6 | mbstate_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 2 | const char ** | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 3 | const char **__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 5 | mbstate_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 6 | mbstate_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsrtowcs_chk | 7 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 2 | const char ** | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 3 | const char **__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 5 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 6 | __mbstate_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbsnrtowcs | 7 | mbstate_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 2 | const char ** | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 3 | const char **__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 5 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 6 | mbstate_t * | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 7 | mbstate_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char **,const char **__restrict__,size_t,size_t,mbstate_t *,mbstate_t *__restrict__,size_t) | | __mbsnrtowcs_chk | 8 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbstowcs | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbstowcs | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbstowcs | 2 | const char * | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbstowcs | 3 | const char *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbstowcs | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbtowc | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbtowc | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbtowc | 2 | const char * | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbtowc | 3 | const char *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t) | | mbtowc | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 2 | const char * | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 3 | const char *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 5 | __mbstate_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const char *,const char *__restrict__,size_t,__mbstate_t *__restrict__,mbstate_t *) | | __mbrtowc | 6 | mbstate_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcpcpy_generic | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcpcpy_generic | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcpcpy_generic | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcpcpy_generic | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscat_generic | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscat_generic | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscat_generic | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscat_generic | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscpy_generic | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscpy_generic | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscpy_generic | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__) | | __wcscpy_generic | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpcpy_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpcpy_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpcpy_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpcpy_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpcpy_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpncpy_generic | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpncpy_generic | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpncpy_generic | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpncpy_generic | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcpncpy_generic | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscat_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscat_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscat_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscat_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscat_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscpy_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscpy_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscpy_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscpy_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcscpy_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncat_generic | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncat_generic | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncat_generic | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncat_generic | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncat_generic | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncpy_generic | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncpy_generic | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncpy_generic | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncpy_generic | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t) | | __wcsncpy_generic | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcat_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcat_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcat_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcat_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcat_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcat_chk | 5 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcpy_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcpy_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcpy_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcpy_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcpy_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcslcpy_chk | 5 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcsncat_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcsncat_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcsncat_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcsncat_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcsncat_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wcsncat_chk | 5 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wmemcpy_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wmemcpy_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wmemcpy_chk | 2 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wmemcpy_chk | 3 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wmemcpy_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,const wchar_t *,const wchar_t *__restrict__,size_t,size_t) | | __wmemcpy_chk | 5 | size_t | +| (wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__) | | fgetws_unlocked | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__) | | fgetws_unlocked | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__) | | fgetws_unlocked | 2 | int | +| (wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__) | | fgetws_unlocked | 3 | FILE * | +| (wchar_t *,wchar_t *__restrict__,int,FILE *,__FILE *__restrict__) | | fgetws_unlocked | 4 | __FILE *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 2 | size_t | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 3 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 4 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 5 | const tm * | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__) | | wcsftime | 6 | const tm *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 2 | size_t | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 3 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 4 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 5 | const tm * | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 6 | const tm *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,const wchar_t *,const wchar_t *__restrict__,const tm *,const tm *__restrict__,locale_t) | | __wcsftime_l | 7 | locale_t | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_chk | 2 | size_t | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_chk | 3 | int | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_chk | 4 | FILE * | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_chk | 5 | __FILE *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_unlocked_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_unlocked_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_unlocked_chk | 2 | size_t | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_unlocked_chk | 3 | int | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_unlocked_chk | 4 | FILE * | +| (wchar_t *,wchar_t *__restrict__,size_t,int,FILE *,__FILE *__restrict__) | | __fgetws_unlocked_chk | 5 | __FILE *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 0 | wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 1 | wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 2 | size_t | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 3 | int | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 4 | size_t | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 5 | const wchar_t * | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 6 | const wchar_t *__restrict__ | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 7 | __gnuc_va_list | +| (wchar_t *,wchar_t *__restrict__,size_t,int,size_t,const wchar_t *,const wchar_t *__restrict__,__gnuc_va_list,va_list) | | __vswprintf_chk | 8 | va_list | +| (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 0 | wchar_t *__restrict__ | +| (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 1 | const wchar_t *__restrict__ | +| (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcat | 2 | size_t | +| (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 0 | wchar_t *__restrict__ | +| (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 1 | const wchar_t *__restrict__ | +| (wchar_t *__restrict__,const wchar_t *__restrict__,size_t) | | __wcslcpy | 2 | size_t | | (wchar_t) | | operator+= | 0 | wchar_t | +| (wchar_t) | | wcwidth | 0 | wchar_t | | (wchar_t) | CComBSTR | Append | 0 | wchar_t | | (wchar_t) | CSimpleStringT | operator+= | 0 | wchar_t | | (wchar_t, const CStringT &) | | operator+ | 0 | wchar_t | | (wchar_t, const CStringT &) | | operator+ | 1 | const CStringT & | +| (wchar_t,FILE *,__FILE *) | | fputwc | 0 | wchar_t | +| (wchar_t,FILE *,__FILE *) | | fputwc | 1 | FILE * | +| (wchar_t,FILE *,__FILE *) | | fputwc | 2 | __FILE * | +| (wchar_t,FILE *,__FILE *) | | fputwc_unlocked | 0 | wchar_t | +| (wchar_t,FILE *,__FILE *) | | fputwc_unlocked | 1 | FILE * | +| (wchar_t,FILE *,__FILE *) | | fputwc_unlocked | 2 | __FILE * | +| (wchar_t,FILE *,__FILE *) | | putwc | 0 | wchar_t | +| (wchar_t,FILE *,__FILE *) | | putwc | 1 | FILE * | +| (wchar_t,FILE *,__FILE *) | | putwc | 2 | __FILE * | +| (wchar_t,FILE *,__FILE *) | | putwc_unlocked | 0 | wchar_t | +| (wchar_t,FILE *,__FILE *) | | putwc_unlocked | 1 | FILE * | +| (wchar_t,FILE *,__FILE *) | | putwc_unlocked | 2 | __FILE * | | (wchar_t,const CStringT &) | | operator+ | 0 | wchar_t | | (wchar_t,const CStringT &) | | operator+ | 1 | const CStringT & | | (wchar_t,int) | CStringT | CStringT | 0 | wchar_t | | (wchar_t,int) | CStringT | CStringT | 1 | int | +| (wint_t) | | __iswalnum | 0 | wint_t | +| (wint_t) | | __iswalpha | 0 | wint_t | +| (wint_t) | | __iswblank | 0 | wint_t | +| (wint_t) | | __iswcntrl | 0 | wint_t | +| (wint_t) | | __iswdigit | 0 | wint_t | +| (wint_t) | | __iswgraph | 0 | wint_t | +| (wint_t) | | __iswlower | 0 | wint_t | +| (wint_t) | | __iswprint | 0 | wint_t | +| (wint_t) | | __iswpunct | 0 | wint_t | +| (wint_t) | | __iswspace | 0 | wint_t | +| (wint_t) | | __iswupper | 0 | wint_t | +| (wint_t) | | __iswxdigit | 0 | wint_t | +| (wint_t) | | __towlower | 0 | wint_t | +| (wint_t) | | __towupper | 0 | wint_t | +| (wint_t) | | wctob | 0 | wint_t | +| (wint_t,FILE *,__FILE *) | | ungetwc | 0 | wint_t | +| (wint_t,FILE *,__FILE *) | | ungetwc | 1 | FILE * | +| (wint_t,FILE *,__FILE *) | | ungetwc | 2 | __FILE * | +| (wint_t,locale_t) | | __iswalnum_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswalnum_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswalpha_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswalpha_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswblank_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswblank_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswcntrl_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswcntrl_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswdigit_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswdigit_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswgraph_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswgraph_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswlower_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswlower_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswprint_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswprint_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswpunct_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswpunct_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswspace_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswspace_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswupper_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswupper_l | 1 | locale_t | +| (wint_t,locale_t) | | __iswxdigit_l | 0 | wint_t | +| (wint_t,locale_t) | | __iswxdigit_l | 1 | locale_t | +| (wint_t,locale_t) | | __towlower_l | 0 | wint_t | +| (wint_t,locale_t) | | __towlower_l | 1 | locale_t | +| (wint_t,locale_t) | | __towupper_l | 0 | wint_t | +| (wint_t,locale_t) | | __towupper_l | 1 | locale_t | +| (wint_t,wctrans_t) | | __towctrans | 0 | wint_t | +| (wint_t,wctrans_t) | | __towctrans | 1 | wctrans_t | +| (wint_t,wctrans_t,locale_t) | | __towctrans_l | 0 | wint_t | +| (wint_t,wctrans_t,locale_t) | | __towctrans_l | 1 | wctrans_t | +| (wint_t,wctrans_t,locale_t) | | __towctrans_l | 2 | locale_t | +| (wint_t,wctype_t) | | __iswctype | 0 | wint_t | +| (wint_t,wctype_t) | | __iswctype | 1 | wctype_t | +| (wint_t,wctype_t,locale_t) | | __iswctype_l | 0 | wint_t | +| (wint_t,wctype_t,locale_t) | | __iswctype_l | 1 | wctype_t | +| (wint_t,wctype_t,locale_t) | | __iswctype_l | 2 | locale_t | | (z_streamp) | | deflateResetKeep | 0 | z_streamp | | (z_streamp) | | inflateCodesUsed | 0 | z_streamp | | (z_streamp) | | inflateMark | 0 | z_streamp | @@ -34962,6 +46931,16 @@ getParameterTypeName | 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 && | | 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 * | @@ -35212,6 +47191,18 @@ getParameterTypeName | taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | 1 | const char ** | | taint.cpp:822:6:822:19 | take_const_ptr | 0 | const char * | | taint.cpp:822:6:822:19 | take_const_ptr | 1 | const char * | +| thread.cpp:4:6:4:9 | sink | 0 | int | +| thread.cpp:6:8:6:8 | operator= | 0 | S && | +| thread.cpp:6:8:6:8 | operator= | 0 | const S & | +| thread.cpp:10:6:10:22 | thread_function_1 | 0 | S * | +| 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:20:30:20 | _FUN | 0 | S * | +| thread.cpp:30:20:30:20 | operator() | 0 | S * | | vector.cpp:13:6:13:9 | sink | 0 | int | | vector.cpp:14:27:14:30 | sink | 0 | vector> & | | vector.cpp:14:27:14:30 | sink | 0 | vector> & | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/thread.cpp b/cpp/ql/test/library-tests/dataflow/taint-tests/thread.cpp new file mode 100644 index 000000000000..5a39669d1c6e --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/thread.cpp @@ -0,0 +1,33 @@ +#include "stl.h" + +int source(); +void sink(int); + +struct S { + int x; +}; + +void thread_function_1(S* s) { + sink(s->x); // $ ir +} + +void thread_function_2(S s) { + sink(s.x); // $ ir +} + +void thread_function_3(S* s, int y) { + sink(s->x); // $ ir + sink(y); // clean +} + +void test_thread() { + S s; + s.x = source(); + std::thread t1(thread_function_1, &s); + std::thread t2(thread_function_2, s); + std::thread t3(thread_function_3, &s, 42); + + std::thread t4([](S* p) { + sink(p->x); // $ ir + }, &s); +} \ No newline at end of file diff --git a/cpp/ql/test/library-tests/includes/includes/locations.expected b/cpp/ql/test/library-tests/includes/includes/locations.expected index 1b6b3b068923..c61055c84413 100644 --- a/cpp/ql/test/library-tests/includes/includes/locations.expected +++ b/cpp/ql/test/library-tests/includes/includes/locations.expected @@ -1,7 +1,5 @@ | bar.h:0:0:0:0 | bar.h:0:0:0:0 | | file://:0:0:0:0 | file://:0:0:0:0 | -| file://:0:0:0:0 | file://:0:0:0:0 | -| file://:0:0:0:0 | file://:0:0:0:0 | | includes.c:0:0:0:0 | includes.c:0:0:0:0 | | includes.c:2:1:2:15 | includes.c:2:1:2:15 | | includes.c:4:1:4:16 | includes.c:4:1:4:16 | diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 53ebaf2114ff..a3ee6b46bd53 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -15134,7 +15134,7 @@ ir.cpp: # 1506| [Constructor] void Inheritance_Test_A::Inheritance_Test_A() # 1506| : # 1506| : -# 1506| getInitializer(0): (no string representation) +# 1506| getInitializer(0): [ConstructorInit] constructor init # 1506| Type = [Struct] Inheritance_Test_B # 1506| ValueCategory = prvalue # 1506| getInitializer(1): [ConstructorFieldInit] constructor init of field x @@ -17205,7 +17205,7 @@ ir.cpp: # 1785| getExpr(): [ReferenceDereferenceExpr] (reference dereference) # 1785| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass # 1785| ValueCategory = lvalue -# 1785| getInitializer(1): (no string representation) +# 1785| getInitializer(1): [ConstructorInit] constructor init # 1785| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass # 1785| ValueCategory = prvalue # 1785| getEntryPoint(): [BlockStmt] { ... } @@ -17254,7 +17254,7 @@ ir.cpp: # 1792| getExpr(): [ReferenceDereferenceExpr] (reference dereference) # 1792| Type = [SpecifiedType] const CopyConstructorTestVirtualClass # 1792| ValueCategory = lvalue -# 1792| getInitializer(1): (no string representation) +# 1792| getInitializer(1): [ConstructorInit] constructor init # 1792| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass # 1792| ValueCategory = prvalue # 1792| getEntryPoint(): [BlockStmt] { ... } @@ -24262,6 +24262,281 @@ ir.cpp: # 2725| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 2725| Type = [PlainCharType] char # 2725| ValueCategory = prvalue(load) +# 2728| [TopLevelFunction] void test_postfix_crement(int*, int) +# 2728| : +# 2728| getParameter(0): [Parameter] p +# 2728| Type = [IntPointerType] int * +# 2728| getParameter(1): [Parameter] q +# 2728| Type = [IntType] int +# 2728| getEntryPoint(): [BlockStmt] { ... } +# 2729| getStmt(0): [ExprStmt] ExprStmt +# 2729| getExpr(): [PostfixIncrExpr] ... ++ +# 2729| Type = [IntPointerType] int * +# 2729| ValueCategory = prvalue +# 2729| getOperand(): [VariableAccess] p +# 2729| Type = [IntPointerType] int * +# 2729| ValueCategory = lvalue +# 2730| getStmt(1): [ExprStmt] ExprStmt +# 2730| getExpr(): [PostfixIncrExpr] ... ++ +# 2730| Type = [IntType] int +# 2730| ValueCategory = prvalue +# 2730| getOperand(): [VariableAccess] q +# 2730| Type = [IntType] int +# 2730| ValueCategory = lvalue +# 2731| getStmt(2): [ExprStmt] ExprStmt +# 2731| getExpr(): [PostfixIncrExpr] ... ++ +# 2731| Type = [IntPointerType] int * +# 2731| ValueCategory = prvalue +# 2731| getOperand(): [VariableAccess] p +# 2731| Type = [IntPointerType] int * +# 2731| ValueCategory = lvalue +# 2731| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2731| Type = [IntPointerType] int * +# 2731| ValueCategory = prvalue +# 2732| getStmt(3): [ExprStmt] ExprStmt +# 2732| getExpr(): [PostfixIncrExpr] ... ++ +# 2732| Type = [IntType] int +# 2732| ValueCategory = prvalue +# 2732| getOperand(): [VariableAccess] q +# 2732| Type = [IntType] int +# 2732| ValueCategory = lvalue +# 2732| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2732| Type = [IntType] int +# 2732| ValueCategory = prvalue +# 2733| getStmt(4): [ExprStmt] ExprStmt +# 2733| getExpr(): [PostfixIncrExpr] ... ++ +# 2733| Type = [IntPointerType] int * +# 2733| ValueCategory = prvalue +# 2733| getOperand(): [VariableAccess] p +# 2733| Type = [IntPointerType] int * +# 2733| ValueCategory = lvalue +# 2733| getExpr().getFullyConverted(): [CStyleCast] (void)... +# 2733| Conversion = [VoidConversion] conversion to void +# 2733| Type = [VoidType] void +# 2733| ValueCategory = prvalue +# 2733| getExpr(): [ParenthesisExpr] (...) +# 2733| Type = [IntPointerType] int * +# 2733| ValueCategory = prvalue +# 2734| getStmt(5): [ExprStmt] ExprStmt +# 2734| getExpr(): [PostfixIncrExpr] ... ++ +# 2734| Type = [IntType] int +# 2734| ValueCategory = prvalue +# 2734| getOperand(): [VariableAccess] q +# 2734| Type = [IntType] int +# 2734| ValueCategory = lvalue +# 2734| getExpr().getFullyConverted(): [CStyleCast] (void)... +# 2734| Conversion = [VoidConversion] conversion to void +# 2734| Type = [VoidType] void +# 2734| ValueCategory = prvalue +# 2734| getExpr(): [ParenthesisExpr] (...) +# 2734| Type = [IntType] int +# 2734| ValueCategory = prvalue +# 2735| getStmt(6): [ExprStmt] ExprStmt +# 2735| getExpr(): [PostfixIncrExpr] ... ++ +# 2735| Type = [IntPointerType] int * +# 2735| ValueCategory = prvalue +# 2735| getOperand(): [VariableAccess] p +# 2735| Type = [IntPointerType] int * +# 2735| ValueCategory = lvalue +# 2735| getExpr().getFullyConverted(): [CStyleCast] (void)... +# 2735| Conversion = [VoidConversion] conversion to void +# 2735| Type = [VoidType] void +# 2735| ValueCategory = prvalue +# 2736| getStmt(7): [ExprStmt] ExprStmt +# 2736| getExpr(): [PostfixIncrExpr] ... ++ +# 2736| Type = [IntType] int +# 2736| ValueCategory = prvalue +# 2736| getOperand(): [VariableAccess] q +# 2736| Type = [IntType] int +# 2736| ValueCategory = lvalue +# 2736| getExpr().getFullyConverted(): [CStyleCast] (void)... +# 2736| Conversion = [VoidConversion] conversion to void +# 2736| Type = [VoidType] void +# 2736| ValueCategory = prvalue +# 2737| getStmt(8): [DeclStmt] declaration +# 2737| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p1 +# 2737| Type = [IntPointerType] int * +# 2737| getVariable().getInitializer(): [Initializer] initializer for p1 +# 2737| getExpr(): [PostfixIncrExpr] ... ++ +# 2737| Type = [IntPointerType] int * +# 2737| ValueCategory = prvalue +# 2737| getOperand(): [VariableAccess] p +# 2737| Type = [IntPointerType] int * +# 2737| ValueCategory = lvalue +# 2738| getStmt(9): [DeclStmt] declaration +# 2738| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q1 +# 2738| Type = [IntType] int +# 2738| getVariable().getInitializer(): [Initializer] initializer for q1 +# 2738| getExpr(): [PostfixIncrExpr] ... ++ +# 2738| Type = [IntType] int +# 2738| ValueCategory = prvalue +# 2738| getOperand(): [VariableAccess] q +# 2738| Type = [IntType] int +# 2738| ValueCategory = lvalue +# 2739| getStmt(10): [ExprStmt] ExprStmt +# 2739| getExpr(): [PostfixIncrExpr] ... ++ +# 2739| Type = [IntPointerType] int * +# 2739| ValueCategory = prvalue +# 2739| getOperand(): [VariableAccess] p +# 2739| Type = [IntPointerType] int * +# 2739| ValueCategory = lvalue +# 2739| getExpr().getFullyConverted(): [CStyleCast] (int *)... +# 2739| Conversion = [PointerConversion] pointer conversion +# 2739| Type = [IntPointerType] int * +# 2739| ValueCategory = prvalue +# 2739| getExpr(): [ParenthesisExpr] (...) +# 2739| Type = [IntPointerType] int * +# 2739| ValueCategory = prvalue +# 2740| getStmt(11): [ExprStmt] ExprStmt +# 2740| getExpr(): [PostfixIncrExpr] ... ++ +# 2740| Type = [IntType] int +# 2740| ValueCategory = prvalue +# 2740| getOperand(): [VariableAccess] q +# 2740| Type = [IntType] int +# 2740| ValueCategory = lvalue +# 2740| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2740| Conversion = [IntegralConversion] integral conversion +# 2740| Type = [IntType] int +# 2740| ValueCategory = prvalue +# 2740| getExpr(): [ParenthesisExpr] (...) +# 2740| Type = [IntType] int +# 2740| ValueCategory = prvalue +# 2741| getStmt(12): [DeclStmt] declaration +# 2741| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p2 +# 2741| Type = [IntPointerType] int * +# 2741| getVariable().getInitializer(): [Initializer] initializer for p2 +# 2741| getExpr(): [PostfixIncrExpr] ... ++ +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = prvalue +# 2741| getOperand(): [VariableAccess] p +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = lvalue +# 2741| getExpr().getFullyConverted(): [CStyleCast] (int *)... +# 2741| Conversion = [PointerConversion] pointer conversion +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = prvalue +# 2741| getExpr(): [ParenthesisExpr] (...) +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = prvalue +# 2742| getStmt(13): [DeclStmt] declaration +# 2742| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q2 +# 2742| Type = [IntType] int +# 2742| getVariable().getInitializer(): [Initializer] initializer for q2 +# 2742| getExpr(): [PostfixIncrExpr] ... ++ +# 2742| Type = [IntType] int +# 2742| ValueCategory = prvalue +# 2742| getOperand(): [VariableAccess] q +# 2742| Type = [IntType] int +# 2742| ValueCategory = lvalue +# 2742| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2742| Conversion = [IntegralConversion] integral conversion +# 2742| Type = [IntType] int +# 2742| ValueCategory = prvalue +# 2742| getExpr(): [ParenthesisExpr] (...) +# 2742| Type = [IntType] int +# 2742| ValueCategory = prvalue +# 2743| getStmt(14): [ReturnStmt] return ... +# 2747| [CopyAssignmentOperator] std::strong_ordering& std::strong_ordering::operator=(std::strong_ordering const&) +# 2747| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const strong_ordering & +# 2747| [MoveAssignmentOperator] std::strong_ordering& std::strong_ordering::operator=(std::strong_ordering&&) +# 2747| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] strong_ordering && +# 2747| [CopyConstructor] void std::strong_ordering::strong_ordering(std::strong_ordering const&) +# 2747| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const strong_ordering & +# 2747| [MoveConstructor] void std::strong_ordering::strong_ordering(std::strong_ordering&&) +# 2747| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] strong_ordering && +# 2747| : +# 2747| getEntryPoint(): [BlockStmt] { ... } +# 2747| getStmt(0): [ReturnStmt] return ... +# 2748| [Constructor] void std::strong_ordering::strong_ordering(std::_Order) +# 2748| : +# 2748| getParameter(0): [Parameter] v +# 2748| Type = [ScopedEnum] _Order +# 2748| : +# 2748| getEntryPoint(): [BlockStmt] { ... } +# 2748| getStmt(0): [ReturnStmt] return ... +# 2763| [CopyAssignmentOperator] ThreeWay& ThreeWay::operator=(ThreeWay const&) +# 2763| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ThreeWay & +# 2763| [MoveAssignmentOperator] ThreeWay& ThreeWay::operator=(ThreeWay&&) +# 2763| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] ThreeWay && +# 2763| [Constructor] void ThreeWay::ThreeWay() +# 2763| : +# 2766| [MemberFunction] std::strong_ordering ThreeWay::operator<=>(ThreeWay&) +# 2766| : +# 2766| getParameter(0): [Parameter] y +# 2766| Type = [LValueReferenceType] ThreeWay & +# 2766| getEntryPoint(): [BlockStmt] { ... } +# 2766| getStmt(0): [ReturnStmt] return ... +# 2766| getExpr(): [SpaceshipExpr] ... <=> ... +# 2766| Type = [Class] strong_ordering +# 2766| ValueCategory = prvalue +# 2766| getChild(0): [PointerFieldAccess] x +# 2766| Type = [IntType] int +# 2766| ValueCategory = prvalue(load) +# 2766| getQualifier(): [ThisExpr] this +# 2766| Type = [PointerType] ThreeWay * +# 2766| ValueCategory = prvalue(load) +# 2766| getChild(1): [ReferenceFieldAccess] x +# 2766| Type = [IntType] int +# 2766| ValueCategory = prvalue(load) +# 2766| getQualifier(): [VariableAccess] y +# 2766| Type = [LValueReferenceType] ThreeWay & +# 2766| ValueCategory = prvalue(load) +# 2766| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2766| Type = [Class] ThreeWay +# 2766| ValueCategory = lvalue +# 2769| [TopLevelFunction] void test_three_way(int, int, ThreeWay, ThreeWay) +# 2769| : +# 2769| getParameter(0): [Parameter] a +# 2769| Type = [IntType] int +# 2769| getParameter(1): [Parameter] b +# 2769| Type = [IntType] int +# 2769| getParameter(2): [Parameter] c +# 2769| Type = [Class] ThreeWay +# 2769| getParameter(3): [Parameter] d +# 2769| Type = [Class] ThreeWay +# 2769| getEntryPoint(): [BlockStmt] { ... } +# 2770| getStmt(0): [DeclStmt] declaration +# 2770| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2770| Type = [Class] strong_ordering +# 2770| getVariable().getInitializer(): [Initializer] initializer for x +# 2770| getExpr(): [SpaceshipExpr] ... <=> ... +# 2770| Type = [Class] strong_ordering +# 2770| ValueCategory = prvalue +# 2770| getChild(0): [VariableAccess] a +# 2770| Type = [IntType] int +# 2770| ValueCategory = prvalue(load) +# 2770| getChild(1): [VariableAccess] b +# 2770| Type = [IntType] int +# 2770| ValueCategory = prvalue(load) +# 2771| getStmt(1): [DeclStmt] declaration +# 2771| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2771| Type = [Class] strong_ordering +# 2771| getVariable().getInitializer(): [Initializer] initializer for y +# 2771| getExpr(): [FunctionCall] call to operator<=> +# 2771| Type = [Class] strong_ordering +# 2771| ValueCategory = prvalue +# 2771| getQualifier(): [VariableAccess] c +# 2771| Type = [Class] ThreeWay +# 2771| ValueCategory = lvalue +# 2771| getArgument(0): [VariableAccess] d +# 2771| Type = [Class] ThreeWay +# 2771| ValueCategory = lvalue +# 2771| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2771| Type = [LValueReferenceType] ThreeWay & +# 2771| ValueCategory = prvalue +# 2772| getStmt(2): [ReturnStmt] return ... ir23.cpp: # 1| [TopLevelFunction] bool consteval_1() # 1| : @@ -50000,3 +50275,42 @@ try_except.cpp: # 52| Type = [IntType] int # 52| ValueCategory = prvalue(load) # 54| getStmt(2): [ReturnStmt] return ... +type_info_test.cpp: +# 3| [TopLevelFunction] void type_info_test(int) +# 3| : +# 3| getParameter(0): [Parameter] x +# 3| Type = [IntType] int +# 3| getEntryPoint(): [BlockStmt] { ... } +# 4| getStmt(0): [DeclStmt] declaration +# 4| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t1 +# 4| Type = [LValueReferenceType] const type_info & +# 4| getVariable().getInitializer(): [Initializer] initializer for t1 +# 4| getExpr(): [TypeidOperator] typeid ... +# 4| Type = [SpecifiedType] const type_info +# 4| ValueCategory = lvalue +# 4| getExpr(): [VariableAccess] x +# 4| Type = [IntType] int +# 4| ValueCategory = lvalue +# 4| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 4| Type = [LValueReferenceType] const type_info & +# 4| ValueCategory = prvalue +# 5| getStmt(1): [DeclStmt] declaration +# 5| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t2 +# 5| Type = [LValueReferenceType] const type_info & +# 5| getVariable().getInitializer(): [Initializer] initializer for t2 +# 5| getExpr(): [TypeidOperator] typeid ... +# 5| Type = [SpecifiedType] const type_info +# 5| ValueCategory = lvalue +# 5| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 5| Type = [LValueReferenceType] const type_info & +# 5| ValueCategory = prvalue +# 6| getStmt(2): [ReturnStmt] return ... +typeinfo: +# 4| [CopyAssignmentOperator] std::type_info& std::type_info::operator=(std::type_info const&) +# 4| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const type_info & +# 4| [MoveAssignmentOperator] std::type_info& std::type_info::operator=(std::type_info&&) +# 4| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] type_info && diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index 575631ab0417..6d58656b55ff 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -20156,6 +20156,236 @@ ir.cpp: # 2724| v2724_12(void) = AliasedUse : ~m2725_8 # 2724| v2724_13(void) = ExitFunction : +# 2728| void test_postfix_crement(int*, int) +# 2728| Block 0 +# 2728| v2728_1(void) = EnterFunction : +# 2728| m2728_2(unknown) = AliasedDefinition : +# 2728| m2728_3(unknown) = InitializeNonLocal : +# 2728| m2728_4(unknown) = Chi : total:m2728_2, partial:m2728_3 +# 2728| r2728_5(glval) = VariableAddress[p] : +# 2728| m2728_6(int *) = InitializeParameter[p] : &:r2728_5 +# 2728| r2728_7(int *) = Load[p] : &:r2728_5, m2728_6 +# 2728| m2728_8(unknown) = InitializeIndirection[p] : &:r2728_7 +# 2728| m2728_9(unknown) = Chi : total:m2728_4, partial:m2728_8 +# 2728| r2728_10(glval) = VariableAddress[q] : +# 2728| m2728_11(int) = InitializeParameter[q] : &:r2728_10 +# 2729| r2729_1(glval) = VariableAddress[p] : +# 2729| r2729_2(int *) = Load[p] : &:r2729_1, m2728_6 +# 2729| r2729_3(int) = Constant[1] : +# 2729| r2729_4(int *) = PointerAdd[4] : r2729_2, r2729_3 +# 2729| m2729_5(int *) = Store[p] : &:r2729_1, r2729_4 +# 2730| r2730_1(glval) = VariableAddress[q] : +# 2730| r2730_2(int) = Load[q] : &:r2730_1, m2728_11 +# 2730| r2730_3(int) = Constant[1] : +# 2730| r2730_4(int) = Add : r2730_2, r2730_3 +# 2730| m2730_5(int) = Store[q] : &:r2730_1, r2730_4 +# 2731| r2731_1(glval) = VariableAddress[p] : +# 2731| r2731_2(int *) = Load[p] : &:r2731_1, m2729_5 +# 2731| r2731_3(int) = Constant[1] : +# 2731| r2731_4(int *) = PointerAdd[4] : r2731_2, r2731_3 +# 2731| m2731_5(int *) = Store[p] : &:r2731_1, r2731_4 +# 2731| r2731_6(int *) = CopyValue : r2731_2 +# 2732| r2732_1(glval) = VariableAddress[q] : +# 2732| r2732_2(int) = Load[q] : &:r2732_1, m2730_5 +# 2732| r2732_3(int) = Constant[1] : +# 2732| r2732_4(int) = Add : r2732_2, r2732_3 +# 2732| m2732_5(int) = Store[q] : &:r2732_1, r2732_4 +# 2732| r2732_6(int) = CopyValue : r2732_2 +# 2733| r2733_1(glval) = VariableAddress[p] : +# 2733| r2733_2(int *) = Load[p] : &:r2733_1, m2731_5 +# 2733| r2733_3(int) = Constant[1] : +# 2733| r2733_4(int *) = PointerAdd[4] : r2733_2, r2733_3 +# 2733| m2733_5(int *) = Store[p] : &:r2733_1, r2733_4 +# 2733| r2733_6(int *) = CopyValue : r2733_2 +# 2733| v2733_7(void) = Convert : r2733_6 +# 2734| r2734_1(glval) = VariableAddress[q] : +# 2734| r2734_2(int) = Load[q] : &:r2734_1, m2732_5 +# 2734| r2734_3(int) = Constant[1] : +# 2734| r2734_4(int) = Add : r2734_2, r2734_3 +# 2734| m2734_5(int) = Store[q] : &:r2734_1, r2734_4 +# 2734| r2734_6(int) = CopyValue : r2734_2 +# 2734| v2734_7(void) = Convert : r2734_6 +# 2735| r2735_1(glval) = VariableAddress[p] : +# 2735| r2735_2(int *) = Load[p] : &:r2735_1, m2733_5 +# 2735| r2735_3(int) = Constant[1] : +# 2735| r2735_4(int *) = PointerAdd[4] : r2735_2, r2735_3 +# 2735| m2735_5(int *) = Store[p] : &:r2735_1, r2735_4 +# 2735| r2735_6(int *) = CopyValue : r2735_2 +# 2735| v2735_7(void) = Convert : r2735_6 +# 2736| r2736_1(glval) = VariableAddress[q] : +# 2736| r2736_2(int) = Load[q] : &:r2736_1, m2734_5 +# 2736| r2736_3(int) = Constant[1] : +# 2736| r2736_4(int) = Add : r2736_2, r2736_3 +# 2736| m2736_5(int) = Store[q] : &:r2736_1, r2736_4 +# 2736| r2736_6(int) = CopyValue : r2736_2 +# 2736| v2736_7(void) = Convert : r2736_6 +# 2737| r2737_1(glval) = VariableAddress[p1] : +# 2737| r2737_2(glval) = VariableAddress[p] : +# 2737| r2737_3(int *) = Load[p] : &:r2737_2, m2735_5 +# 2737| r2737_4(int) = Constant[1] : +# 2737| r2737_5(int *) = PointerAdd[4] : r2737_3, r2737_4 +# 2737| m2737_6(int *) = Store[p] : &:r2737_2, r2737_5 +# 2737| r2737_7(int *) = CopyValue : r2737_3 +# 2737| m2737_8(int *) = Store[p1] : &:r2737_1, r2737_7 +# 2738| r2738_1(glval) = VariableAddress[q1] : +# 2738| r2738_2(glval) = VariableAddress[q] : +# 2738| r2738_3(int) = Load[q] : &:r2738_2, m2736_5 +# 2738| r2738_4(int) = Constant[1] : +# 2738| r2738_5(int) = Add : r2738_3, r2738_4 +# 2738| m2738_6(int) = Store[q] : &:r2738_2, r2738_5 +# 2738| r2738_7(int) = CopyValue : r2738_3 +# 2738| m2738_8(int) = Store[q1] : &:r2738_1, r2738_7 +# 2739| r2739_1(glval) = VariableAddress[p] : +# 2739| r2739_2(int *) = Load[p] : &:r2739_1, m2737_6 +# 2739| r2739_3(int) = Constant[1] : +# 2739| r2739_4(int *) = PointerAdd[4] : r2739_2, r2739_3 +# 2739| m2739_5(int *) = Store[p] : &:r2739_1, r2739_4 +# 2739| r2739_6(int *) = CopyValue : r2739_2 +# 2739| r2739_7(int *) = Convert : r2739_6 +# 2740| r2740_1(glval) = VariableAddress[q] : +# 2740| r2740_2(int) = Load[q] : &:r2740_1, m2738_6 +# 2740| r2740_3(int) = Constant[1] : +# 2740| r2740_4(int) = Add : r2740_2, r2740_3 +# 2740| m2740_5(int) = Store[q] : &:r2740_1, r2740_4 +# 2740| r2740_6(int) = CopyValue : r2740_2 +# 2740| r2740_7(int) = Convert : r2740_6 +# 2741| r2741_1(glval) = VariableAddress[p2] : +# 2741| r2741_2(glval) = VariableAddress[p] : +# 2741| r2741_3(int *) = Load[p] : &:r2741_2, m2739_5 +# 2741| r2741_4(int) = Constant[1] : +# 2741| r2741_5(int *) = PointerAdd[4] : r2741_3, r2741_4 +# 2741| m2741_6(int *) = Store[p] : &:r2741_2, r2741_5 +# 2741| r2741_7(int *) = CopyValue : r2741_3 +# 2741| r2741_8(int *) = Convert : r2741_7 +# 2741| m2741_9(int *) = Store[p2] : &:r2741_1, r2741_8 +# 2742| r2742_1(glval) = VariableAddress[q2] : +# 2742| r2742_2(glval) = VariableAddress[q] : +# 2742| r2742_3(int) = Load[q] : &:r2742_2, m2740_5 +# 2742| r2742_4(int) = Constant[1] : +# 2742| r2742_5(int) = Add : r2742_3, r2742_4 +# 2742| m2742_6(int) = Store[q] : &:r2742_2, r2742_5 +# 2742| r2742_7(int) = CopyValue : r2742_3 +# 2742| r2742_8(int) = Convert : r2742_7 +# 2742| m2742_9(int) = Store[q2] : &:r2742_1, r2742_8 +# 2743| v2743_1(void) = NoOp : +# 2728| v2728_12(void) = ReturnIndirection[p] : &:r2728_7, m2728_8 +# 2728| v2728_13(void) = ReturnVoid : +# 2728| v2728_14(void) = AliasedUse : ~m2728_9 +# 2728| v2728_15(void) = ExitFunction : + +# 2747| void std::strong_ordering::strong_ordering(std::strong_ordering&&) +# 2747| Block 0 +# 2747| v2747_1(void) = EnterFunction : +# 2747| m2747_2(unknown) = AliasedDefinition : +# 2747| m2747_3(unknown) = InitializeNonLocal : +# 2747| m2747_4(unknown) = Chi : total:m2747_2, partial:m2747_3 +# 2747| r2747_5(glval) = VariableAddress[#this] : +# 2747| m2747_6(glval) = InitializeParameter[#this] : &:r2747_5 +# 2747| r2747_7(glval) = Load[#this] : &:r2747_5, m2747_6 +# 2747| m2747_8(strong_ordering) = InitializeIndirection[#this] : &:r2747_7 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(strong_ordering &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(strong_ordering &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 2747| v2747_9(void) = NoOp : +# 2747| v2747_10(void) = ReturnIndirection[#this] : &:r2747_7, m2747_8 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 2747| v2747_11(void) = ReturnVoid : +# 2747| v2747_12(void) = AliasedUse : m2747_3 +# 2747| v2747_13(void) = ExitFunction : + +# 2748| void std::strong_ordering::strong_ordering(std::_Order) +# 2748| Block 0 +# 2748| v2748_1(void) = EnterFunction : +# 2748| m2748_2(unknown) = AliasedDefinition : +# 2748| m2748_3(unknown) = InitializeNonLocal : +# 2748| m2748_4(unknown) = Chi : total:m2748_2, partial:m2748_3 +# 2748| r2748_5(glval) = VariableAddress[#this] : +# 2748| m2748_6(glval) = InitializeParameter[#this] : &:r2748_5 +# 2748| r2748_7(glval) = Load[#this] : &:r2748_5, m2748_6 +# 2748| m2748_8(strong_ordering) = InitializeIndirection[#this] : &:r2748_7 +# 2748| r2748_9(glval<_Order>) = VariableAddress[v] : +# 2748| m2748_10(_Order) = InitializeParameter[v] : &:r2748_9 +# 2748| v2748_11(void) = NoOp : +# 2748| v2748_12(void) = ReturnIndirection[#this] : &:r2748_7, m2748_8 +# 2748| v2748_13(void) = ReturnVoid : +# 2748| v2748_14(void) = AliasedUse : m2748_3 +# 2748| v2748_15(void) = ExitFunction : + +# 2766| std::strong_ordering ThreeWay::operator<=>(ThreeWay&) +# 2766| Block 0 +# 2766| v2766_1(void) = EnterFunction : +# 2766| m2766_2(unknown) = AliasedDefinition : +# 2766| m2766_3(unknown) = InitializeNonLocal : +# 2766| m2766_4(unknown) = Chi : total:m2766_2, partial:m2766_3 +# 2766| r2766_5(glval) = VariableAddress[#this] : +# 2766| m2766_6(glval) = InitializeParameter[#this] : &:r2766_5 +# 2766| r2766_7(glval) = Load[#this] : &:r2766_5, m2766_6 +# 2766| m2766_8(ThreeWay) = InitializeIndirection[#this] : &:r2766_7 +# 2766| r2766_9(glval) = VariableAddress[y] : +# 2766| m2766_10(ThreeWay &) = InitializeParameter[y] : &:r2766_9 +# 2766| r2766_11(ThreeWay &) = Load[y] : &:r2766_9, m2766_10 +# 2766| m2766_12(unknown) = InitializeIndirection[y] : &:r2766_11 +# 2766| r2766_13(glval) = VariableAddress[#return] : +# 2766| r2766_14(glval) = VariableAddress[#this] : +# 2766| r2766_15(ThreeWay *) = Load[#this] : &:r2766_14, m2766_6 +# 2766| r2766_16(glval) = FieldAddress[x] : r2766_15 +# 2766| r2766_17(int) = Load[?] : &:r2766_16, ~m2766_8 +# 2766| r2766_18(glval) = VariableAddress[y] : +# 2766| r2766_19(ThreeWay &) = Load[y] : &:r2766_18, m2766_10 +# 2766| r2766_20(glval) = CopyValue : r2766_19 +# 2766| r2766_21(glval) = FieldAddress[x] : r2766_20 +# 2766| r2766_22(int) = Load[?] : &:r2766_21, ~m2766_12 +# 2766| r2766_23(strong_ordering) = Spaceship : r2766_17, r2766_22 +# 2766| m2766_24(strong_ordering) = Store[#return] : &:r2766_13, r2766_23 +# 2766| v2766_25(void) = ReturnIndirection[#this] : &:r2766_7, m2766_8 +# 2766| v2766_26(void) = ReturnIndirection[y] : &:r2766_11, m2766_12 +# 2766| r2766_27(glval) = VariableAddress[#return] : +# 2766| v2766_28(void) = ReturnValue : &:r2766_27, m2766_24 +# 2766| v2766_29(void) = AliasedUse : m2766_3 +# 2766| v2766_30(void) = ExitFunction : + +# 2769| void test_three_way(int, int, ThreeWay, ThreeWay) +# 2769| Block 0 +# 2769| v2769_1(void) = EnterFunction : +# 2769| m2769_2(unknown) = AliasedDefinition : +# 2769| m2769_3(unknown) = InitializeNonLocal : +# 2769| m2769_4(unknown) = Chi : total:m2769_2, partial:m2769_3 +# 2769| r2769_5(glval) = VariableAddress[a] : +# 2769| m2769_6(int) = InitializeParameter[a] : &:r2769_5 +# 2769| r2769_7(glval) = VariableAddress[b] : +# 2769| m2769_8(int) = InitializeParameter[b] : &:r2769_7 +# 2769| r2769_9(glval) = VariableAddress[c] : +# 2769| m2769_10(ThreeWay) = InitializeParameter[c] : &:r2769_9 +# 2769| r2769_11(glval) = VariableAddress[d] : +# 2769| m2769_12(ThreeWay) = InitializeParameter[d] : &:r2769_11 +# 2770| r2770_1(glval) = VariableAddress[x] : +# 2770| r2770_2(glval) = VariableAddress[a] : +# 2770| r2770_3(int) = Load[a] : &:r2770_2, m2769_6 +# 2770| r2770_4(glval) = VariableAddress[b] : +# 2770| r2770_5(int) = Load[b] : &:r2770_4, m2769_8 +# 2770| r2770_6(strong_ordering) = Spaceship : r2770_3, r2770_5 +# 2770| m2770_7(strong_ordering) = Store[x] : &:r2770_1, r2770_6 +# 2771| r2771_1(glval) = VariableAddress[y] : +# 2771| r2771_2(glval) = VariableAddress[c] : +# 2771| r2771_3(glval) = FunctionAddress[operator<=>] : +# 2771| r2771_4(glval) = VariableAddress[d] : +# 2771| r2771_5(ThreeWay &) = CopyValue : r2771_4 +# 2771| r2771_6(strong_ordering) = Call[operator<=>] : func:r2771_3, this:r2771_2, 0:r2771_5 +# 2771| m2771_7(unknown) = ^CallSideEffect : ~m2769_4 +# 2771| m2771_8(unknown) = Chi : total:m2769_4, partial:m2771_7 +# 2771| v2771_9(void) = ^IndirectReadSideEffect[-1] : &:r2771_2, m2769_10 +# 2771| v2771_10(void) = ^BufferReadSideEffect[0] : &:r2771_5, ~m2769_12 +# 2771| m2771_11(ThreeWay) = ^IndirectMayWriteSideEffect[-1] : &:r2771_2 +# 2771| m2771_12(ThreeWay) = Chi : total:m2769_10, partial:m2771_11 +# 2771| m2771_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r2771_5 +# 2771| m2771_14(ThreeWay) = Chi : total:m2769_12, partial:m2771_13 +# 2771| m2771_15(strong_ordering) = Store[y] : &:r2771_1, r2771_6 +# 2772| v2772_1(void) = NoOp : +# 2769| v2769_13(void) = ReturnVoid : +# 2769| v2769_14(void) = AliasedUse : ~m2771_8 +# 2769| v2769_15(void) = ExitFunction : + ir23.cpp: # 1| bool consteval_1() # 1| Block 0 @@ -39856,3 +40086,27 @@ try_except.cpp: # 44| Block 7 # 44| v44_10(void) = Unreached : + +type_info_test.cpp: +# 3| void type_info_test(int) +# 3| Block 0 +# 3| v3_1(void) = EnterFunction : +# 3| m3_2(unknown) = AliasedDefinition : +# 3| m3_3(unknown) = InitializeNonLocal : +# 3| m3_4(unknown) = Chi : total:m3_2, partial:m3_3 +# 3| r3_5(glval) = VariableAddress[x] : +# 3| m3_6(int) = InitializeParameter[x] : &:r3_5 +# 3| m3_7(unknown) = Chi : total:m3_4, partial:m3_6 +# 4| r4_1(glval) = VariableAddress[t1] : +# 4| r4_2(glval) = VariableAddress[x] : +# 4| r4_3(glval) = TypeidExpr : r4_2 +# 4| r4_4(type_info &) = CopyValue : r4_3 +# 4| m4_5(type_info &) = Store[t1] : &:r4_1, r4_4 +# 5| r5_1(glval) = VariableAddress[t2] : +# 5| r5_2(glval) = TypeidType : +# 5| r5_3(type_info &) = CopyValue : r5_2 +# 5| m5_4(type_info &) = Store[t2] : &:r5_1, r5_3 +# 6| v6_1(void) = NoOp : +# 3| v3_8(void) = ReturnVoid : +# 3| v3_9(void) = AliasedUse : m3_3 +# 3| v3_10(void) = ExitFunction : diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 67db690dc54b..74c41c7e916b 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2725,4 +2725,50 @@ char UseBracketOperator(const WithBracketOperator x, int i) { return x[i]; } +void test_postfix_crement(int *p, int q) { + p++; + q++; + (p++); + (q++); + (void)(p++); + (void)(q++); + (void)p++; + (void)q++; + int *p1 = p++; + int q1 = q++; + (int*)(p++); + (int)(q++); + int *p2 = (int*)(p++); + int q2 = (int)(q++); +} + +namespace std { + enum class _Order : signed char { __less = -1, __equiv = 0, __greater = 1 }; + class strong_ordering { + explicit constexpr strong_ordering(_Order v) {} + + public: + static const strong_ordering less; + static const strong_ordering equal; + static const strong_ordering equivalent; + static const strong_ordering greater; + }; + + inline constexpr strong_ordering strong_ordering::less(_Order::__less); + inline constexpr strong_ordering strong_ordering::equal(_Order::__equiv); + inline constexpr strong_ordering strong_ordering::equivalent(_Order::__equiv); + inline constexpr strong_ordering strong_ordering::greater(_Order::__greater); +} + +class ThreeWay { + int x; +public: + std::strong_ordering operator<=>(ThreeWay &y) { return this->x <=> y.x; } +}; + +void test_three_way(int a, int b, ThreeWay c, ThreeWay d) { + auto x = a <=> b; + auto y = c <=> d; +} + // semmle-extractor-options: -std=c++20 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index e57a3bc11b5e..8cdb5e8c351f 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -18317,6 +18317,227 @@ ir.cpp: # 2724| v2724_10(void) = AliasedUse : ~m? # 2724| v2724_11(void) = ExitFunction : +# 2728| void test_postfix_crement(int*, int) +# 2728| Block 0 +# 2728| v2728_1(void) = EnterFunction : +# 2728| mu2728_2(unknown) = AliasedDefinition : +# 2728| mu2728_3(unknown) = InitializeNonLocal : +# 2728| r2728_4(glval) = VariableAddress[p] : +# 2728| mu2728_5(int *) = InitializeParameter[p] : &:r2728_4 +# 2728| r2728_6(int *) = Load[p] : &:r2728_4, ~m? +# 2728| mu2728_7(unknown) = InitializeIndirection[p] : &:r2728_6 +# 2728| r2728_8(glval) = VariableAddress[q] : +# 2728| mu2728_9(int) = InitializeParameter[q] : &:r2728_8 +# 2729| r2729_1(glval) = VariableAddress[p] : +# 2729| r2729_2(int *) = Load[p] : &:r2729_1, ~m? +# 2729| r2729_3(int) = Constant[1] : +# 2729| r2729_4(int *) = PointerAdd[4] : r2729_2, r2729_3 +# 2729| mu2729_5(int *) = Store[p] : &:r2729_1, r2729_4 +# 2730| r2730_1(glval) = VariableAddress[q] : +# 2730| r2730_2(int) = Load[q] : &:r2730_1, ~m? +# 2730| r2730_3(int) = Constant[1] : +# 2730| r2730_4(int) = Add : r2730_2, r2730_3 +# 2730| mu2730_5(int) = Store[q] : &:r2730_1, r2730_4 +# 2731| r2731_1(glval) = VariableAddress[p] : +# 2731| r2731_2(int *) = Load[p] : &:r2731_1, ~m? +# 2731| r2731_3(int) = Constant[1] : +# 2731| r2731_4(int *) = PointerAdd[4] : r2731_2, r2731_3 +# 2731| mu2731_5(int *) = Store[p] : &:r2731_1, r2731_4 +# 2731| r2731_6(int *) = CopyValue : r2731_2 +# 2732| r2732_1(glval) = VariableAddress[q] : +# 2732| r2732_2(int) = Load[q] : &:r2732_1, ~m? +# 2732| r2732_3(int) = Constant[1] : +# 2732| r2732_4(int) = Add : r2732_2, r2732_3 +# 2732| mu2732_5(int) = Store[q] : &:r2732_1, r2732_4 +# 2732| r2732_6(int) = CopyValue : r2732_2 +# 2733| r2733_1(glval) = VariableAddress[p] : +# 2733| r2733_2(int *) = Load[p] : &:r2733_1, ~m? +# 2733| r2733_3(int) = Constant[1] : +# 2733| r2733_4(int *) = PointerAdd[4] : r2733_2, r2733_3 +# 2733| mu2733_5(int *) = Store[p] : &:r2733_1, r2733_4 +# 2733| r2733_6(int *) = CopyValue : r2733_2 +# 2733| v2733_7(void) = Convert : r2733_6 +# 2734| r2734_1(glval) = VariableAddress[q] : +# 2734| r2734_2(int) = Load[q] : &:r2734_1, ~m? +# 2734| r2734_3(int) = Constant[1] : +# 2734| r2734_4(int) = Add : r2734_2, r2734_3 +# 2734| mu2734_5(int) = Store[q] : &:r2734_1, r2734_4 +# 2734| r2734_6(int) = CopyValue : r2734_2 +# 2734| v2734_7(void) = Convert : r2734_6 +# 2735| r2735_1(glval) = VariableAddress[p] : +# 2735| r2735_2(int *) = Load[p] : &:r2735_1, ~m? +# 2735| r2735_3(int) = Constant[1] : +# 2735| r2735_4(int *) = PointerAdd[4] : r2735_2, r2735_3 +# 2735| mu2735_5(int *) = Store[p] : &:r2735_1, r2735_4 +# 2735| r2735_6(int *) = CopyValue : r2735_2 +# 2735| v2735_7(void) = Convert : r2735_6 +# 2736| r2736_1(glval) = VariableAddress[q] : +# 2736| r2736_2(int) = Load[q] : &:r2736_1, ~m? +# 2736| r2736_3(int) = Constant[1] : +# 2736| r2736_4(int) = Add : r2736_2, r2736_3 +# 2736| mu2736_5(int) = Store[q] : &:r2736_1, r2736_4 +# 2736| r2736_6(int) = CopyValue : r2736_2 +# 2736| v2736_7(void) = Convert : r2736_6 +# 2737| r2737_1(glval) = VariableAddress[p1] : +# 2737| r2737_2(glval) = VariableAddress[p] : +# 2737| r2737_3(int *) = Load[p] : &:r2737_2, ~m? +# 2737| r2737_4(int) = Constant[1] : +# 2737| r2737_5(int *) = PointerAdd[4] : r2737_3, r2737_4 +# 2737| mu2737_6(int *) = Store[p] : &:r2737_2, r2737_5 +# 2737| r2737_7(int *) = CopyValue : r2737_3 +# 2737| mu2737_8(int *) = Store[p1] : &:r2737_1, r2737_7 +# 2738| r2738_1(glval) = VariableAddress[q1] : +# 2738| r2738_2(glval) = VariableAddress[q] : +# 2738| r2738_3(int) = Load[q] : &:r2738_2, ~m? +# 2738| r2738_4(int) = Constant[1] : +# 2738| r2738_5(int) = Add : r2738_3, r2738_4 +# 2738| mu2738_6(int) = Store[q] : &:r2738_2, r2738_5 +# 2738| r2738_7(int) = CopyValue : r2738_3 +# 2738| mu2738_8(int) = Store[q1] : &:r2738_1, r2738_7 +# 2739| r2739_1(glval) = VariableAddress[p] : +# 2739| r2739_2(int *) = Load[p] : &:r2739_1, ~m? +# 2739| r2739_3(int) = Constant[1] : +# 2739| r2739_4(int *) = PointerAdd[4] : r2739_2, r2739_3 +# 2739| mu2739_5(int *) = Store[p] : &:r2739_1, r2739_4 +# 2739| r2739_6(int *) = CopyValue : r2739_2 +# 2739| r2739_7(int *) = Convert : r2739_6 +# 2740| r2740_1(glval) = VariableAddress[q] : +# 2740| r2740_2(int) = Load[q] : &:r2740_1, ~m? +# 2740| r2740_3(int) = Constant[1] : +# 2740| r2740_4(int) = Add : r2740_2, r2740_3 +# 2740| mu2740_5(int) = Store[q] : &:r2740_1, r2740_4 +# 2740| r2740_6(int) = CopyValue : r2740_2 +# 2740| r2740_7(int) = Convert : r2740_6 +# 2741| r2741_1(glval) = VariableAddress[p2] : +# 2741| r2741_2(glval) = VariableAddress[p] : +# 2741| r2741_3(int *) = Load[p] : &:r2741_2, ~m? +# 2741| r2741_4(int) = Constant[1] : +# 2741| r2741_5(int *) = PointerAdd[4] : r2741_3, r2741_4 +# 2741| mu2741_6(int *) = Store[p] : &:r2741_2, r2741_5 +# 2741| r2741_7(int *) = CopyValue : r2741_3 +# 2741| r2741_8(int *) = Convert : r2741_7 +# 2741| mu2741_9(int *) = Store[p2] : &:r2741_1, r2741_8 +# 2742| r2742_1(glval) = VariableAddress[q2] : +# 2742| r2742_2(glval) = VariableAddress[q] : +# 2742| r2742_3(int) = Load[q] : &:r2742_2, ~m? +# 2742| r2742_4(int) = Constant[1] : +# 2742| r2742_5(int) = Add : r2742_3, r2742_4 +# 2742| mu2742_6(int) = Store[q] : &:r2742_2, r2742_5 +# 2742| r2742_7(int) = CopyValue : r2742_3 +# 2742| r2742_8(int) = Convert : r2742_7 +# 2742| mu2742_9(int) = Store[q2] : &:r2742_1, r2742_8 +# 2743| v2743_1(void) = NoOp : +# 2728| v2728_10(void) = ReturnIndirection[p] : &:r2728_6, ~m? +# 2728| v2728_11(void) = ReturnVoid : +# 2728| v2728_12(void) = AliasedUse : ~m? +# 2728| v2728_13(void) = ExitFunction : + +# 2747| void std::strong_ordering::strong_ordering(std::strong_ordering&&) +# 2747| Block 0 +# 2747| v2747_1(void) = EnterFunction : +# 2747| mu2747_2(unknown) = AliasedDefinition : +# 2747| mu2747_3(unknown) = InitializeNonLocal : +# 2747| r2747_4(glval) = VariableAddress[#this] : +# 2747| mu2747_5(glval) = InitializeParameter[#this] : &:r2747_4 +# 2747| r2747_6(glval) = Load[#this] : &:r2747_4, ~m? +# 2747| mu2747_7(strong_ordering) = InitializeIndirection[#this] : &:r2747_6 +#-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : +#-----| mu0_2(strong_ordering &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(strong_ordering &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? +#-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 2747| v2747_8(void) = NoOp : +# 2747| v2747_9(void) = ReturnIndirection[#this] : &:r2747_6, ~m? +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? +# 2747| v2747_10(void) = ReturnVoid : +# 2747| v2747_11(void) = AliasedUse : ~m? +# 2747| v2747_12(void) = ExitFunction : + +# 2748| void std::strong_ordering::strong_ordering(std::_Order) +# 2748| Block 0 +# 2748| v2748_1(void) = EnterFunction : +# 2748| mu2748_2(unknown) = AliasedDefinition : +# 2748| mu2748_3(unknown) = InitializeNonLocal : +# 2748| r2748_4(glval) = VariableAddress[#this] : +# 2748| mu2748_5(glval) = InitializeParameter[#this] : &:r2748_4 +# 2748| r2748_6(glval) = Load[#this] : &:r2748_4, ~m? +# 2748| mu2748_7(strong_ordering) = InitializeIndirection[#this] : &:r2748_6 +# 2748| r2748_8(glval<_Order>) = VariableAddress[v] : +# 2748| mu2748_9(_Order) = InitializeParameter[v] : &:r2748_8 +# 2748| v2748_10(void) = NoOp : +# 2748| v2748_11(void) = ReturnIndirection[#this] : &:r2748_6, ~m? +# 2748| v2748_12(void) = ReturnVoid : +# 2748| v2748_13(void) = AliasedUse : ~m? +# 2748| v2748_14(void) = ExitFunction : + +# 2766| std::strong_ordering ThreeWay::operator<=>(ThreeWay&) +# 2766| Block 0 +# 2766| v2766_1(void) = EnterFunction : +# 2766| mu2766_2(unknown) = AliasedDefinition : +# 2766| mu2766_3(unknown) = InitializeNonLocal : +# 2766| r2766_4(glval) = VariableAddress[#this] : +# 2766| mu2766_5(glval) = InitializeParameter[#this] : &:r2766_4 +# 2766| r2766_6(glval) = Load[#this] : &:r2766_4, ~m? +# 2766| mu2766_7(ThreeWay) = InitializeIndirection[#this] : &:r2766_6 +# 2766| r2766_8(glval) = VariableAddress[y] : +# 2766| mu2766_9(ThreeWay &) = InitializeParameter[y] : &:r2766_8 +# 2766| r2766_10(ThreeWay &) = Load[y] : &:r2766_8, ~m? +# 2766| mu2766_11(unknown) = InitializeIndirection[y] : &:r2766_10 +# 2766| r2766_12(glval) = VariableAddress[#return] : +# 2766| r2766_13(glval) = VariableAddress[#this] : +# 2766| r2766_14(ThreeWay *) = Load[#this] : &:r2766_13, ~m? +# 2766| r2766_15(glval) = FieldAddress[x] : r2766_14 +# 2766| r2766_16(int) = Load[?] : &:r2766_15, ~m? +# 2766| r2766_17(glval) = VariableAddress[y] : +# 2766| r2766_18(ThreeWay &) = Load[y] : &:r2766_17, ~m? +# 2766| r2766_19(glval) = CopyValue : r2766_18 +# 2766| r2766_20(glval) = FieldAddress[x] : r2766_19 +# 2766| r2766_21(int) = Load[?] : &:r2766_20, ~m? +# 2766| r2766_22(strong_ordering) = Spaceship : r2766_16, r2766_21 +# 2766| mu2766_23(strong_ordering) = Store[#return] : &:r2766_12, r2766_22 +# 2766| v2766_24(void) = ReturnIndirection[#this] : &:r2766_6, ~m? +# 2766| v2766_25(void) = ReturnIndirection[y] : &:r2766_10, ~m? +# 2766| r2766_26(glval) = VariableAddress[#return] : +# 2766| v2766_27(void) = ReturnValue : &:r2766_26, ~m? +# 2766| v2766_28(void) = AliasedUse : ~m? +# 2766| v2766_29(void) = ExitFunction : + +# 2769| void test_three_way(int, int, ThreeWay, ThreeWay) +# 2769| Block 0 +# 2769| v2769_1(void) = EnterFunction : +# 2769| mu2769_2(unknown) = AliasedDefinition : +# 2769| mu2769_3(unknown) = InitializeNonLocal : +# 2769| r2769_4(glval) = VariableAddress[a] : +# 2769| mu2769_5(int) = InitializeParameter[a] : &:r2769_4 +# 2769| r2769_6(glval) = VariableAddress[b] : +# 2769| mu2769_7(int) = InitializeParameter[b] : &:r2769_6 +# 2769| r2769_8(glval) = VariableAddress[c] : +# 2769| mu2769_9(ThreeWay) = InitializeParameter[c] : &:r2769_8 +# 2769| r2769_10(glval) = VariableAddress[d] : +# 2769| mu2769_11(ThreeWay) = InitializeParameter[d] : &:r2769_10 +# 2770| r2770_1(glval) = VariableAddress[x] : +# 2770| r2770_2(glval) = VariableAddress[a] : +# 2770| r2770_3(int) = Load[a] : &:r2770_2, ~m? +# 2770| r2770_4(glval) = VariableAddress[b] : +# 2770| r2770_5(int) = Load[b] : &:r2770_4, ~m? +# 2770| r2770_6(strong_ordering) = Spaceship : r2770_3, r2770_5 +# 2770| mu2770_7(strong_ordering) = Store[x] : &:r2770_1, r2770_6 +# 2771| r2771_1(glval) = VariableAddress[y] : +# 2771| r2771_2(glval) = VariableAddress[c] : +# 2771| r2771_3(glval) = FunctionAddress[operator<=>] : +# 2771| r2771_4(glval) = VariableAddress[d] : +# 2771| r2771_5(ThreeWay &) = CopyValue : r2771_4 +# 2771| r2771_6(strong_ordering) = Call[operator<=>] : func:r2771_3, this:r2771_2, 0:r2771_5 +# 2771| mu2771_7(unknown) = ^CallSideEffect : ~m? +# 2771| v2771_8(void) = ^IndirectReadSideEffect[-1] : &:r2771_2, ~m? +# 2771| v2771_9(void) = ^BufferReadSideEffect[0] : &:r2771_5, ~m? +# 2771| mu2771_10(ThreeWay) = ^IndirectMayWriteSideEffect[-1] : &:r2771_2 +# 2771| mu2771_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r2771_5 +# 2771| mu2771_12(strong_ordering) = Store[y] : &:r2771_1, r2771_6 +# 2772| v2772_1(void) = NoOp : +# 2769| v2769_12(void) = ReturnVoid : +# 2769| v2769_13(void) = AliasedUse : ~m? +# 2769| v2769_14(void) = ExitFunction : + ir23.cpp: # 1| bool consteval_1() # 1| Block 0 @@ -37987,3 +38208,25 @@ try_except.cpp: # 54| v54_1(void) = NoOp : # 44| v44_9(void) = ReturnVoid : #-----| Goto -> Block 1 + +type_info_test.cpp: +# 3| void type_info_test(int) +# 3| Block 0 +# 3| v3_1(void) = EnterFunction : +# 3| mu3_2(unknown) = AliasedDefinition : +# 3| mu3_3(unknown) = InitializeNonLocal : +# 3| r3_4(glval) = VariableAddress[x] : +# 3| mu3_5(int) = InitializeParameter[x] : &:r3_4 +# 4| r4_1(glval) = VariableAddress[t1] : +# 4| r4_2(glval) = VariableAddress[x] : +# 4| r4_3(glval) = TypeidExpr : r4_2 +# 4| r4_4(type_info &) = CopyValue : r4_3 +# 4| mu4_5(type_info &) = Store[t1] : &:r4_1, r4_4 +# 5| r5_1(glval) = VariableAddress[t2] : +# 5| r5_2(glval) = TypeidType : +# 5| r5_3(type_info &) = CopyValue : r5_2 +# 5| mu5_4(type_info &) = Store[t2] : &:r5_1, r5_3 +# 6| v6_1(void) = NoOp : +# 3| v3_6(void) = ReturnVoid : +# 3| v3_7(void) = AliasedUse : ~m? +# 3| v3_8(void) = ExitFunction : diff --git a/cpp/ql/test/library-tests/ir/ir/type_info_test.cpp b/cpp/ql/test/library-tests/ir/ir/type_info_test.cpp new file mode 100644 index 000000000000..b35870aa4091 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/type_info_test.cpp @@ -0,0 +1,8 @@ +#include + +void type_info_test(int x) { + const std::type_info &t1 = typeid(x); + const std::type_info &t2 = typeid(int); +} + +// semmle-extractor-options: -I. diff --git a/cpp/ql/test/library-tests/ir/ir/typeinfo b/cpp/ql/test/library-tests/ir/ir/typeinfo new file mode 100644 index 000000000000..5b14e219f47e --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/typeinfo @@ -0,0 +1,5 @@ +#pragma once + +namespace std{ + class type_info {}; +} diff --git a/cpp/ql/test/library-tests/macros/inmacroexpansion/inmacroexpansion.expected b/cpp/ql/test/library-tests/macros/inmacroexpansion/inmacroexpansion.expected index f8eff955d47c..4e477a101a90 100644 --- a/cpp/ql/test/library-tests/macros/inmacroexpansion/inmacroexpansion.expected +++ b/cpp/ql/test/library-tests/macros/inmacroexpansion/inmacroexpansion.expected @@ -14,14 +14,14 @@ | test.cpp:4:1:4:1 | operator= | false | | test.cpp:4:1:4:1 | operator= | false | | test.cpp:4:1:4:10 | CLASS_DECL | false | -| test.cpp:4:1:4:10 | S | false | +| test.cpp:4:1:4:10 | S | true | | test.cpp:4:1:4:10 | declaration | true | | test.cpp:4:1:4:10 | definition of S | true | | test.cpp:4:1:4:10 | definition of f | true | | test.cpp:4:1:4:10 | definition of i | true | | test.cpp:4:1:4:10 | definition of j | true | -| test.cpp:4:1:4:10 | f | false | -| test.cpp:4:1:4:10 | i | false | +| test.cpp:4:1:4:10 | f | true | +| test.cpp:4:1:4:10 | i | true | | test.cpp:4:1:4:10 | j | true | | test.cpp:4:1:4:10 | return ... | true | | test.cpp:4:1:4:10 | { ... } | true | @@ -30,7 +30,7 @@ | test.cpp:8:1:8:13 | declaration | true | | test.cpp:8:1:8:13 | definition of f1 | true | | test.cpp:8:1:8:13 | definition of k | true | -| test.cpp:8:1:8:13 | f1 | false | +| test.cpp:8:1:8:13 | f1 | true | | test.cpp:8:1:8:13 | k | true | | test.cpp:8:1:8:13 | return ... | true | | test.cpp:8:1:8:13 | { ... } | true | @@ -68,18 +68,18 @@ | test.cpp:38:1:38:13 | 1 | true | | test.cpp:38:1:38:13 | ... == ... | true | | test.cpp:38:1:38:13 | STATIC_ASSERT | false | -| test.cpp:38:1:38:13 | static_assert(..., "") | false | +| test.cpp:38:1:38:13 | static_assert(..., "") | true | | test.cpp:40:1:40:42 | #define ATTRIBUTE [[nodiscard("reason1")]] | false | | test.cpp:42:1:42:9 | ATTRIBUTE | false | -| test.cpp:42:1:42:9 | nodiscard | false | -| test.cpp:42:1:42:9 | reason1 | false | +| test.cpp:42:1:42:9 | nodiscard | true | +| test.cpp:42:1:42:9 | reason1 | true | | test.cpp:42:1:42:9 | reason1 | true | | test.cpp:43:5:43:6 | declaration of f2 | false | | test.cpp:43:5:43:6 | f2 | false | | test.cpp:45:1:45:31 | #define ATTRIBUTE_ARG "reason2" | false | | test.cpp:47:3:47:11 | nodiscard | false | | test.cpp:47:13:47:25 | ATTRIBUTE_ARG | false | -| test.cpp:47:13:47:25 | reason2 | false | +| test.cpp:47:13:47:25 | reason2 | true | | test.cpp:47:13:47:25 | reason2 | true | | test.cpp:48:5:48:6 | declaration of f3 | false | | test.cpp:48:5:48:6 | f3 | false | diff --git a/cpp/ql/test/library-tests/ptr_to_member/segfault/exprs.expected b/cpp/ql/test/library-tests/ptr_to_member/segfault/exprs.expected index d808cf89139c..46cdbc64c6ef 100644 --- a/cpp/ql/test/library-tests/ptr_to_member/segfault/exprs.expected +++ b/cpp/ql/test/library-tests/ptr_to_member/segfault/exprs.expected @@ -4,6 +4,7 @@ | file://:0:0:0:0 | uls | file://:0:0:0:0 | unsigned long | | segfault.cpp:25:46:25:65 | call to S | file://:0:0:0:0 | void | | segfault.cpp:25:46:25:65 | call to S | file://:0:0:0:0 | void | +| segfault.cpp:25:46:25:65 | constructor init | segfault.cpp:22:8:22:8 | S | | segfault.cpp:25:48:25:55 | __second | segfault.cpp:15:7:15:11 | tuple | | segfault.cpp:25:48:25:55 | __second | segfault.cpp:15:7:15:11 | tuple | | segfault.cpp:25:48:25:55 | __second | segfault.cpp:15:7:15:11 | tuple | diff --git a/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected b/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected index 672fae72e062..eba49fd1c6d6 100644 --- a/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected +++ b/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected @@ -1,3 +1,5 @@ | file://:0:0:0:0 | operator= | file://:0:0:0:0 | __va_list_tag && | | file://:0:0:0:0 | operator= | file://:0:0:0:0 | const __va_list_tag & | +| test.cpp:2:6:2:6 | foo | file://:0:0:0:0 | float | +| test.cpp:2:6:2:6 | foo | file://:0:0:0:0 | int | | test.cpp:2:6:2:8 | foo | test.cpp:1:19:1:19 | T | diff --git a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected index e1c7f956c7b6..7a7b1761e987 100644 --- a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected +++ b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected @@ -10,3 +10,4 @@ | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | ClassTemplateInstantiation | file://:0:0:0:0 | int | | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | ClassTemplateInstantiation | file://:0:0:0:0 | long | | load.cpp:13:7:13:27 | basic_text_iprimitive | ClassTemplateInstantiation | load.cpp:3:7:3:24 | std_istream_mockup | +| load.cpp:22:10:22:10 | load | FunctionTemplateInstantiation | file://:0:0:0:0 | short | diff --git a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected index cb35f7a6dd09..316b5273cdce 100644 --- a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected +++ b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected @@ -104,6 +104,15 @@ | isfromtemplateinstantiation.cpp:99:1:99:1 | return ... | isfromtemplateinstantiation.cpp:77:26:77:45 | AnotherTemplateClass | | isfromtemplateinstantiation.cpp:99:1:99:1 | return ... | isfromtemplateinstantiation.cpp:97:52:97:52 | AnotherTemplateClass::myMethod2(MyClassEnum) | | isfromtemplateinstantiation.cpp:110:3:110:3 | definition of var_template | isfromtemplateinstantiation.cpp:110:3:110:3 | var_template | +| isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | | isfromtemplateinstantiation.cpp:135:31:135:35 | declaration of Inner | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | | isfromtemplateinstantiation.cpp:136:7:136:7 | definition of x | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | @@ -112,7 +121,94 @@ | isfromtemplateinstantiation.cpp:137:7:137:7 | y | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | | load.cpp:15:14:15:15 | definition of is | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:15:14:15:15 | is | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:5:18:5 | definition of basic_text_iprimitive | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:5:18:5 | definition of basic_text_iprimitive | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:18:36:18:42 | definition of isParam | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:36:18:42 | definition of isParam | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:18:36:18:42 | std_istream_mockup & isParam | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:36:18:42 | std_istream_mockup & isParam | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:11:19:21 | constructor init of field is | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:11:19:21 | constructor init of field is | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:14:19:20 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:14:19:20 | (reference dereference) | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:14:19:20 | (reference to) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:14:19:20 | (reference to) | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:14:19:20 | isParam | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:14:19:20 | isParam | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:23:19:24 | { ... } | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:23:19:24 | { ... } | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:24:19:24 | return ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:24:19:24 | return ... | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:10:22:10 | definition of load | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:10:22:10 | definition of load | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | | load.cpp:22:10:22:13 | basic_text_iprimitive::load(T &) | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:22:10:22:13 | declaration of load | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:22:19:22:19 | T & t | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:22:19:22:19 | declaration of t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:19:22:19 | definition of t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:19:22:19 | definition of t | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:22:19:22:19 | short & t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:19:22:19 | short & t | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:23:5:25:5 | { ... } | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:23:5:25:5 | { ... } | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:10 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:10 | (reference dereference) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:10 | is | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:10 | is | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:10 | this | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:10 | this | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:16 | ExprStmt | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:16 | ExprStmt | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:12:24:12 | call to operator>> | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:12:24:12 | call to operator>> | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:12:24:16 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:12:24:16 | (reference dereference) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:15:24:15 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:15:24:15 | (reference dereference) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:15:24:15 | (reference to) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:15:24:15 | (reference to) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:15:24:15 | t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:15:24:15 | t | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:25:5:25:5 | return ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:25:5:25:5 | return ... | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:10:27:10 | definition of load | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:10:27:10 | definition of load | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:27:22:27:22 | char & t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:22:27:22 | char & t | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:27:22:27:22 | definition of t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:22:27:22 | definition of t | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:28:5:32:5 | { ... } | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:28:5:32:5 | { ... } | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:29:9:29:20 | declaration | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:29:9:29:20 | declaration | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:29:19:29:19 | definition of i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:29:19:29:19 | definition of i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:29:19:29:19 | i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:29:19:29:19 | i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:9:30:12 | call to load | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:9:30:12 | call to load | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:9:30:12 | this | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:9:30:12 | this | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:9:30:16 | ExprStmt | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:9:30:16 | ExprStmt | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:14:30:14 | (reference to) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:14:30:14 | (reference to) | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:14:30:14 | i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:14:30:14 | i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:9 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:9 | (reference dereference) | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:9 | t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:9 | t | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:13 | ... = ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:13 | ... = ... | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:14 | ExprStmt | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:14 | ExprStmt | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:13:31:13 | (char)... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:13:31:13 | (char)... | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:13:31:13 | i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:13:31:13 | i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:32:5:32:5 | return ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:32:5:32:5 | return ... | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | diff --git a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected index 8a78058a7230..ce20dedcfca2 100644 --- a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected +++ b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected @@ -425,7 +425,16 @@ isFromUninstantiatedTemplate | isfromtemplateinstantiation.cpp:123:6:123:6 | f | | | Declaration | | | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | | T | Declaration | | | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | I | | Declaration | | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | | T | Definition | | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | I | | Definition | | | isfromtemplateinstantiation.cpp:129:6:129:6 | f | | T | Declaration | | +| isfromtemplateinstantiation.cpp:129:6:129:6 | f | I | | Declaration | | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | | T | Stmt | | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | I | | Stmt | | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | | T | Stmt | | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | I | | Stmt | | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | | T | Expr | | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | I | | Expr | | | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | | T | Declaration | | | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | I | | Declaration | | | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | | T | Declaration | | @@ -461,21 +470,82 @@ isFromUninstantiatedTemplate | load.cpp:15:14:15:15 | definition of is | I | | Definition | | | load.cpp:15:14:15:15 | is | | T | Declaration | | | load.cpp:15:14:15:15 | is | I | | Declaration | | +| load.cpp:18:5:18:5 | basic_text_iprimitive | I | | Declaration | | | load.cpp:18:5:18:25 | basic_text_iprimitive | | T | Declaration | | +| load.cpp:18:36:18:42 | definition of isParam | | T | Definition | | +| load.cpp:18:36:18:42 | definition of isParam | I | | Definition | | +| load.cpp:18:36:18:42 | isParam | | T | Declaration | | +| load.cpp:18:36:18:42 | isParam | I | | Declaration | | +| load.cpp:19:11:19:21 | constructor init of field is | | T | Expr | | +| load.cpp:19:11:19:21 | constructor init of field is | I | | Expr | | | load.cpp:19:14:19:20 | (reference dereference) | | T | Expr | | +| load.cpp:19:14:19:20 | (reference dereference) | I | | Expr | | | load.cpp:19:14:19:20 | (reference to) | | T | Expr | | +| load.cpp:19:14:19:20 | (reference to) | I | | Expr | | | load.cpp:19:14:19:20 | isParam | | T | Expr | Ref | +| load.cpp:19:14:19:20 | isParam | I | | Expr | Ref | +| load.cpp:19:23:19:24 | { ... } | | T | Stmt | | +| load.cpp:19:23:19:24 | { ... } | I | | Stmt | | +| load.cpp:19:24:19:24 | return ... | | T | Stmt | | +| load.cpp:19:24:19:24 | return ... | I | | Stmt | | +| load.cpp:22:10:22:10 | load | I | | Declaration | | | load.cpp:22:10:22:13 | load | | T | Declaration | | | load.cpp:22:10:22:13 | load | I | T | Declaration | | +| load.cpp:22:19:22:19 | definition of t | | T | Definition | | +| load.cpp:22:19:22:19 | definition of t | I | | Definition | | | load.cpp:22:19:22:19 | t | | T | Declaration | | +| load.cpp:22:19:22:19 | t | I | | Declaration | | | load.cpp:22:19:22:19 | t | I | T | Declaration | | +| load.cpp:23:5:25:5 | { ... } | | T | Stmt | | +| load.cpp:23:5:25:5 | { ... } | I | | Stmt | | | load.cpp:24:9:24:10 | (reference dereference) | | T | Expr | | +| load.cpp:24:9:24:10 | (reference dereference) | I | | Expr | | | load.cpp:24:9:24:10 | is | | T | Expr | Not ref | +| load.cpp:24:9:24:10 | is | I | | Expr | Not ref | | load.cpp:24:9:24:10 | this | | T | Expr | | +| load.cpp:24:9:24:10 | this | I | | Expr | | +| load.cpp:24:9:24:16 | ExprStmt | | T | Stmt | | +| load.cpp:24:9:24:16 | ExprStmt | I | | Stmt | | | load.cpp:24:15:24:15 | (reference dereference) | | T | Expr | | +| load.cpp:24:15:24:15 | (reference dereference) | I | | Expr | | +| load.cpp:24:15:24:15 | (reference to) | I | | Expr | | | load.cpp:24:15:24:15 | t | | T | Expr | Not ref | +| load.cpp:24:15:24:15 | t | I | | Expr | Ref | +| load.cpp:25:5:25:5 | return ... | | T | Stmt | | +| load.cpp:25:5:25:5 | return ... | I | | Stmt | | +| load.cpp:27:10:27:10 | load | I | | Declaration | | | load.cpp:27:10:27:13 | load | | T | Declaration | | +| load.cpp:27:22:27:22 | definition of t | | T | Definition | | +| load.cpp:27:22:27:22 | definition of t | I | | Definition | | +| load.cpp:27:22:27:22 | t | | T | Declaration | | +| load.cpp:27:22:27:22 | t | I | | Declaration | | +| load.cpp:28:5:32:5 | { ... } | | T | Stmt | | +| load.cpp:28:5:32:5 | { ... } | I | | Stmt | | +| load.cpp:29:9:29:20 | declaration | | T | Stmt | | +| load.cpp:29:9:29:20 | declaration | I | | Stmt | | +| load.cpp:29:19:29:19 | definition of i | | T | Definition | | +| load.cpp:29:19:29:19 | definition of i | I | | Definition | | +| load.cpp:29:19:29:19 | i | | T | Declaration | | +| load.cpp:29:19:29:19 | i | I | | Declaration | | +| load.cpp:30:9:30:12 | Unknown literal | | T | Expr | | +| load.cpp:30:9:30:12 | call to load | I | | Expr | | +| load.cpp:30:9:30:12 | this | I | | Expr | | +| load.cpp:30:9:30:16 | ExprStmt | | T | Stmt | | +| load.cpp:30:9:30:16 | ExprStmt | I | | Stmt | | +| load.cpp:30:14:30:14 | (reference to) | I | | Expr | | +| load.cpp:30:14:30:14 | i | | T | Expr | Not ref | +| load.cpp:30:14:30:14 | i | I | | Expr | Ref | | load.cpp:31:9:31:9 | (reference dereference) | | T | Expr | | +| load.cpp:31:9:31:9 | (reference dereference) | I | | Expr | | | load.cpp:31:9:31:9 | t | | T | Expr | Not ref | +| load.cpp:31:9:31:9 | t | I | | Expr | Not ref | +| load.cpp:31:9:31:13 | ... = ... | | T | Expr | | +| load.cpp:31:9:31:13 | ... = ... | I | | Expr | | +| load.cpp:31:9:31:14 | ExprStmt | | T | Stmt | | +| load.cpp:31:9:31:14 | ExprStmt | I | | Stmt | | | load.cpp:31:13:31:13 | (char)... | | T | Expr | | +| load.cpp:31:13:31:13 | (char)... | I | | Expr | | | load.cpp:31:13:31:13 | i | | T | Expr | Not ref | +| load.cpp:31:13:31:13 | i | I | | Expr | Not ref | +| load.cpp:32:5:32:5 | return ... | | T | Stmt | | +| load.cpp:32:5:32:5 | return ... | I | | Stmt | | diff --git a/cpp/ql/test/library-tests/templates/switch/test.expected b/cpp/ql/test/library-tests/templates/switch/test.expected index 1ba49e1caf9d..b4124494ffeb 100644 --- a/cpp/ql/test/library-tests/templates/switch/test.expected +++ b/cpp/ql/test/library-tests/templates/switch/test.expected @@ -1 +1,2 @@ | test.cpp:13:3:20:3 | switch (...) ... | 3 | +| test.cpp:13:3:20:3 | switch (...) ... | 3 | diff --git a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected index 548f5f101892..e6c8b1d9406b 100644 --- a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected +++ b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected @@ -5,10 +5,13 @@ | file://:0:0:0:0 | _Complex _Float64 | | file://:0:0:0:0 | _Complex _Float64x | | file://:0:0:0:0 | _Complex _Float128 | +| file://:0:0:0:0 | _Complex __bf16 | | file://:0:0:0:0 | _Complex __float128 | +| file://:0:0:0:0 | _Complex __fp16 | | file://:0:0:0:0 | _Complex double | | file://:0:0:0:0 | _Complex float | | file://:0:0:0:0 | _Complex long double | +| file://:0:0:0:0 | _Complex std::float16_t | | file://:0:0:0:0 | _Decimal32 | | file://:0:0:0:0 | _Decimal64 | | file://:0:0:0:0 | _Decimal128 | diff --git a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected index c77aadc8f4f6..ac1344753e9c 100644 --- a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected +++ b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected @@ -25,10 +25,13 @@ | file://:0:0:0:0 | _Complex _Float64 | 16 | | file://:0:0:0:0 | _Complex _Float64x | 32 | | file://:0:0:0:0 | _Complex _Float128 | 32 | +| file://:0:0:0:0 | _Complex __bf16 | 4 | | file://:0:0:0:0 | _Complex __float128 | 32 | +| file://:0:0:0:0 | _Complex __fp16 | 4 | | file://:0:0:0:0 | _Complex double | 16 | | file://:0:0:0:0 | _Complex float | 8 | | file://:0:0:0:0 | _Complex long double | 32 | +| file://:0:0:0:0 | _Complex std::float16_t | 4 | | file://:0:0:0:0 | _Decimal32 | 4 | | file://:0:0:0:0 | _Decimal64 | 8 | | file://:0:0:0:0 | _Decimal128 | 16 | diff --git a/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected b/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected index 94185a66899d..3f22b9f98f52 100644 --- a/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected +++ b/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected @@ -7,10 +7,13 @@ | file://:0:0:0:0 | _Complex _Float64 | _Complex _Float64 | | file://:0:0:0:0 | _Complex _Float64x | _Complex _Float64x | | file://:0:0:0:0 | _Complex _Float128 | _Complex _Float128 | +| file://:0:0:0:0 | _Complex __bf16 | _Complex __bf16 | | file://:0:0:0:0 | _Complex __float128 | _Complex __float128 | +| file://:0:0:0:0 | _Complex __fp16 | _Complex __fp16 | | file://:0:0:0:0 | _Complex double | _Complex double | | file://:0:0:0:0 | _Complex float | _Complex float | | file://:0:0:0:0 | _Complex long double | _Complex long double | +| file://:0:0:0:0 | _Complex std::float16_t | _Complex std::float16_t | | file://:0:0:0:0 | _Decimal32 | _Decimal32 | | file://:0:0:0:0 | _Decimal64 | _Decimal64 | | file://:0:0:0:0 | _Decimal128 | _Decimal128 | diff --git a/cpp/ql/test/library-tests/variables/variables/types.expected b/cpp/ql/test/library-tests/variables/variables/types.expected index 362ab5c64334..c2ea5f7cfe3c 100644 --- a/cpp/ql/test/library-tests/variables/variables/types.expected +++ b/cpp/ql/test/library-tests/variables/variables/types.expected @@ -6,10 +6,13 @@ | _Complex _Float64 | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex _Float64x | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex _Float128 | BinaryFloatingPointType, ComplexNumberType | | | | | +| _Complex __bf16 | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex __float128 | BinaryFloatingPointType, ComplexNumberType | | | | | +| _Complex __fp16 | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex double | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex float | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex long double | BinaryFloatingPointType, ComplexNumberType | | | | | +| _Complex std::float16_t | BinaryFloatingPointType, ComplexNumberType | | | | | | _Decimal32 | Decimal32Type | | | | | | _Decimal64 | Decimal64Type | | | | | | _Decimal128 | Decimal128Type | | | | | diff --git a/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/GlobalUseBeforeInit.expected b/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/GlobalUseBeforeInit.expected index c7c2d1ffad49..8298707a6b0a 100644 --- a/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/GlobalUseBeforeInit.expected +++ b/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/GlobalUseBeforeInit.expected @@ -1 +1,2 @@ -| test.cpp:27:5:27:6 | f1 | The variable $@ is used in this function but may not be initialized when it is called. | test.cpp:14:5:14:5 | b | b | +| test.cpp:28:5:28:6 | f1 | The variable $@ is used in this function but may not be initialized when it is called. | test.cpp:14:5:14:5 | b | b | +| test.cpp:39:5:39:8 | main | The variable $@ is used in this function but may not be initialized when it is called. | test.cpp:14:5:14:5 | b | b | diff --git a/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/test.cpp b/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/test.cpp index fcecf6c5c44a..81883a1a8a16 100644 --- a/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/test.cpp +++ b/cpp/ql/test/query-tests/Critical/GlobalUseBeforeInit/test.cpp @@ -12,6 +12,7 @@ int vfprintf (FILE *, const char *, va_list); int a = 1; int b; +int *c; int my_printf(const char * fmt, ...) { @@ -31,8 +32,15 @@ int f1() return 0; } +void f2() { + my_printf("%d\n", b); // GOOD +} + int main() { - int b = f1(); + unsigned size = sizeof(*c); // GOOD + my_printf("%d\n", b); // BAD + b = f1(); + f2(); return 0; -} \ No newline at end of file +} diff --git a/cpp/ql/test/query-tests/Critical/InitialisationNotRun/InitialisationNotRun.expected b/cpp/ql/test/query-tests/Critical/InitialisationNotRun/InitialisationNotRun.expected new file mode 100644 index 000000000000..fdb53a2a4689 --- /dev/null +++ b/cpp/ql/test/query-tests/Critical/InitialisationNotRun/InitialisationNotRun.expected @@ -0,0 +1,2 @@ +| test.cpp:12:16:12:17 | g1 | Initialization code for 'g1' is never run. | +| test.cpp:14:23:14:24 | g3 | Initialization code for 'g3' is never run. | diff --git a/cpp/ql/test/query-tests/Critical/InitialisationNotRun/InitialisationNotRun.qlref b/cpp/ql/test/query-tests/Critical/InitialisationNotRun/InitialisationNotRun.qlref new file mode 100644 index 000000000000..7012169e8945 --- /dev/null +++ b/cpp/ql/test/query-tests/Critical/InitialisationNotRun/InitialisationNotRun.qlref @@ -0,0 +1 @@ +Critical/InitialisationNotRun.ql diff --git a/cpp/ql/test/query-tests/Critical/InitialisationNotRun/test.cpp b/cpp/ql/test/query-tests/Critical/InitialisationNotRun/test.cpp new file mode 100644 index 000000000000..ee0d070df088 --- /dev/null +++ b/cpp/ql/test/query-tests/Critical/InitialisationNotRun/test.cpp @@ -0,0 +1,36 @@ +// --- stubs --- + +char *strcpy(char *dest, const char *src); + +// --- tests --- + +class GlobalStorage { +public: + char name[1000]; +}; + +GlobalStorage *g1; // BAD +static GlobalStorage g2; // GOOD +static GlobalStorage *g3; // BAD +// static variables are initialized by compilers +static int a; // GOOD +static int b = 0; // GOOD + +void init() { //initializes g_storage, but is never run from main + g1 = new GlobalStorage(); + g3 = new GlobalStorage(); +} + +void init2(int b) { + for (int i = 0; i < b; ++i) + a *= -1; +} + +int main(int argc, char *argv[]) { + //init not called + strcpy(g1->name, argv[1]); // g1 is used before init() is called + strcpy(g2.name, argv[1]); // g2 is initialised by compiler + strcpy(g3->name, argv[1]); + b++; + return 0; +} diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected index 0a554d96f6d3..df780acdd8d0 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected @@ -1,3 +1,11 @@ +#select +| test.c:21:18:21:23 | query1 | test.c:14:27:14:30 | **argv | test.c:21:18:21:23 | *query1 | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | **argv | user input (a command-line argument) | +| test.c:51:18:51:23 | query1 | test.c:14:27:14:30 | **argv | test.c:51:18:51:23 | *query1 | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | **argv | user input (a command-line argument) | +| test.c:76:17:76:25 | userInput | test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput | This argument to a SQL query function is derived from $@ and then passed to SQLPrepare(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) | +| test.c:77:20:77:28 | userInput | test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput | This argument to a SQL query function is derived from $@ and then passed to SQLExecDirect(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) | +| test.c:106:24:106:29 | query1 | test.c:101:8:101:16 | gets output argument | test.c:106:24:106:29 | *query1 | This argument to a SQL query function is derived from $@. | test.c:101:8:101:16 | gets output argument | user input (string read by gets) | +| test.c:107:28:107:33 | query1 | test.c:101:8:101:16 | gets output argument | test.c:107:28:107:33 | *query1 | This argument to a SQL query function is derived from $@. | test.c:101:8:101:16 | gets output argument | user input (string read by gets) | +| test.cpp:43:27:43:33 | access to array | test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array | This argument to a SQL query function is derived from $@ and then passed to pqxx::work::exec1((unnamed parameter 0)). | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) | edges | test.c:14:27:14:30 | **argv | test.c:15:20:15:26 | *access to array | provenance | | | test.c:15:20:15:26 | *access to array | test.c:21:18:21:23 | *query1 | provenance | TaintFunction | @@ -9,7 +17,12 @@ edges | test.c:48:20:48:33 | *globalUsername | test.c:51:18:51:23 | *query1 | provenance | TaintFunction | | test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput | provenance | | | test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput | provenance | | +| test.c:101:8:101:16 | gets output argument | test.c:106:24:106:29 | *query1 | provenance | TaintFunction Sink:MaD:2 | +| test.c:101:8:101:16 | gets output argument | test.c:107:28:107:33 | *query1 | provenance | TaintFunction Sink:MaD:1 | | test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array | provenance | | +models +| 1 | Sink: ; ; false; OCIStmtPrepare2; ; ; Argument[*3]; sql-injection; manual | +| 2 | Sink: ; ; false; OCIStmtPrepare; ; ; Argument[*2]; sql-injection; manual | nodes | test.c:14:27:14:30 | **argv | semmle.label | **argv | | test.c:15:20:15:26 | *access to array | semmle.label | *access to array | @@ -23,12 +36,9 @@ nodes | test.c:75:8:75:16 | gets output argument | semmle.label | gets output argument | | test.c:76:17:76:25 | *userInput | semmle.label | *userInput | | test.c:77:20:77:28 | *userInput | semmle.label | *userInput | +| test.c:101:8:101:16 | gets output argument | semmle.label | gets output argument | +| test.c:106:24:106:29 | *query1 | semmle.label | *query1 | +| test.c:107:28:107:33 | *query1 | semmle.label | *query1 | | test.cpp:39:27:39:30 | **argv | semmle.label | **argv | | test.cpp:43:27:43:33 | *access to array | semmle.label | *access to array | subpaths -#select -| test.c:21:18:21:23 | query1 | test.c:14:27:14:30 | **argv | test.c:21:18:21:23 | *query1 | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | **argv | user input (a command-line argument) | -| test.c:51:18:51:23 | query1 | test.c:14:27:14:30 | **argv | test.c:51:18:51:23 | *query1 | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | **argv | user input (a command-line argument) | -| test.c:76:17:76:25 | userInput | test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput | This argument to a SQL query function is derived from $@ and then passed to SQLPrepare(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) | -| test.c:77:20:77:28 | userInput | test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput | This argument to a SQL query function is derived from $@ and then passed to SQLExecDirect(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) | -| test.cpp:43:27:43:33 | access to array | test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array | This argument to a SQL query function is derived from $@ and then passed to pqxx::work::exec1((unnamed parameter 0)). | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.qlref b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.qlref index 21a12e5eadd7..0519b7976c37 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.qlref +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.qlref @@ -1 +1,5 @@ -Security/CWE/CWE-089/SqlTainted.ql +query: Security/CWE/CWE-089/SqlTainted.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql + \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c index 9e9a4dcc8365..11766347306b 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.c @@ -11,14 +11,14 @@ int atoi(const char *nptr); void exit(int i); ///// Test code ///// -int main(int argc, char** argv) { +int main(int argc, char** argv) { // $ Source char *userName = argv[2]; int userNumber = atoi(argv[3]); // a string from the user is injected directly into an SQL query. char query1[1000] = {0}; snprintf(query1, 1000, "SELECT UID FROM USERS where name = \"%s\"", userName); - mysql_query(0, query1); // BAD + mysql_query(0, query1); // $ Alert // the user string is encoded by a library routine. char userNameSanitized[1000] = {0}; @@ -48,7 +48,7 @@ void badFunc() { char *userName = globalUsername; char query1[1000] = {0}; snprintf(query1, 1000, "SELECT UID FROM USERS where name = \"%s\"", userName); - mysql_query(0, query1); // BAD + mysql_query(0, query1); // $ Alert } //ODBC Library Rountines @@ -72,7 +72,44 @@ SQLRETURN SQLPrepare( void ODBCTests(){ char userInput[100]; - gets(userInput); - SQLPrepare(0, userInput, 100); // BAD - SQLExecDirect(0, userInput, 100); // BAD + gets(userInput); // $ Source + SQLPrepare(0, userInput, 100); // $ Alert + SQLExecDirect(0, userInput, 100); // $ Alert +} + +// Oracle Call Interface (OCI) Routines +int OCIStmtPrepare( + void *arg0, + void *arg1, + const unsigned char *sql, + unsigned int arg3, + unsigned int arg4, + unsigned int arg5); +int OCIStmtPrepare2( + void *arg0, + void **arg1, + void *arg2, + const unsigned char *sql, + unsigned int arg4, + const unsigned char *arg5, + unsigned int arg6, + unsigned int arg7, + unsigned int arg8); + +void OCITests(){ + char userInput[100]; + gets(userInput); // $ Source + + // a string from the user is injected directly into an SQL query. + char query1[1000] = {0}; + snprintf(query1, 1000, "SELECT UID FROM USERS where name = \"%s\"", userInput); + OCIStmtPrepare(0, 0, query1, 0, 0, 0); // $ Alert + OCIStmtPrepare2(0, 0, 0, query1, 0, 0, 0, 0, 0); // $ Alert + + // an integer from the user is injected into an SQL query. + int userNumber = atoi(userInput); + char query2[1000] = {0}; + snprintf(query2, 1000, "SELECT UID FROM USERS where number = \"%i\"", userNumber); + OCIStmtPrepare(0, 0, query2, 0, 0, 0); // GOOD + OCIStmtPrepare2(0, 0, 0, query2, 0, 0, 0, 0, 0); // GOOD } \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.cpp index 8bdf7dded232..9dc7aed970ea 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/test.cpp @@ -36,11 +36,11 @@ namespace pqxx { }; } -int main(int argc, char** argv) { +int main(int argc, char** argv) { // $ Source pqxx::connection c; pqxx::work w(c); - pqxx::row r = w.exec1(argv[1]); // BAD + pqxx::row r = w.exec1(argv[1]); // $ Alert pqxx::result r2 = w.exec(w.quote(argv[1])); // GOOD diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index 2f24a9a27cb5..3a2b7372831d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -12,19 +12,6 @@ edges | test.cpp:42:13:42:15 | *str [string] | test.cpp:42:18:42:23 | string | provenance | | | test.cpp:72:17:72:19 | *str [string] | test.cpp:72:22:72:27 | string | provenance | | | test.cpp:80:17:80:19 | *str [string] | test.cpp:80:22:80:27 | string | provenance | | -| test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | provenance | | -| test.cpp:90:5:90:7 | *str [post update] [string] | test.cpp:91:5:91:7 | *str [string] | provenance | | -| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:5:90:7 | *str [post update] [string] | provenance | | -| test.cpp:90:19:90:24 | call to malloc | test.cpp:90:5:90:34 | ... = ... | provenance | | -| test.cpp:91:5:91:7 | *str [string] | test.cpp:92:12:92:14 | *str [string] | provenance | | -| test.cpp:92:12:92:14 | *str [string] | test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | provenance | | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | provenance | | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:99:13:99:15 | *str [string] | provenance | | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:129:17:129:19 | *str [string] | provenance | | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:137:17:137:19 | *str [string] | provenance | | -| test.cpp:99:13:99:15 | *str [string] | test.cpp:99:18:99:23 | string | provenance | | -| test.cpp:129:17:129:19 | *str [string] | test.cpp:129:22:129:27 | string | provenance | | -| test.cpp:137:17:137:19 | *str [string] | test.cpp:137:22:137:27 | string | provenance | | | test.cpp:147:5:147:7 | *str [post update] [string] | test.cpp:148:5:148:7 | *str [string] | provenance | | | test.cpp:147:5:147:34 | ... = ... | test.cpp:147:5:147:7 | *str [post update] [string] | provenance | | | test.cpp:147:19:147:24 | call to malloc | test.cpp:147:5:147:34 | ... = ... | provenance | | @@ -46,12 +33,6 @@ edges | test.cpp:199:17:199:19 | *str [string] | test.cpp:199:22:199:27 | string | provenance | | | test.cpp:203:17:203:19 | *str [string] | test.cpp:203:22:203:27 | string | provenance | | | test.cpp:207:17:207:19 | *str [string] | test.cpp:207:22:207:27 | string | provenance | | -| test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | provenance | | -| test.cpp:220:27:220:54 | call to malloc | test.cpp:220:27:220:54 | call to malloc | provenance | | -| test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer | provenance | | -| test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | provenance | | -| test.cpp:228:27:228:54 | call to malloc | test.cpp:228:27:228:54 | call to malloc | provenance | | -| test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | provenance | | | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | provenance | | | test.cpp:236:5:236:9 | *p_str [post update] [string] | test.cpp:235:27:235:31 | *p_str [Return] [string] | provenance | | | test.cpp:236:5:236:9 | *p_str [post update] [string] | test.cpp:235:27:235:31 | *p_str [string] | provenance | | @@ -64,8 +45,6 @@ edges | test.cpp:243:12:243:14 | *str [string] | test.cpp:243:12:243:21 | string | provenance | | | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:249:14:249:33 | call to my_alloc | provenance | | | test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | provenance | | -| test.cpp:256:5:256:25 | ... = ... | test.cpp:257:12:257:12 | p | provenance | | -| test.cpp:256:9:256:25 | call to malloc | test.cpp:256:5:256:25 | ... = ... | provenance | | | test.cpp:262:15:262:30 | call to malloc | test.cpp:262:15:262:30 | call to malloc | provenance | | | test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | provenance | | | test.cpp:264:9:264:30 | ... = ... | test.cpp:266:12:266:12 | p | provenance | | @@ -85,20 +64,6 @@ nodes | test.cpp:72:22:72:27 | string | semmle.label | string | | test.cpp:80:17:80:19 | *str [string] | semmle.label | *str [string] | | test.cpp:80:22:80:27 | string | semmle.label | string | -| test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | semmle.label | **mk_string_t_plus_one [string] | -| test.cpp:90:5:90:7 | *str [post update] [string] | semmle.label | *str [post update] [string] | -| test.cpp:90:5:90:34 | ... = ... | semmle.label | ... = ... | -| test.cpp:90:19:90:24 | call to malloc | semmle.label | call to malloc | -| test.cpp:91:5:91:7 | *str [string] | semmle.label | *str [string] | -| test.cpp:92:12:92:14 | *str [string] | semmle.label | *str [string] | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | semmle.label | *call to mk_string_t_plus_one [string] | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | semmle.label | *call to mk_string_t_plus_one [string] | -| test.cpp:99:13:99:15 | *str [string] | semmle.label | *str [string] | -| test.cpp:99:18:99:23 | string | semmle.label | string | -| test.cpp:129:17:129:19 | *str [string] | semmle.label | *str [string] | -| test.cpp:129:22:129:27 | string | semmle.label | string | -| test.cpp:137:17:137:19 | *str [string] | semmle.label | *str [string] | -| test.cpp:137:22:137:27 | string | semmle.label | string | | test.cpp:147:5:147:7 | *str [post update] [string] | semmle.label | *str [post update] [string] | | test.cpp:147:5:147:34 | ... = ... | semmle.label | ... = ... | | test.cpp:147:19:147:24 | call to malloc | semmle.label | call to malloc | @@ -121,14 +86,6 @@ nodes | test.cpp:203:22:203:27 | string | semmle.label | string | | test.cpp:207:17:207:19 | *str [string] | semmle.label | *str [string] | | test.cpp:207:22:207:27 | string | semmle.label | string | -| test.cpp:214:24:214:24 | p | semmle.label | p | -| test.cpp:216:10:216:10 | p | semmle.label | p | -| test.cpp:220:27:220:54 | call to malloc | semmle.label | call to malloc | -| test.cpp:220:27:220:54 | call to malloc | semmle.label | call to malloc | -| test.cpp:222:15:222:20 | buffer | semmle.label | buffer | -| test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | -| test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | -| test.cpp:232:10:232:15 | buffer | semmle.label | buffer | | test.cpp:235:27:235:31 | *p_str [Return] [string] | semmle.label | *p_str [Return] [string] | | test.cpp:235:27:235:31 | *p_str [string] | semmle.label | *p_str [string] | | test.cpp:235:40:235:45 | buffer | semmle.label | buffer | @@ -143,9 +100,6 @@ nodes | test.cpp:249:14:249:33 | call to my_alloc | semmle.label | call to my_alloc | | test.cpp:249:14:249:33 | call to my_alloc | semmle.label | call to my_alloc | | test.cpp:250:12:250:12 | p | semmle.label | p | -| test.cpp:256:5:256:25 | ... = ... | semmle.label | ... = ... | -| test.cpp:256:9:256:25 | call to malloc | semmle.label | call to malloc | -| test.cpp:257:12:257:12 | p | semmle.label | p | | test.cpp:262:15:262:30 | call to malloc | semmle.label | call to malloc | | test.cpp:262:15:262:30 | call to malloc | semmle.label | call to malloc | | test.cpp:264:9:264:30 | ... = ... | semmle.label | ... = ... | @@ -158,9 +112,6 @@ subpaths | test.cpp:42:5:42:11 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:42:18:42:23 | string | This write may overflow $@ by 1 element. | test.cpp:42:18:42:23 | string | string | | test.cpp:72:9:72:15 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:72:22:72:27 | string | This write may overflow $@ by 1 element. | test.cpp:72:22:72:27 | string | string | | test.cpp:80:9:80:15 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:80:22:80:27 | string | This write may overflow $@ by 2 elements. | test.cpp:80:22:80:27 | string | string | -| test.cpp:99:5:99:11 | call to strncpy | test.cpp:90:19:90:24 | call to malloc | test.cpp:99:18:99:23 | string | This write may overflow $@ by 1 element. | test.cpp:99:18:99:23 | string | string | -| test.cpp:129:9:129:15 | call to strncpy | test.cpp:90:19:90:24 | call to malloc | test.cpp:129:22:129:27 | string | This write may overflow $@ by 1 element. | test.cpp:129:22:129:27 | string | string | -| test.cpp:137:9:137:15 | call to strncpy | test.cpp:90:19:90:24 | call to malloc | test.cpp:137:22:137:27 | string | This write may overflow $@ by 2 elements. | test.cpp:137:22:137:27 | string | string | | test.cpp:152:5:152:11 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:152:18:152:23 | string | This write may overflow $@ by 1 element. | test.cpp:152:18:152:23 | string | string | | test.cpp:154:5:154:11 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:154:18:154:23 | string | This write may overflow $@ by 1 element. | test.cpp:154:18:154:23 | string | string | | test.cpp:156:5:156:11 | call to strncpy | test.cpp:147:19:147:24 | call to malloc | test.cpp:156:18:156:23 | string | This write may overflow $@ by 2 elements. | test.cpp:156:18:156:23 | string | string | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/test.cpp index 253ac4fe2925..ca6ca9a5c5a8 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/test.cpp @@ -264,4 +264,15 @@ void test7(unsigned n) { p = (char*)malloc(++n); } memset(p, 0, n); // GOOD [FALSE POSITIVE] +} + +void test8(unsigned size, unsigned src_pos) +{ + char *xs = new char[size]; + if (src_pos > size) { + src_pos = size; + } + if (src_pos < size - 1) { + memset(xs, 0, src_pos + 1); // GOOD + } } \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected index c2a952774ff0..b5f6ad602fb8 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected @@ -1,9 +1,6 @@ edges -| consts.cpp:24:7:24:9 | **gv1 | consts.cpp:25:2:25:4 | *a | provenance | | | consts.cpp:24:7:24:9 | **gv1 | consts.cpp:30:9:30:14 | *access to array | provenance | | | consts.cpp:24:7:24:9 | **gv1 | consts.cpp:123:2:123:12 | *... = ... | provenance | | -| consts.cpp:25:2:25:4 | *a | consts.cpp:26:2:26:4 | *{...} | provenance | | -| consts.cpp:26:2:26:4 | *{...} | consts.cpp:24:7:24:9 | **gv1 | provenance | | | consts.cpp:29:7:29:25 | **nonConstFuncToArray | consts.cpp:126:9:126:30 | *call to nonConstFuncToArray | provenance | | | consts.cpp:30:9:30:14 | *access to array | consts.cpp:29:7:29:25 | **nonConstFuncToArray | provenance | | | consts.cpp:85:7:85:8 | gets output argument | consts.cpp:86:9:86:10 | *v1 | provenance | | @@ -38,8 +35,6 @@ edges | consts.cpp:144:16:144:18 | readStringRef output argument | consts.cpp:145:9:145:11 | *v12 | provenance | | nodes | consts.cpp:24:7:24:9 | **gv1 | semmle.label | **gv1 | -| consts.cpp:25:2:25:4 | *a | semmle.label | *a | -| consts.cpp:26:2:26:4 | *{...} | semmle.label | *{...} | | consts.cpp:29:7:29:25 | **nonConstFuncToArray | semmle.label | **nonConstFuncToArray | | consts.cpp:30:9:30:14 | *access to array | semmle.label | *access to array | | consts.cpp:85:7:85:8 | gets output argument | semmle.label | gets output argument | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.cpp index dc2b9f4a9c18..22e5ccd958dc 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.cpp @@ -18,13 +18,13 @@ void Test() wchar_t *lpWchar = NULL; LPCSTR lpcstr = "b"; - lpWchar = (LPWSTR)"a"; // BUG - lpWchar = (LPWSTR)lpcstr; // BUG + lpWchar = (LPWSTR)"a"; // $ Alert + lpWchar = (LPWSTR)lpcstr; // $ Alert - lpWchar = (wchar_t*)lpChar; // BUG + lpWchar = (wchar_t*)lpChar; // $ Alert - fconstWChar((LPCWSTR)lpChar); // BUG - fWChar((LPWSTR)lpChar); // BUG + fconstWChar((LPCWSTR)lpChar); // $ Alert + fWChar((LPWSTR)lpChar); // $ Alert lpChar = (LPSTR)"a"; // Valid lpWchar = (LPWSTR)L"a"; // Valid @@ -79,33 +79,64 @@ void CheckedConversionFalsePositiveTest3(unsigned short flags, LPTSTR buffer) if(flags & UNICODE) lpWchar = (LPWSTR)buffer; // GOOD else - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert if((flags & UNICODE) == 0x8) lpWchar = (LPWSTR)buffer; // GOOD else - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert if((flags & UNICODE) != 0x8) - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert else lpWchar = (LPWSTR)buffer; // GOOD // Bad operator precedence if(flags & UNICODE == 0x8) - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert else - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert if((flags & UNICODE) != 0) lpWchar = (LPWSTR)buffer; // GOOD else - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert if((flags & UNICODE) == 0) - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert else lpWchar = (LPWSTR)buffer; // GOOD - lpWchar = (LPWSTR)buffer; // BUG + lpWchar = (LPWSTR)buffer; // $ Alert +} + +typedef unsigned long long size_t; + +size_t wcslen(const wchar_t *str); +size_t strlen(const char* str); + +template +size_t str_len(const C *str) { + if (sizeof(C) != 1) { + return wcslen((const wchar_t *)str); // GOOD -- unreachable code + } + + return strlen((const char *)str); +} + +template +size_t wrong_str_len(const C *str) { + if (sizeof(C) == 1) { + return wcslen((const wchar_t *)str); // $ Alert + } + + return strlen((const char *)str); +} + +void test_str_len(const wchar_t *wstr, const char *str) { + size_t len = + str_len(wstr) + + str_len(str) + + wrong_str_len(wstr) + + wrong_str_len(str); } diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.expected index 9b34966aa87f..bb56396c08c2 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.expected @@ -11,3 +11,4 @@ | WcharCharConversion.cpp:103:21:103:26 | buffer | Conversion from LPTSTR to LPWSTR. Use of invalid string can lead to undefined behavior. | | WcharCharConversion.cpp:106:21:106:26 | buffer | Conversion from LPTSTR to LPWSTR. Use of invalid string can lead to undefined behavior. | | WcharCharConversion.cpp:110:20:110:25 | buffer | Conversion from LPTSTR to LPWSTR. Use of invalid string can lead to undefined behavior. | +| WcharCharConversion.cpp:130:34:130:36 | str | Conversion from const char * to const wchar_t *. Use of invalid string can lead to undefined behavior. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.qlref b/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.qlref index 4e3b6775188e..5aa0107d1f99 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.qlref +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-704/WcharCharConversion.qlref @@ -1 +1,2 @@ -Security/CWE/CWE-704/WcharCharConversion.ql \ No newline at end of file +query: Security/CWE/CWE-704/WcharCharConversion.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index 70a2dfec6cc0..72c46c89934a 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -15,6 +15,7 @@ Microsoft.AspNetCore.Http,,,1,,,,,,,,,,,,,,,,,,,1, Microsoft.AspNetCore.Mvc,,,2,,,,,,,,,,,,,,,,,,,,2 Microsoft.AspNetCore.WebUtilities,,,2,,,,,,,,,,,,,,,,,,,2, Microsoft.CSharp,,,2,,,,,,,,,,,,,,,,,,,2, +Microsoft.Data.SqlClient,7,,4,,,,,,,,,,7,,,,,,,,,4, Microsoft.Diagnostics.Tools.Pgo,,,21,,,,,,,,,,,,,,,,,,,,21 Microsoft.DotNet.Build.Tasks,,,11,,,,,,,,,,,,,,,,,,,9,2 Microsoft.DotNet.PlatformAbstractions,,,1,,,,,,,,,,,,,,,,,,,1, @@ -42,5 +43,5 @@ MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,,,, Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,,73,18 ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,,7, SourceGenerators,,,5,,,,,,,,,,,,,,,,,,,,5 -System,54,47,12139,,6,5,5,,,4,1,,33,2,,6,15,17,4,3,,5903,6236 +System,54,47,12165,,6,5,5,,,4,1,,33,2,,6,15,17,4,3,,5929,6236 Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,,,,,,, diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index 6762de6ed129..c1c3f927fd7d 100644 --- a/csharp/documentation/library-coverage/coverage.rst +++ b/csharp/documentation/library-coverage/coverage.rst @@ -8,7 +8,7 @@ C# framework & library support Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting` `ServiceStack `_,"``ServiceStack.*``, ``ServiceStack``",,7,194, - System,"``System.*``, ``System``",47,12139,54,5 - Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2253,152,4 - Totals,,107,14399,400,9 + System,"``System.*``, ``System``",47,12165,54,5 + Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Data.SqlClient``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2257,159,4 + Totals,,107,14429,407,9 diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 99267b32a407..1b3c69fd4d05 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.7.45 + +No user-facing changes. + +## 1.7.44 + +No user-facing changes. + ## 1.7.43 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.44.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.44.md new file mode 100644 index 000000000000..f25e48c07200 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.44.md @@ -0,0 +1,3 @@ +## 1.7.44 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.45.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.45.md new file mode 100644 index 000000000000..3e891d822fb9 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.45.md @@ -0,0 +1,3 @@ +## 1.7.45 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 9b37539bf65f..5a84df101839 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.43 +lastReleaseVersion: 1.7.45 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 4eb119b21c11..d8737df6485f 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.43 +version: 1.7.45 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 99267b32a407..1b3c69fd4d05 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.7.45 + +No user-facing changes. + +## 1.7.44 + +No user-facing changes. + ## 1.7.43 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.44.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.44.md new file mode 100644 index 000000000000..f25e48c07200 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.44.md @@ -0,0 +1,3 @@ +## 1.7.44 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.45.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.45.md new file mode 100644 index 000000000000..3e891d822fb9 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.45.md @@ -0,0 +1,3 @@ +## 1.7.45 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 9b37539bf65f..5a84df101839 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.43 +lastReleaseVersion: 1.7.45 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 7b0b33c02d94..53c6ae2a71be 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.43 +version: 1.7.45 groups: - csharp - solorigate diff --git a/csharp/ql/integration-tests/posix/diag_autobuild_script/build.sh b/csharp/ql/integration-tests/posix/diag_autobuild_script/build.sh old mode 100644 new mode 100755 diff --git a/csharp/ql/integration-tests/posix/diag_multiple_scripts/build.sh b/csharp/ql/integration-tests/posix/diag_multiple_scripts/build.sh old mode 100644 new mode 100755 diff --git a/csharp/ql/integration-tests/posix/diag_multiple_scripts/scripts/build.sh b/csharp/ql/integration-tests/posix/diag_multiple_scripts/scripts/build.sh old mode 100644 new mode 100755 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/packages.config b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/packages.config index 0d124c13c066..0f63b3daf6ca 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/packages.config +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/packages.config @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/packages.config b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/packages.config index 0d124c13c066..0f63b3daf6ca 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/packages.config +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/packages.config @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/packages.config b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/packages.config index 0d124c13c066..0f63b3daf6ca 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/packages.config +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/packages.config @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/packages.config b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/packages.config index aab9c8bd2cff..90071d0ca8cd 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/packages.config +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/packages.config @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/csharp/ql/integration-tests/posix/warn_as_error/build.sh b/csharp/ql/integration-tests/posix/warn_as_error/build.sh old mode 100644 new mode 100755 diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 3124c68b6ab1..1bce7a7f8031 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 5.2.1 + +No user-facing changes. + +## 5.2.0 + +### New Features + +* Added a new predicate, `getASuperType()`, to get a direct supertype of this type. + ## 5.1.9 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/released/5.2.0.md b/csharp/ql/lib/change-notes/released/5.2.0.md new file mode 100644 index 000000000000..5408c0d44bde --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.2.0.md @@ -0,0 +1,5 @@ +## 5.2.0 + +### New Features + +* Added a new predicate, `getASuperType()`, to get a direct supertype of this type. diff --git a/csharp/ql/lib/change-notes/released/5.2.1.md b/csharp/ql/lib/change-notes/released/5.2.1.md new file mode 100644 index 000000000000..8d65db4e16d0 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.2.1.md @@ -0,0 +1,3 @@ +## 5.2.1 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index f9bf26052618..1684d0e72a28 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.9 +lastReleaseVersion: 5.2.1 diff --git a/csharp/ql/lib/ext/Microsoft.Data.SqlClient.model.yml b/csharp/ql/lib/ext/Microsoft.Data.SqlClient.model.yml new file mode 100644 index 000000000000..ca888c801b08 --- /dev/null +++ b/csharp/ql/lib/ext/Microsoft.Data.SqlClient.model.yml @@ -0,0 +1,20 @@ +extensions: + - addsTo: + pack: codeql/csharp-all + extensible: sinkModel + data: + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,Microsoft.Data.SqlClient.SqlConnection)", "", "Argument[0]", "sql-injection", "manual"] + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,Microsoft.Data.SqlClient.SqlConnection,Microsoft.Data.SqlClient.SqlTransaction)", "", "Argument[0]", "sql-injection", "manual"] + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,Microsoft.Data.SqlClient.SqlConnection,Microsoft.Data.SqlClient.SqlTransaction,Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting)", "", "Argument[0]", "sql-injection", "manual"] + - ["Microsoft.Data.SqlClient", "SqlDataAdapter", False, "SqlDataAdapter", "(Microsoft.Data.SqlClient.SqlCommand)", "", "Argument[0]", "sql-injection", "manual"] + - ["Microsoft.Data.SqlClient", "SqlDataAdapter", False, "SqlDataAdapter", "(System.String,Microsoft.Data.SqlClient.SqlConnection)", "", "Argument[0]", "sql-injection", "manual"] + - ["Microsoft.Data.SqlClient", "SqlDataAdapter", False, "SqlDataAdapter", "(System.String,System.String)", "", "Argument[0]", "sql-injection", "manual"] + - addsTo: + pack: codeql/csharp-all + extensible: summaryModel + data: + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,Microsoft.Data.SqlClient.SqlConnection)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,Microsoft.Data.SqlClient.SqlConnection,Microsoft.Data.SqlClient.SqlTransaction)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["Microsoft.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,Microsoft.Data.SqlClient.SqlConnection,Microsoft.Data.SqlClient.SqlTransaction,Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting)", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/csharp/ql/lib/ext/System.IO.model.yml b/csharp/ql/lib/ext/System.IO.model.yml index dcc9c70551b0..0b8b52d9e8a5 100644 --- a/csharp/ql/lib/ext/System.IO.model.yml +++ b/csharp/ql/lib/ext/System.IO.model.yml @@ -47,7 +47,7 @@ extensions: - ["System.IO", "FileStream", False, "FileStream", "(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["System.IO", "FileStream", False, "FileStream", "(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["System.IO", "FileStream", False, "FileStream", "(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - - ["System.IO", "MemoryStream", False, "MemoryStream", "(System.Byte[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["System.IO", "MemoryStream", False, "MemoryStream", "(System.Byte[])", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] - ["System.IO", "MemoryStream", False, "MemoryStream", "(System.Byte[],System.Boolean)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] - ["System.IO", "MemoryStream", False, "MemoryStream", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] - ["System.IO", "MemoryStream", False, "MemoryStream", "(System.Byte[],System.Int32,System.Int32,System.Boolean)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] diff --git a/csharp/ql/lib/ext/System.Runtime.Serialization.model.yml b/csharp/ql/lib/ext/System.Runtime.Serialization.model.yml new file mode 100644 index 000000000000..628d06b33b8d --- /dev/null +++ b/csharp/ql/lib/ext/System.Runtime.Serialization.model.yml @@ -0,0 +1,13 @@ +extensions: + - addsTo: + pack: codeql/csharp-all + extensible: summaryModel + data: + - ["System.Runtime.Serialization", "SerializationInfo", False, "AddValue", "(System.String,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["System.Runtime.Serialization", "SerializationInfo", False, "AddValue", "(System.String,System.Object,System.Type)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["System.Runtime.Serialization", "SerializationInfo", False, "GetEnumerator", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["System.Runtime.Serialization", "SerializationInfo", False, "GetString", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["System.Runtime.Serialization", "SerializationInfo", False, "GetValue", "(System.String,System.Type)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + # Note that SerializationEntry hasn't been modeled yet, so the model below for get_Current will not in itself provide more flow. + - ["System.Runtime.Serialization", "SerializationInfoEnumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["System.Runtime.Serialization", "SerializationInfoEnumerator", False, "get_Value", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/csharp/ql/lib/ext/System.Text.model.yml b/csharp/ql/lib/ext/System.Text.model.yml index 4a94b61109f9..0067b8b000cf 100644 --- a/csharp/ql/lib/ext/System.Text.model.yml +++ b/csharp/ql/lib/ext/System.Text.model.yml @@ -3,18 +3,18 @@ extensions: pack: codeql/csharp-all extensible: summaryModel data: - - ["System.Text", "Encoding", True, "GetBytes", "(System.Char*,System.Int32,System.Byte*,System.Int32)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetBytes", "(System.Char*,System.Int32,System.Byte*,System.Int32)", "", "Argument[0].Element", "Argument[2]", "taint", "manual"] - ["System.Text", "Encoding", True, "GetBytes", "(System.Char[])", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["System.Text", "Encoding", True, "GetBytes", "(System.Char[],System.Int32,System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - - ["System.Text", "Encoding", True, "GetBytes", "(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - - ["System.Text", "Encoding", True, "GetBytes", "(System.ReadOnlySpan,System.Span)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetBytes", "(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)", "", "Argument[0].Element", "Argument[3]", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetBytes", "(System.ReadOnlySpan,System.Span)", "", "Argument[0].Element", "Argument[1]", "taint", "manual"] - ["System.Text", "Encoding", True, "GetBytes", "(System.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["System.Text", "Encoding", False, "GetBytes", "(System.String,System.Int32,System.Int32)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["System.Text", "Encoding", True, "GetBytes", "(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["System.Text", "Encoding", True, "GetChars", "(System.Byte*,System.Int32,System.Char*,System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetBytes", "(System.String,System.Int32,System.Int32)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetBytes", "(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)", "", "Argument[0]", "Argument[3]", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetChars", "(System.Byte*,System.Int32,System.Char*,System.Int32)", "", "Argument[0].Element", "Argument[2]", "taint", "manual"] - ["System.Text", "Encoding", True, "GetChars", "(System.Byte[])", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["System.Text", "Encoding", True, "GetChars", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - - ["System.Text", "Encoding", True, "GetChars", "(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] + - ["System.Text", "Encoding", True, "GetChars", "(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)", "", "Argument[0].Element", "Argument[3]", "taint", "manual"] - ["System.Text", "Encoding", True, "GetChars", "(System.ReadOnlySpan,System.Span)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["System.Text", "Encoding", False, "GetString", "(System.Byte*,System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["System.Text", "Encoding", True, "GetString", "(System.Byte[])", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] diff --git a/csharp/ql/lib/ext/System.Xml.model.yml b/csharp/ql/lib/ext/System.Xml.model.yml index 55825304a145..efea34b40dbe 100644 --- a/csharp/ql/lib/ext/System.Xml.model.yml +++ b/csharp/ql/lib/ext/System.Xml.model.yml @@ -4,6 +4,25 @@ extensions: extensible: summaryModel data: - ["System.Xml", "XmlAttributeCollection", False, "CopyTo", "(System.Xml.XmlAttribute[],System.Int32)", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0].Element", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[3]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession)", "", "Argument[0].Element", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession)", "", "Argument[3]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession)", "", "Argument[5]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[3]", "ReturnValue", "taint", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[5]", "ReturnValue", "taint", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0].Element", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.Byte[],System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0].Element", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[1]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession)", "", "Argument[0]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession)", "", "Argument[1]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession)", "", "Argument[3]", "ReturnValue", "taint", "df-manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[3]", "ReturnValue", "taint", "manual"] + - ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0]", "ReturnValue", "taint", "df-manual"] - ["System.Xml", "XmlDocument", False, "Load", "(System.IO.Stream)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["System.Xml", "XmlDocument", False, "Load", "(System.IO.TextReader)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["System.Xml", "XmlDocument", False, "Load", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 14b0970fc052..fc6261f3383c 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.1.9 +version: 5.2.1 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/asp/WebConfig.qll b/csharp/ql/lib/semmle/code/asp/WebConfig.qll index f9106bcd1afd..384c3a013c3b 100644 --- a/csharp/ql/lib/semmle/code/asp/WebConfig.qll +++ b/csharp/ql/lib/semmle/code/asp/WebConfig.qll @@ -8,14 +8,14 @@ import csharp * A `Web.config` file. */ class WebConfigXml extends XmlFile { - WebConfigXml() { this.getName().matches("%Web.config") } + WebConfigXml() { this.getName().toLowerCase().matches("%web.config") } } /** * A `Web.config` transformation file. */ class WebConfigReleaseTransformXml extends XmlFile { - WebConfigReleaseTransformXml() { this.getName().matches("%Web.Release.config") } + WebConfigReleaseTransformXml() { this.getName().toLowerCase().matches("%web.release.config") } } /** A `` tag in an ASP.NET configuration file. */ diff --git a/csharp/ql/lib/semmle/code/csharp/Type.qll b/csharp/ql/lib/semmle/code/csharp/Type.qll index 9283bb3002a1..d11b5618e806 100644 --- a/csharp/ql/lib/semmle/code/csharp/Type.qll +++ b/csharp/ql/lib/semmle/code/csharp/Type.qll @@ -138,6 +138,9 @@ class ValueOrRefType extends Type, Attributable, @value_or_ref_type { /** Gets an immediate subtype of this type, if any. */ ValueOrRefType getASubType() { result.getABaseType() = this } + /** Gets an immediate supertype of this type, if any. */ + ValueOrRefType getASuperType() { this.getABaseType() = result } + /** Gets a member of this type, if any. */ Member getAMember() { result.getDeclaringType() = this } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Bound.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Bound.qll index 08826b7ae8f1..65af6fb13a81 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Bound.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Bound.qll @@ -1,6 +1,8 @@ /** * Provides classes for representing abstract bounds for use in, for example, range analysis. */ +overlay[local?] +module; private import internal.rangeanalysis.BoundSpecific diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll index 3e5a45da247d..1451a605cdb0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll @@ -3,6 +3,8 @@ * an expression, `b` is a `Bound` (typically zero or the value of an SSA * variable), and `v` is an integer in the range `[0 .. m-1]`. */ +overlay[local?] +module; private import internal.rangeanalysis.ModulusAnalysisSpecific::Private private import Bound diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 6d59c0579860..d1490c849163 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -975,7 +975,8 @@ private module Cached { cached // nothing is actually cached module BarrierGuard { private predicate guardChecksAdjTypes( - DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e, boolean branch + DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e, + DataFlowIntegrationInput::GuardValue branch ) { exists(Guards::AbstractValues::BooleanValue v | guardChecks(g, e.getAstNode(), v) and @@ -1016,6 +1017,7 @@ string getToStringPrefix(Definition def) { private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInputSig { private import csharp as Cs private import semmle.code.csharp.controlflow.BasicBlocks + private import codeql.util.Boolean class Expr extends ControlFlow::Node { predicate hasCfgNode(ControlFlow::BasicBlock bb, int i) { this = bb.getNode(i) } @@ -1042,12 +1044,14 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu ) } + class GuardValue = Boolean; + class Guard extends Guards::Guard { /** * Holds if the evaluation of this guard to `branch` corresponds to the edge * from `bb1` to `bb2`. */ - predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { exists(ControlFlow::SuccessorTypes::ConditionalSuccessor s | this.getAControlFlowNode() = bb1.getLastNode() and bb2 = bb1.getASuccessorByType(s) and @@ -1060,13 +1064,13 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu * branch edge from `bb1` to `bb2`. That is, following the edge from * `bb1` to `bb2` implies that this guard evaluated to `branch`. */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - this.hasBranchEdge(bb1, bb2, branch) + predicate valueControlsBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { + this.hasValueBranchEdge(bb1, bb2, branch) } } /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ - predicate guardDirectlyControlsBlock(Guard guard, ControlFlow::BasicBlock bb, boolean branch) { + predicate guardDirectlyControlsBlock(Guard guard, ControlFlow::BasicBlock bb, GuardValue branch) { exists(ConditionBlock conditionBlock, ControlFlow::SuccessorTypes::ConditionalSuccessor s | guard.getAControlFlowNode() = conditionBlock.getLastNode() and s.getValue() = branch and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/Sign.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/Sign.qll index 30cc089f30bb..a8b715648321 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/Sign.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/Sign.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + newtype TSign = TNeg() or TZero() or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll index 6f0067517f90..8f8d884c9566 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll @@ -5,6 +5,8 @@ * The analysis is implemented as an abstract interpretation over the * three-valued domain `{negative, zero, positive}`. */ +overlay[local?] +module; private import SignAnalysisSpecific::Private private import SsaReadPositionCommon diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll index 08335f6680dd..1e3c4db95bed 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll @@ -1,6 +1,8 @@ /** * Provides classes for representing a position at which an SSA variable is read. */ +overlay[local?] +module; private import SsaReadPositionSpecific import SsaReadPositionSpecific::Public diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll index 75f72352deb6..77d749a03333 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll @@ -35,6 +35,7 @@ class IDbCommandConstructionSqlExpr extends SqlExpr, ObjectCreation { ic.getParameter(0).getType() instanceof StringType and not exists(Type t | t = ic.getDeclaringType() | // Known sealed classes: + t.hasFullyQualifiedName("Microsoft.Data.SqlClient", "SqlCommand") or t.hasFullyQualifiedName("System.Data.SqlClient", "SqlCommand") or t.hasFullyQualifiedName("System.Data.Odbc", "OdbcCommand") or t.hasFullyQualifiedName("System.Data.OleDb", "OleDbCommand") or diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index da76eab521c1..7209d4cfb81e 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,18 @@ +## 1.3.2 + +No user-facing changes. + +## 1.3.1 + +### Minor Analysis Improvements + +* Explicitly added summary models for all overloads of `System.Xml.XmlDictionaryReader.CreateBinaryReader`. Added models for some of the methods and properties in `System.Runtime.Serialization.SerializationInfo` and `System.Runtime.Serialization.SerializationInfoEnumerator`. Updated models for `System.Text.Encoding.GetBytes`, `System.Text.Encoding.GetChars` and the constructor for `System.IO.MemoryStream`. This generally improves the library modelling and thus reduces the number of false negatives. +* Added explicit SQL injection Models as Data models for `Microsoft.Data.SqlClient.SqlCommand` and `Microsoft.Data.SqlClient.SqlDataAdapter`. This reduces false negatives for the query `cs/sql-injection`. + +### Bug Fixes + +* `web.config` and `web.release.config` files are now recognized regardless of case. This means queries `cs/web/debug-binary` and `cs/web/missing-x-frame-options` may produce more results than before. + ## 1.3.0 ### Query Metadata Changes diff --git a/csharp/ql/src/Security Features/CWE-022/ZipSlip.qhelp b/csharp/ql/src/Security Features/CWE-022/ZipSlip.qhelp index fc1ebe1e4670..d75ababa6a8b 100644 --- a/csharp/ql/src/Security Features/CWE-022/ZipSlip.qhelp +++ b/csharp/ql/src/Security Features/CWE-022/ZipSlip.qhelp @@ -26,7 +26,7 @@ written to c:\sneaky-file.

Ensure that output paths constructed from zip archive entries are validated to prevent writing files to unexpected locations.

-

The recommended way of writing an output file from a zip archive entry is to conduct the following in sequence:

+

The recommended way of writing an output file from a zip archive entry is to:

  1. Use Path.Combine(destinationDirectory, archiveEntry.FullName) to determine the raw diff --git a/csharp/ql/src/change-notes/released/1.3.1.md b/csharp/ql/src/change-notes/released/1.3.1.md new file mode 100644 index 000000000000..4576c8116873 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.3.1.md @@ -0,0 +1,10 @@ +## 1.3.1 + +### Minor Analysis Improvements + +* Explicitly added summary models for all overloads of `System.Xml.XmlDictionaryReader.CreateBinaryReader`. Added models for some of the methods and properties in `System.Runtime.Serialization.SerializationInfo` and `System.Runtime.Serialization.SerializationInfoEnumerator`. Updated models for `System.Text.Encoding.GetBytes`, `System.Text.Encoding.GetChars` and the constructor for `System.IO.MemoryStream`. This generally improves the library modelling and thus reduces the number of false negatives. +* Added explicit SQL injection Models as Data models for `Microsoft.Data.SqlClient.SqlCommand` and `Microsoft.Data.SqlClient.SqlDataAdapter`. This reduces false negatives for the query `cs/sql-injection`. + +### Bug Fixes + +* `web.config` and `web.release.config` files are now recognized regardless of case. This means queries `cs/web/debug-binary` and `cs/web/missing-x-frame-options` may produce more results than before. diff --git a/csharp/ql/src/change-notes/released/1.3.2.md b/csharp/ql/src/change-notes/released/1.3.2.md new file mode 100644 index 000000000000..14f14807ef51 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.3.2.md @@ -0,0 +1,3 @@ +## 1.3.2 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index ec16350ed6fd..86a9cb32d86b 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.3.0 +lastReleaseVersion: 1.3.2 diff --git a/csharp/ql/src/codeql-suites/csharp-security-and-quality.qls b/csharp/ql/src/codeql-suites/csharp-security-and-quality.qls index b224499edce2..21d39db383d3 100644 --- a/csharp/ql/src/codeql-suites/csharp-security-and-quality.qls +++ b/csharp/ql/src/codeql-suites/csharp-security-and-quality.qls @@ -1,24 +1,7 @@ - description: Security-and-quality queries for C# - queries: . -- include: - kind: - - problem - - path-problem - precision: - - high - - very-high - tags contain: - - security -- include: - kind: - - problem - - path-problem - precision: medium - problem.severity: - - error - - warning - tags contain: - - security +- apply: security-and-frozen-quality-selectors.yml + from: codeql/suite-helpers - include: id: - cs/asp/response-write @@ -123,21 +106,3 @@ - cs/wrong-compareto-signature - cs/wrong-equals-signature - cs/xmldoc/missing-summary -- include: - kind: - - diagnostic -- include: - kind: - - metric - tags contain: - - summary -- exclude: - deprecated: // -- exclude: - query path: - - /^experimental\/.*/ - - Metrics/Summaries/FrameworkCoverage.ql -- exclude: - tags contain: - - modeleditor - - modelgenerator diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index ceb761092b75..dac65691929e 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.3.0 +version: 1.3.2 groups: - csharp - queries diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index c3eb0402922c..ff615d531152 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -12371,7 +12371,7 @@ summary | System.IO;MemoryStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.IO;MemoryStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.IO;MemoryStream;GetBuffer;();Argument[this];ReturnValue;taint;df-generated | -| System.IO;MemoryStream;MemoryStream;(System.Byte[]);Argument[0];Argument[this];taint;manual | +| System.IO;MemoryStream;MemoryStream;(System.Byte[]);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Boolean);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);Argument[0].Element;Argument[this];taint;manual | @@ -17277,30 +17277,20 @@ summary | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Int16);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Int32);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Int64);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object,System.Type);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object,System.Type);Argument[1];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;value;dfc-generated | +| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object);Argument[1];Argument[this];taint;manual | +| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object,System.Type);Argument[1];Argument[this];taint;manual | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.SByte);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Single);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.UInt16);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.UInt32);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.UInt64);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetEnumerator;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names];ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetEnumerator;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values];ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetString;(System.String);Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;ReturnValue;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetValue;(System.String,System.Type);Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;ReturnValue;value;dfc-generated | +| System.Runtime.Serialization;SerializationInfo;GetEnumerator;();Argument[this];ReturnValue;taint;manual | +| System.Runtime.Serialization;SerializationInfo;GetString;(System.String);Argument[this];ReturnValue;taint;manual | +| System.Runtime.Serialization;SerializationInfo;GetValue;(System.String,System.Type);Argument[this];ReturnValue;taint;manual | | System.Runtime.Serialization;SerializationInfo;SerializationInfo;(System.Type,System.Runtime.Serialization.IFormatterConverter);Argument[1];Argument[this];taint;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].Property[System.Runtime.Serialization.SerializationInfoEnumerator.Current];ReturnValue;value;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].Property[System.Runtime.Serialization.SerializationInfoEnumerator.Current];ReturnValue;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._value];value;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._value];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._name];value;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._name];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | +| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this];ReturnValue;taint;manual | | System.Runtime.Serialization;SerializationInfoEnumerator;get_Name;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members].Element;ReturnValue;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Value;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data].Element;ReturnValue;value;dfc-generated | +| System.Runtime.Serialization;SerializationInfoEnumerator;get_Value;();Argument[this];ReturnValue;taint;manual | | System.Runtime.Serialization;SerializationObjectManager;SerializationObjectManager;(System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Runtime.Serialization;StreamingContext;StreamingContext;(System.Runtime.Serialization.StreamingContextStates,System.Object);Argument[1];Argument[this].SyntheticField[System.Runtime.Serialization.StreamingContext._additionalContext];value;dfc-generated | | System.Runtime.Serialization;StreamingContext;get_Context;();Argument[this].SyntheticField[System.Runtime.Serialization.StreamingContext._additionalContext];ReturnValue;value;dfc-generated | @@ -18467,12 +18457,12 @@ summary | System.Text.Unicode;Utf8+TryWriteInterpolatedStringHandler;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.Boolean);Argument[2];Argument[this];taint;df-generated | | System.Text.Unicode;Utf8+TryWriteInterpolatedStringHandler;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);Argument[2];Argument[this];taint;df-generated | | System.Text.Unicode;Utf8+TryWriteInterpolatedStringHandler;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);Argument[3];Argument[this];taint;df-generated | -| System.Text;ASCIIEncoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;ASCIIEncoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;ASCIIEncoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0];ReturnValue;taint;manual | -| System.Text;ASCIIEncoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;ASCIIEncoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;ASCIIEncoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;ASCIIEncoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;ASCIIEncoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;ASCIIEncoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0].Element;Argument[1];taint;manual | +| System.Text;ASCIIEncoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;ASCIIEncoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;ASCIIEncoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;ASCIIEncoding;GetChars;(System.ReadOnlySpan,System.Span);Argument[0].Element;ReturnValue;taint;manual | | System.Text;ASCIIEncoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;ASCIIEncoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | @@ -18501,18 +18491,18 @@ summary | System.Text;Encoding;CreateTranscodingStream;(System.IO.Stream,System.Text.Encoding,System.Text.Encoding,System.Boolean);Argument[2];ReturnValue;taint;df-generated | | System.Text;Encoding;Encoding;(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback);Argument[1];Argument[this];taint;df-generated | | System.Text;Encoding;Encoding;(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback);Argument[2];Argument[this];taint;df-generated | -| System.Text;Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | +| System.Text;Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | | System.Text;Encoding;GetBytes;(System.Char[]);Argument[0].Element;ReturnValue;taint;manual | | System.Text;Encoding;GetBytes;(System.Char[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;Encoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0];ReturnValue;taint;manual | +| System.Text;Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;Encoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0].Element;Argument[1];taint;manual | | System.Text;Encoding;GetBytes;(System.String);Argument[0];ReturnValue;taint;manual | | System.Text;Encoding;GetBytes;(System.String,System.Int32,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | | System.Text;Encoding;GetChars;(System.Byte[]);Argument[0].Element;ReturnValue;taint;manual | | System.Text;Encoding;GetChars;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;Encoding;GetChars;(System.ReadOnlySpan,System.Span);Argument[0].Element;ReturnValue;taint;manual | | System.Text;Encoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;Encoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | @@ -18703,37 +18693,37 @@ summary | System.Text;StringRuneEnumerator;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Text;StringRuneEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | | System.Text;StringRuneEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text;UTF7Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF7Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF7Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF7Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF7Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;UTF7Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UTF7Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;UTF7Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;UTF7Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UTF7Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;UTF7Encoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UTF7Encoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UTF7Encoding;GetString;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF8Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF8Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF8Encoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF8Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF8Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF8Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;UTF8Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UTF8Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;UTF8Encoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0].Element;Argument[1];taint;manual | +| System.Text;UTF8Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;UTF8Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UTF8Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;UTF8Encoding;GetChars;(System.ReadOnlySpan,System.Span);Argument[0].Element;ReturnValue;taint;manual | | System.Text;UTF8Encoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UTF8Encoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UTF8Encoding;GetString;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF32Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF32Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF32Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UTF32Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UTF32Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;UTF32Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UTF32Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;UTF32Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;UTF32Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UTF32Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;UTF32Encoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UTF32Encoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UTF32Encoding;GetString;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UnicodeEncoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UnicodeEncoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UnicodeEncoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;UnicodeEncoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;UnicodeEncoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;UnicodeEncoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UnicodeEncoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;UnicodeEncoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;UnicodeEncoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | +| System.Text;UnicodeEncoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;UnicodeEncoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UnicodeEncoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;UnicodeEncoding;GetString;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | @@ -20868,21 +20858,27 @@ summary | System.Xml;XmlDictionary;TryLookup;(System.Int32,System.Xml.XmlDictionaryString);Argument[this];Argument[1];taint;df-generated | | System.Xml;XmlDictionary;TryLookup;(System.String,System.Xml.XmlDictionaryString);Argument[this];Argument[1];taint;df-generated | | System.Xml;XmlDictionary;TryLookup;(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString);Argument[0];Argument[1];value;dfc-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[3];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[5];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[1];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[1];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[3];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[5];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0].Element;ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[5];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[6];Argument[6].Parameter[delegate-self];value;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[1];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[1];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[1];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[4];Argument[4].Parameter[delegate-self];value;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | | System.Xml;XmlDictionaryReader;CreateDictionaryReader;(System.Xml.XmlReader);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlDictionaryReader;CreateMtomReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;CreateMtomReader;(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 8c0a26ee4039..faf716f4d7be 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -9208,7 +9208,7 @@ | System.IO;FileSystemWatcher;remove_Error;(System.IO.ErrorEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;remove_Renamed;(System.IO.RenamedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;MemoryStream;GetBuffer;();Argument[this];ReturnValue;taint;df-generated | -| System.IO;MemoryStream;MemoryStream;(System.Byte[]);Argument[0];Argument[this];taint;manual | +| System.IO;MemoryStream;MemoryStream;(System.Byte[]);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Boolean);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);Argument[0].Element;Argument[this];taint;manual | @@ -13222,28 +13222,20 @@ | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Int16);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Int32);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Int64);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object,System.Type);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object,System.Type);Argument[1];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;value;dfc-generated | +| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object);Argument[1];Argument[this];taint;manual | +| System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Object,System.Type);Argument[1];Argument[this];taint;manual | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.SByte);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.Single);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.UInt16);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.UInt32);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | | System.Runtime.Serialization;SerializationInfo;AddValue;(System.String,System.UInt64);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names].Element;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetEnumerator;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._names];ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetEnumerator;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values];ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetString;(System.String);Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;ReturnValue;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfo;GetValue;(System.String,System.Type);Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;ReturnValue;value;dfc-generated | +| System.Runtime.Serialization;SerializationInfo;GetEnumerator;();Argument[this];ReturnValue;taint;manual | +| System.Runtime.Serialization;SerializationInfo;GetString;(System.String);Argument[this];ReturnValue;taint;manual | +| System.Runtime.Serialization;SerializationInfo;GetValue;(System.String,System.Type);Argument[this];ReturnValue;taint;manual | | System.Runtime.Serialization;SerializationInfo;SerializationInfo;(System.Type,System.Runtime.Serialization.IFormatterConverter);Argument[1];Argument[this];taint;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].Property[System.Runtime.Serialization.SerializationInfoEnumerator.Current];ReturnValue;value;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].Property[System.Runtime.Serialization.SerializationInfoEnumerator.Current];ReturnValue;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._value];value;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._value];value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._name];value;df-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members].Element;ReturnValue.SyntheticField[System.Runtime.Serialization.SerializationEntry._name];value;dfc-generated | +| System.Runtime.Serialization;SerializationInfoEnumerator;get_Current;();Argument[this];ReturnValue;taint;manual | | System.Runtime.Serialization;SerializationInfoEnumerator;get_Name;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._members].Element;ReturnValue;value;dfc-generated | -| System.Runtime.Serialization;SerializationInfoEnumerator;get_Value;();Argument[this].SyntheticField[System.Runtime.Serialization.SerializationInfoEnumerator._data].Element;ReturnValue;value;dfc-generated | +| System.Runtime.Serialization;SerializationInfoEnumerator;get_Value;();Argument[this];ReturnValue;taint;manual | | System.Runtime.Serialization;SerializationObjectManager;SerializationObjectManager;(System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Runtime.Serialization;StreamingContext;StreamingContext;(System.Runtime.Serialization.StreamingContextStates,System.Object);Argument[1];Argument[this].SyntheticField[System.Runtime.Serialization.StreamingContext._additionalContext];value;dfc-generated | | System.Runtime.Serialization;StreamingContext;get_Context;();Argument[this].SyntheticField[System.Runtime.Serialization.StreamingContext._additionalContext];ReturnValue;value;dfc-generated | @@ -14074,18 +14066,18 @@ | System.Text;Encoding;CreateTranscodingStream;(System.IO.Stream,System.Text.Encoding,System.Text.Encoding,System.Boolean);Argument[2];ReturnValue;taint;df-generated | | System.Text;Encoding;Encoding;(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback);Argument[1];Argument[this];taint;df-generated | | System.Text;Encoding;Encoding;(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback);Argument[2];Argument[this];taint;df-generated | -| System.Text;Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0];ReturnValue;taint;manual | +| System.Text;Encoding;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);Argument[0].Element;Argument[2];taint;manual | | System.Text;Encoding;GetBytes;(System.Char[]);Argument[0].Element;ReturnValue;taint;manual | | System.Text;Encoding;GetBytes;(System.Char[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;Encoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0];ReturnValue;taint;manual | +| System.Text;Encoding;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0].Element;Argument[3];taint;manual | +| System.Text;Encoding;GetBytes;(System.ReadOnlySpan,System.Span);Argument[0].Element;Argument[1];taint;manual | | System.Text;Encoding;GetBytes;(System.String);Argument[0];ReturnValue;taint;manual | | System.Text;Encoding;GetBytes;(System.String,System.Int32,System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];ReturnValue;taint;manual | -| System.Text;Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;Encoding;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);Argument[0];Argument[3];taint;manual | +| System.Text;Encoding;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);Argument[0].Element;Argument[2];taint;manual | | System.Text;Encoding;GetChars;(System.Byte[]);Argument[0].Element;ReturnValue;taint;manual | | System.Text;Encoding;GetChars;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;manual | -| System.Text;Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | +| System.Text;Encoding;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);Argument[0].Element;Argument[3];taint;manual | | System.Text;Encoding;GetChars;(System.ReadOnlySpan,System.Span);Argument[0].Element;ReturnValue;taint;manual | | System.Text;Encoding;GetDecoder;();Argument[this];ReturnValue;taint;df-generated | | System.Text;Encoding;GetEncoder;();Argument[this];ReturnValue;taint;df-generated | @@ -16194,21 +16186,27 @@ | System.Xml;XmlDeclaration;XmlDeclaration;(System.String,System.String,System.String,System.Xml.XmlDocument);Argument[2];Argument[this];taint;df-generated | | System.Xml;XmlDictionary;Add;(System.String);Argument[0];ReturnValue.SyntheticField[System.Xml.XmlDictionaryString._value];value;dfc-generated | | System.Xml;XmlDictionary;Add;(System.String);Argument[this];ReturnValue.SyntheticField[System.Xml.XmlDictionaryString._dictionary];value;dfc-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[3];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[5];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[1];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[1];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[3];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[5];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0].Element;ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[5];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[6];Argument[6].Parameter[delegate-self];value;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[1];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[0];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[1];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession);Argument[3];ReturnValue;taint;df-manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[1];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[4];Argument[4].Parameter[delegate-self];value;manual | +| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | | System.Xml;XmlDictionaryReader;CreateDictionaryReader;(System.Xml.XmlReader);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlDictionaryReader;CreateMtomReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlDictionaryReader;CreateMtomReader;(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.cs b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.cs new file mode 100644 index 000000000000..739f0ea30ee0 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.cs @@ -0,0 +1,33 @@ +using System; +using Microsoft.Data; +using Microsoft.Data.SqlClient; + +namespace Test +{ + class SqlInjection + { + string connectionString; + System.Windows.Forms.TextBox box1; + + public void MakeSqlCommand() + { + // BAD: Text from a local textbox + using (var connection = new SqlConnection(connectionString)) + { + var queryString = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var cmd = new SqlCommand(queryString); // $ Alert[cs/sql-injection] + var adapter = new SqlDataAdapter(cmd); // $ Alert[cs/sql-injection] + } + + // BAD: Input from the command line. + using (var connection = new SqlConnection(connectionString)) + { + var queryString = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + + Console.ReadLine() + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var cmd = new SqlCommand(queryString); // $ Alert[cs/sql-injection] + var adapter = new SqlDataAdapter(cmd); // $ Alert[cs/sql-injection] + } + } + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.expected new file mode 100644 index 000000000000..d6582d877edd --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.expected @@ -0,0 +1,39 @@ +#select +| SqlInjection.cs:19:42:19:52 | access to local variable queryString | SqlInjection.cs:18:21:18:29 | access to property Text : String | SqlInjection.cs:19:42:19:52 | access to local variable queryString | This query depends on $@. | SqlInjection.cs:18:21:18:29 | access to property Text : String | this TextBox text | +| SqlInjection.cs:20:50:20:52 | access to local variable cmd | SqlInjection.cs:18:21:18:29 | access to property Text : String | SqlInjection.cs:20:50:20:52 | access to local variable cmd | This query depends on $@. | SqlInjection.cs:18:21:18:29 | access to property Text : String | this TextBox text | +| SqlInjection.cs:28:42:28:52 | access to local variable queryString | SqlInjection.cs:27:21:27:38 | call to method ReadLine : String | SqlInjection.cs:28:42:28:52 | access to local variable queryString | This query depends on $@. | SqlInjection.cs:27:21:27:38 | call to method ReadLine : String | this read from stdin | +| SqlInjection.cs:29:50:29:52 | access to local variable cmd | SqlInjection.cs:27:21:27:38 | call to method ReadLine : String | SqlInjection.cs:29:50:29:52 | access to local variable cmd | This query depends on $@. | SqlInjection.cs:27:21:27:38 | call to method ReadLine : String | this read from stdin | +edges +| SqlInjection.cs:17:21:17:31 | access to local variable queryString : String | SqlInjection.cs:19:42:19:52 | access to local variable queryString | provenance | Sink:MaD:1 | +| SqlInjection.cs:17:21:17:31 | access to local variable queryString : String | SqlInjection.cs:19:42:19:52 | access to local variable queryString : String | provenance | | +| SqlInjection.cs:18:21:18:29 | access to property Text : String | SqlInjection.cs:17:21:17:31 | access to local variable queryString : String | provenance | | +| SqlInjection.cs:19:21:19:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:20:50:20:52 | access to local variable cmd | provenance | Sink:MaD:2 | +| SqlInjection.cs:19:27:19:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:19:21:19:23 | access to local variable cmd : SqlCommand | provenance | | +| SqlInjection.cs:19:42:19:52 | access to local variable queryString : String | SqlInjection.cs:19:27:19:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:4 | +| SqlInjection.cs:26:21:26:31 | access to local variable queryString : String | SqlInjection.cs:28:42:28:52 | access to local variable queryString | provenance | Sink:MaD:1 | +| SqlInjection.cs:26:21:26:31 | access to local variable queryString : String | SqlInjection.cs:28:42:28:52 | access to local variable queryString : String | provenance | | +| SqlInjection.cs:27:21:27:38 | call to method ReadLine : String | SqlInjection.cs:26:21:26:31 | access to local variable queryString : String | provenance | Src:MaD:3 | +| SqlInjection.cs:28:21:28:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:29:50:29:52 | access to local variable cmd | provenance | Sink:MaD:2 | +| SqlInjection.cs:28:27:28:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:28:21:28:23 | access to local variable cmd : SqlCommand | provenance | | +| SqlInjection.cs:28:42:28:52 | access to local variable queryString : String | SqlInjection.cs:28:27:28:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:4 | +models +| 1 | Sink: Microsoft.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; sql-injection; manual | +| 2 | Sink: Microsoft.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (Microsoft.Data.SqlClient.SqlCommand); ; Argument[0]; sql-injection; manual | +| 3 | Source: System; Console; false; ReadLine; ; ; ReturnValue; stdin; manual | +| 4 | Summary: Microsoft.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; Argument[this]; taint; manual | +nodes +| SqlInjection.cs:17:21:17:31 | access to local variable queryString : String | semmle.label | access to local variable queryString : String | +| SqlInjection.cs:18:21:18:29 | access to property Text : String | semmle.label | access to property Text : String | +| SqlInjection.cs:19:21:19:23 | access to local variable cmd : SqlCommand | semmle.label | access to local variable cmd : SqlCommand | +| SqlInjection.cs:19:27:19:53 | object creation of type SqlCommand : SqlCommand | semmle.label | object creation of type SqlCommand : SqlCommand | +| SqlInjection.cs:19:42:19:52 | access to local variable queryString | semmle.label | access to local variable queryString | +| SqlInjection.cs:19:42:19:52 | access to local variable queryString : String | semmle.label | access to local variable queryString : String | +| SqlInjection.cs:20:50:20:52 | access to local variable cmd | semmle.label | access to local variable cmd | +| SqlInjection.cs:26:21:26:31 | access to local variable queryString : String | semmle.label | access to local variable queryString : String | +| SqlInjection.cs:27:21:27:38 | call to method ReadLine : String | semmle.label | call to method ReadLine : String | +| SqlInjection.cs:28:21:28:23 | access to local variable cmd : SqlCommand | semmle.label | access to local variable cmd : SqlCommand | +| SqlInjection.cs:28:27:28:53 | object creation of type SqlCommand : SqlCommand | semmle.label | object creation of type SqlCommand : SqlCommand | +| SqlInjection.cs:28:42:28:52 | access to local variable queryString | semmle.label | access to local variable queryString | +| SqlInjection.cs:28:42:28:52 | access to local variable queryString : String | semmle.label | access to local variable queryString : String | +| SqlInjection.cs:29:50:29:52 | access to local variable cmd | semmle.label | access to local variable cmd | +subpaths diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.ext.yml b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.ext.yml new file mode 100644 index 000000000000..82f107ae1d71 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.ext.yml @@ -0,0 +1,7 @@ +extensions: + + - addsTo: + pack: codeql/threat-models + extensible: threatModelConfiguration + data: + - ["local", true, 0] \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.qlref b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.qlref new file mode 100644 index 000000000000..1421faac8072 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089-2/SqlInjection.qlref @@ -0,0 +1,4 @@ +query: Security Features/CWE-089/SqlInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089-2/options b/csharp/ql/test/query-tests/Security Features/CWE-089-2/options new file mode 100644 index 000000000000..5601356ee484 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089-2/options @@ -0,0 +1,4 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.cs b/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.cs index b8ecf0b8e0a6..b2240908686e 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.cs @@ -17,12 +17,12 @@ public void ProcessRequest() { connection.Open(); SqlCommand customerCommand = new SqlCommand("SELECT * FROM customers", connection); - SqlDataReader customerReader = customerCommand.ExecuteReader(); + SqlDataReader customerReader = customerCommand.ExecuteReader(); // $ Source[cs/sql-injection] while (customerReader.Read()) { // BAD: Read from database, write it straight to another query - SqlCommand secondCustomerCommand = new SqlCommand("SELECT * FROM customers WHERE customerName=" + customerReader.GetString(1), connection); + SqlCommand secondCustomerCommand = new SqlCommand("SELECT * FROM customers WHERE customerName=" + customerReader.GetString(1), connection); // $ Alert[cs/sql-injection] } customerReader.Close(); } @@ -30,7 +30,7 @@ public void ProcessRequest() public void RunSQLFromFile() { - using (FileStream fs = new FileStream("myfile.txt", FileMode.Open)) + using (FileStream fs = new FileStream("myfile.txt", FileMode.Open)) // $ Source[cs/sql-injection] { using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) { @@ -42,7 +42,7 @@ public void RunSQLFromFile() continue; using (var connection = new SQLiteConnection("")) { - var cmd = new SQLiteCommand(sql, connection); + var cmd = new SQLiteCommand(sql, connection); // $ Alert[cs/sql-injection] cmd.ExecuteScalar(); } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.cs b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.cs index 38dcf94ef8d0..e7dd2f732603 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.cs @@ -35,8 +35,8 @@ public void GetDataSetByCategory() using (var connection = new SqlConnection(connectionString)) { var query1 = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" - + categoryTextBox.Text + "' ORDER BY PRICE"; - var adapter = new SqlDataAdapter(query1, connection); + + categoryTextBox.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var adapter = new SqlDataAdapter(query1, connection); // $ Alert[cs/sql-injection] var result = new DataSet(); adapter.Fill(result); } @@ -70,9 +70,9 @@ public void GetDataSetByCategory() { // BAD: Use EntityFramework direct Sql execution methods var query1 = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" - + categoryTextBox.Text + "' ORDER BY PRICE"; - context.Database.ExecuteSqlCommand(query1); - context.Database.SqlQuery(query1); + + categoryTextBox.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + context.Database.ExecuteSqlCommand(query1); // $ Alert[cs/sql-injection] + context.Database.SqlQuery(query1); // $ Alert[cs/sql-injection] // GOOD: Use EntityFramework direct Sql execution methods with parameter var query2 = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=" + "@p0 ORDER BY PRICE"; @@ -84,8 +84,8 @@ public void GetDataSetByCategory() using (var connection = new SqlConnection(connectionString)) { var query1 = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" - + box1.Text + "' ORDER BY PRICE"; - var adapter = new SqlDataAdapter(query1, connection); + + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var adapter = new SqlDataAdapter(query1, connection); // $ Alert[cs/sql-injection] var result = new DataSet(); adapter.Fill(result); } @@ -94,9 +94,9 @@ public void GetDataSetByCategory() using (var connection = new SqlConnection(connectionString)) { var queryString = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" - + box1.Text + "' ORDER BY PRICE"; - var cmd = new SqlCommand(queryString); - var adapter = new SqlDataAdapter(cmd); + + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var cmd = new SqlCommand(queryString); // $ Alert[cs/sql-injection] + var adapter = new SqlDataAdapter(cmd); // $ Alert[cs/sql-injection] var result = new DataSet(); adapter.Fill(result); } @@ -105,9 +105,9 @@ public void GetDataSetByCategory() using (var connection = new SqlConnection(connectionString)) { var queryString = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" - + Console.ReadLine()! + "' ORDER BY PRICE"; - var cmd = new SqlCommand(queryString); - var adapter = new SqlDataAdapter(cmd); + + Console.ReadLine()! + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var cmd = new SqlCommand(queryString); // $ Alert[cs/sql-injection] + var adapter = new SqlDataAdapter(cmd); // $ Alert[cs/sql-injection] var result = new DataSet(); adapter.Fill(result); } @@ -119,14 +119,14 @@ public void GetDataSetByCategory() public abstract class MyController : Controller { [HttpPost("{userId:string}")] - public async Task GetUserById([FromRoute] string userId, CancellationToken cancellationToken) + public async Task GetUserById([FromRoute] string userId, CancellationToken cancellationToken) // $ Source[cs/sql-injection] { // This is a vulnerable method due to SQL injection string query = "SELECT * FROM Users WHERE UserId = '" + userId + "'"; using (SqlConnection connection = new SqlConnection("YourConnectionString")) { - SqlCommand command = new SqlCommand(query, connection); + SqlCommand command = new SqlCommand(query, connection); // $ Alert[cs/sql-injection] connection.Open(); SqlDataReader reader = command.ExecuteReader(); diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.qlref b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.qlref index 56829ee8e8fc..1421faac8072 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.qlref +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.qlref @@ -1,2 +1,4 @@ query: Security Features/CWE-089/SqlInjection.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionDapper.cs b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionDapper.cs index ec54c70ddeb2..360264c5776f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionDapper.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionDapper.cs @@ -17,8 +17,8 @@ public void Bad01() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; - var result = connection.Query(query); + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var result = connection.Query(query); // $ Alert[cs/sql-injection] } } @@ -26,8 +26,8 @@ public async Task Bad02() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; - var result = await connection.QueryAsync(query); + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var result = await connection.QueryAsync(query); // $ Alert[cs/sql-injection] } } @@ -35,8 +35,8 @@ public async Task Bad03() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; - var result = await connection.QueryFirstAsync(query); + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + var result = await connection.QueryFirstAsync(query); // $ Alert[cs/sql-injection] } } @@ -44,9 +44,9 @@ public async Task Bad04() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] - await connection.ExecuteAsync(query); + await connection.ExecuteAsync(query); // $ Alert[cs/sql-injection] } } @@ -54,8 +54,8 @@ public void Bad05() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; - connection.ExecuteScalar(query); + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + connection.ExecuteScalar(query); // $ Alert[cs/sql-injection] } } @@ -63,8 +63,8 @@ public void Bad06() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; - connection.ExecuteReader(query); + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] + connection.ExecuteReader(query); // $ Alert[cs/sql-injection] } } @@ -72,9 +72,9 @@ public async Task Bad07() { using (var connection = new SqlConnection(connectionString)) { - var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; + var query = "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" + box1.Text + "' ORDER BY PRICE"; // $ Source[cs/sql-injection] - var comDef = new CommandDefinition(query); + var comDef = new CommandDefinition(query); // $ Alert[cs/sql-injection] var result = await connection.QueryFirstAsync(comDef); } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionSqlite.cs b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionSqlite.cs index 6654a8fdec10..c7b6f1db072f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionSqlite.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionSqlite.cs @@ -16,12 +16,12 @@ class SqlInjection public void InjectUntrustedData() { // BAD: untrusted data is not sanitized. - SQLiteCommand cmd = new SQLiteCommand(untrustedData.Text); + SQLiteCommand cmd = new SQLiteCommand(untrustedData.Text); // $ Alert[cs/sql-injection] // BAD: untrusted data is not sanitized. using (var connection = new SQLiteConnection(connectionString)) { - cmd = new SQLiteCommand(untrustedData.Text, connection); + cmd = new SQLiteCommand(untrustedData.Text, connection); // $ Source[cs/sql-injection] Alert[cs/sql-injection] } SQLiteDataAdapter adapter; @@ -30,23 +30,23 @@ public void InjectUntrustedData() // BAD: untrusted data is not sanitized. using (var connection = new SQLiteConnection(connectionString)) { - adapter = new SQLiteDataAdapter(untrustedData.Text, connection); + adapter = new SQLiteDataAdapter(untrustedData.Text, connection); // $ Alert[cs/sql-injection] result = new DataSet(); adapter.Fill(result); } // BAD: untrusted data is not sanitized. - adapter = new SQLiteDataAdapter(untrustedData.Text, connectionString); + adapter = new SQLiteDataAdapter(untrustedData.Text, connectionString); // $ Alert[cs/sql-injection] result = new DataSet(); adapter.Fill(result); // BAD: untrusted data is not sanitized. - adapter = new SQLiteDataAdapter(cmd); + adapter = new SQLiteDataAdapter(cmd); // $ Alert[cs/sql-injection] result = new DataSet(); adapter.Fill(result); // BAD: untrusted data as filename is not sanitized. - using (FileStream fs = new FileStream(untrustedData.Text, FileMode.Open)) + using (FileStream fs = new FileStream(untrustedData.Text, FileMode.Open)) // $ Source[cs/sql-injection] { using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) { @@ -58,7 +58,7 @@ public void InjectUntrustedData() continue; using (var connection = new SQLiteConnection("")) { - cmd = new SQLiteCommand(sql, connection); + cmd = new SQLiteCommand(sql, connection); // $ Alert[cs/sql-injection] cmd.ExecuteScalar(); } } @@ -66,4 +66,4 @@ public void InjectUntrustedData() } } } -} \ No newline at end of file +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.cs b/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.cs index f60accb818d5..a433d5493851 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.cs @@ -34,9 +34,9 @@ public void StringInBuilderProperty() public void StringInInitializer() { string connectString = "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false"; - SqlConnectionStringBuilder conBuilder = new SqlConnectionStringBuilder(connectString) { Encrypt = true }; + SqlConnectionStringBuilder conBuilder = new SqlConnectionStringBuilder(connectString) { Encrypt = true}; } - + public void TriggerThis() { diff --git a/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected b/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected index 8d76d8d2b9cd..83fdf530423a 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected @@ -1,14 +1,9 @@ edges -| InsecureSQLConnection.cs:36:20:36:32 | access to local variable connectString : String | InsecureSQLConnection.cs:37:84:37:96 | access to local variable connectString | provenance | | -| InsecureSQLConnection.cs:36:36:36:97 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false" : String | InsecureSQLConnection.cs:36:20:36:32 | access to local variable connectString : String | provenance | | | InsecureSQLConnection.cs:49:20:49:32 | access to local variable connectString : String | InsecureSQLConnection.cs:52:81:52:93 | access to local variable connectString | provenance | | | InsecureSQLConnection.cs:50:17:50:64 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | InsecureSQLConnection.cs:49:20:49:32 | access to local variable connectString : String | provenance | | | InsecureSQLConnection.cs:58:20:58:32 | access to local variable connectString : String | InsecureSQLConnection.cs:61:81:61:93 | access to local variable connectString | provenance | | | InsecureSQLConnection.cs:59:17:59:78 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false" : String | InsecureSQLConnection.cs:58:20:58:32 | access to local variable connectString : String | provenance | | nodes -| InsecureSQLConnection.cs:36:20:36:32 | access to local variable connectString : String | semmle.label | access to local variable connectString : String | -| InsecureSQLConnection.cs:36:36:36:97 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false" : String | semmle.label | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false" : String | -| InsecureSQLConnection.cs:37:84:37:96 | access to local variable connectString | semmle.label | access to local variable connectString | | InsecureSQLConnection.cs:44:52:44:128 | "Server=myServerName\\myInstanceName;Database=myDataBase;User Id=myUsername;" | semmle.label | "Server=myServerName\\myInstanceName;Database=myDataBase;User Id=myUsername;" | | InsecureSQLConnection.cs:49:20:49:32 | access to local variable connectString : String | semmle.label | access to local variable connectString : String | | InsecureSQLConnection.cs:50:17:50:64 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | semmle.label | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.cs index 93dede10b15d..a2d0c24ff4c4 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.cs @@ -11,11 +11,11 @@ public static void M(FileStream fs) { var formatter = new BinaryFormatter(); // BAD - var a = (Func)formatter.Deserialize(fs); + var a = (Func)formatter.Deserialize(fs); // $ Alert[cs/deserialized-delegate] // BAD - var b = (Expression>)formatter.Deserialize(fs); + var b = (Expression>)formatter.Deserialize(fs); // $ Alert[cs/deserialized-delegate] // BAD - var c = (D)formatter.Deserialize(fs); + var c = (D)formatter.Deserialize(fs); // $ Alert[cs/deserialized-delegate] // GOOD var d = (int)formatter.Deserialize(fs); } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.qlref b/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.qlref index 913c61338c47..dbfd493cef5b 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.qlref +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegate.qlref @@ -1 +1,4 @@ -Security Features/CWE-502/DeserializedDelegate.ql \ No newline at end of file +query: Security Features/CWE-502/DeserializedDelegate.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegateBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegateBad.cs index 12b2dc76987d..48c2ed2b4140 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegateBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/DeserializedDelegate/DeserializedDelegateBad.cs @@ -8,7 +8,7 @@ public static int InvokeSerialized(FileStream fs) { var formatter = new BinaryFormatter(); // BAD - var f = (Func)formatter.Deserialize(fs); + var f = (Func)formatter.Deserialize(fs); // $ Alert[cs/deserialized-delegate] return f(); } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/BinaryFormatterBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/BinaryFormatterBad.cs index 1170a37ad3b9..7fbe5499dbb7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/BinaryFormatterBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/BinaryFormatterBad.cs @@ -7,6 +7,6 @@ public static object Deserialize(Stream s) { var ds = new BinaryFormatter(); // BAD - return ds.Deserialize(s); + return ds.Deserialize(s); // $ Alert[cs/unsafe-deserialization] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractJsonSerializerBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractJsonSerializerBad.cs index 1256428176c5..2e2b80cc25ae 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractJsonSerializerBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractJsonSerializerBad.cs @@ -8,6 +8,6 @@ public static object Deserialize(Type type, Stream s) { var ds = new DataContractJsonSerializer(type); // BAD - return ds.ReadObject(s); + return ds.ReadObject(s); // $ Alert[cs/unsafe-deserialization] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractSerializerBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractSerializerBad.cs index 35cff0b45f1d..e98bd0c0aa0b 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractSerializerBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/DataContractSerializerBad.cs @@ -8,6 +8,6 @@ public static object Deserialize(Type type, Stream s) { var ds = new DataContractSerializer(type); // BAD - return ds.ReadObject(s); + return ds.ReadObject(s); // $ Alert[cs/unsafe-deserialization] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/ResourceReaderBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/ResourceReaderBad.cs index 2da5dc1aa6a5..e39a87769900 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/ResourceReaderBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/ResourceReaderBad.cs @@ -6,11 +6,11 @@ class BadResourceReader { public static void Deserialize(Stream s) { - var ds = new ResourceReader(s); + var ds = new ResourceReader(s); // $ Alert[cs/unsafe-deserialization] // BAD var dict = ds.GetEnumerator(); while (dict.MoveNext()) - Console.WriteLine(" {0}: '{1}' (Type {2})", + Console.WriteLine(" {0}: '{1}' (Type {2})", dict.Key, dict.Value, dict.Value.GetType().Name); ds.Close(); } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserialization.qlref b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserialization.qlref index 78efa2399c0b..25a133ff8a71 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserialization.qlref +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserialization.qlref @@ -1 +1,4 @@ -Security Features/CWE-502/UnsafeDeserialization.ql \ No newline at end of file +query: Security Features/CWE-502/UnsafeDeserialization.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserializationBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserializationBad.cs index 385e700a0bf9..ce178961b9b6 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserializationBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/UnsafeDeserializationBad.cs @@ -6,6 +6,6 @@ public static object Deserialize(string s) { JavaScriptSerializer sr = new JavaScriptSerializer(new SimpleTypeResolver()); // BAD - return sr.DeserializeObject(s); + return sr.DeserializeObject(s); // $ Alert[cs/unsafe-deserialization] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlObjectSerializerBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlObjectSerializerBad.cs index 4096934da0ba..a8e1bc42e2fc 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlObjectSerializerBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlObjectSerializerBad.cs @@ -8,6 +8,6 @@ public static object Deserialize(Type type, Stream s) { XmlObjectSerializer ds = new DataContractSerializer(type); // BAD - return ds.ReadObject(s); + return ds.ReadObject(s); // $ Alert[cs/unsafe-deserialization] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlSerializerBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlSerializerBad.cs index 4d32bae9c082..a5f3287cd55d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlSerializerBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/XmlSerializerBad.cs @@ -8,6 +8,6 @@ public static object Deserialize(Type type, Stream s) { var ds = new XmlSerializer(type); // BAD - return ds.Deserialize(s); + return ds.Deserialize(s); // $ Alert[cs/unsafe-deserialization] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/BinaryFormatterUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/BinaryFormatterUntrustedInputBad.cs index 73c6c35413bc..8f19580b68a8 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/BinaryFormatterUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/BinaryFormatterUntrustedInputBad.cs @@ -1,14 +1,25 @@ -using System.Web.UI.WebControls; -using System.Runtime.Serialization.Formatters.Binary; +using System; using System.IO; +using System.Runtime.Serialization.Formatters.Binary; using System.Text; +using System.Web.UI.WebControls; -class BadBinaryFormatter +class BadBinaryFormatter1 { public static object Deserialize(TextBox textBox) { var ds = new BinaryFormatter(); // BAD - return ds.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(textBox.Text))); + return ds.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(textBox.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] + } +} + +class BadBinaryFormatter2 +{ + public static object Deserialize(TextBox type, TextBox data) + { + var ds = new BinaryFormatter(); + // BAD + return ds.Deserialize(new MemoryStream(Convert.FromBase64String(data.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractJsonSerializerUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractJsonSerializerUntrustedInputBad.cs index 2d3efe3ae269..e1e389c0a67f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractJsonSerializerUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractJsonSerializerUntrustedInputBad.cs @@ -10,6 +10,6 @@ public static object Deserialize(TextBox type, TextBox data) { var ds = new DataContractJsonSerializer(Type.GetType(type.Text)); // BAD - return ds.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); + return ds.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractSerializerUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractSerializerUntrustedInputBad.cs index f4f266ed3e00..2e979b2387d6 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractSerializerUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/DataContractSerializerUntrustedInputBad.cs @@ -10,6 +10,6 @@ public static object Deserialize(TextBox type, TextBox data) { var ds = new DataContractSerializer(Type.GetType(type.Text)); // BAD - return ds.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); + return ds.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/ResourceReaderUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/ResourceReaderUntrustedInputBad.cs index cd5468afc2d2..33ca758ac9cf 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/ResourceReaderUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/ResourceReaderUntrustedInputBad.cs @@ -8,11 +8,11 @@ class BadResourceReader { public static void Deserialize(TextBox data) { - var ds = new ResourceReader(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); + var ds = new ResourceReader(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] // BAD var dict = ds.GetEnumerator(); while (dict.MoveNext()) - Console.WriteLine(" {0}: '{1}' (Type {2})", + Console.WriteLine(" {0}: '{1}' (Type {2})", dict.Key, dict.Value, dict.Value.GetType().Name); ds.Close(); } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected index 37cba1c28bff..c3377fcb04f0 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected @@ -1,5 +1,6 @@ #select -| BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | BinaryFormatterUntrustedInputBad.cs:12:71:12:77 | access to parameter textBox : TextBox | BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | BinaryFormatterUntrustedInputBad.cs:12:71:12:77 | access to parameter textBox : TextBox | User-provided data | +| BinaryFormatterUntrustedInputBad.cs:13:31:13:84 | object creation of type MemoryStream | BinaryFormatterUntrustedInputBad.cs:13:71:13:77 | access to parameter textBox : TextBox | BinaryFormatterUntrustedInputBad.cs:13:31:13:84 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | BinaryFormatterUntrustedInputBad.cs:13:71:13:77 | access to parameter textBox : TextBox | User-provided data | +| BinaryFormatterUntrustedInputBad.cs:23:31:23:83 | object creation of type MemoryStream | BinaryFormatterUntrustedInputBad.cs:23:73:23:76 | access to parameter data : TextBox | BinaryFormatterUntrustedInputBad.cs:23:31:23:83 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | BinaryFormatterUntrustedInputBad.cs:23:73:23:76 | access to parameter data : TextBox | User-provided data | | DataContractJsonSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractJsonSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | User-provided data | | DataContractSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | DataContractSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | DataContractSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | User-provided data | | ResourceReaderUntrustedInputBad.cs:11:37:11:87 | object creation of type MemoryStream | ResourceReaderUntrustedInputBad.cs:11:77:11:80 | access to parameter data : TextBox | ResourceReaderUntrustedInputBad.cs:11:37:11:87 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | ResourceReaderUntrustedInputBad.cs:11:77:11:80 | access to parameter data : TextBox | User-provided data | @@ -7,9 +8,12 @@ | XmlObjectSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | XmlObjectSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | XmlObjectSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | XmlObjectSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | User-provided data | | XmlSerializerUntrustedInputBad.cs:13:31:13:81 | object creation of type MemoryStream | XmlSerializerUntrustedInputBad.cs:13:71:13:74 | access to parameter data : TextBox | XmlSerializerUntrustedInputBad.cs:13:31:13:81 | object creation of type MemoryStream | $@ flows to unsafe deserializer. | XmlSerializerUntrustedInputBad.cs:13:71:13:74 | access to parameter data : TextBox | User-provided data | edges -| BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | provenance | MaD:1 | -| BinaryFormatterUntrustedInputBad.cs:12:71:12:77 | access to parameter textBox : TextBox | BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | provenance | MaD:3 | -| BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | provenance | MaD:2 | +| BinaryFormatterUntrustedInputBad.cs:13:48:13:83 | call to method GetBytes : Byte[] | BinaryFormatterUntrustedInputBad.cs:13:31:13:84 | object creation of type MemoryStream | provenance | MaD:1 | +| BinaryFormatterUntrustedInputBad.cs:13:71:13:77 | access to parameter textBox : TextBox | BinaryFormatterUntrustedInputBad.cs:13:71:13:82 | access to property Text : String | provenance | MaD:3 | +| BinaryFormatterUntrustedInputBad.cs:13:71:13:82 | access to property Text : String | BinaryFormatterUntrustedInputBad.cs:13:48:13:83 | call to method GetBytes : Byte[] | provenance | MaD:2 | +| BinaryFormatterUntrustedInputBad.cs:23:48:23:82 | call to method FromBase64String : Byte[] [element] : Object | BinaryFormatterUntrustedInputBad.cs:23:31:23:83 | object creation of type MemoryStream | provenance | MaD:1 | +| BinaryFormatterUntrustedInputBad.cs:23:73:23:76 | access to parameter data : TextBox | BinaryFormatterUntrustedInputBad.cs:23:73:23:81 | access to property Text : String | provenance | MaD:3 | +| BinaryFormatterUntrustedInputBad.cs:23:73:23:81 | access to property Text : String | BinaryFormatterUntrustedInputBad.cs:23:48:23:82 | call to method FromBase64String : Byte[] [element] : Object | provenance | MaD:4 | | DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | DataContractJsonSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | provenance | MaD:1 | | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | provenance | MaD:3 | | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | provenance | MaD:2 | @@ -27,14 +31,19 @@ edges | XmlSerializerUntrustedInputBad.cs:13:71:13:74 | access to parameter data : TextBox | XmlSerializerUntrustedInputBad.cs:13:71:13:79 | access to property Text : String | provenance | MaD:3 | | XmlSerializerUntrustedInputBad.cs:13:71:13:79 | access to property Text : String | XmlSerializerUntrustedInputBad.cs:13:48:13:80 | call to method GetBytes : Byte[] | provenance | MaD:2 | models -| 1 | Summary: System.IO; MemoryStream; false; MemoryStream; (System.Byte[]); ; Argument[0]; Argument[this]; taint; manual | +| 1 | Summary: System.IO; MemoryStream; false; MemoryStream; (System.Byte[]); ; Argument[0].Element; Argument[this]; taint; manual | | 2 | Summary: System.Text; Encoding; true; GetBytes; (System.String); ; Argument[0]; ReturnValue; taint; manual | | 3 | Summary: System.Web.UI.WebControls; TextBox; false; get_Text; (); ; Argument[this]; ReturnValue; taint; manual | +| 4 | Summary: System; Convert; false; FromBase64String; (System.String); ; Argument[0]; ReturnValue.Element; taint; manual | nodes -| BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | semmle.label | object creation of type MemoryStream | -| BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | semmle.label | call to method GetBytes : Byte[] | -| BinaryFormatterUntrustedInputBad.cs:12:71:12:77 | access to parameter textBox : TextBox | semmle.label | access to parameter textBox : TextBox | -| BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | semmle.label | access to property Text : String | +| BinaryFormatterUntrustedInputBad.cs:13:31:13:84 | object creation of type MemoryStream | semmle.label | object creation of type MemoryStream | +| BinaryFormatterUntrustedInputBad.cs:13:48:13:83 | call to method GetBytes : Byte[] | semmle.label | call to method GetBytes : Byte[] | +| BinaryFormatterUntrustedInputBad.cs:13:71:13:77 | access to parameter textBox : TextBox | semmle.label | access to parameter textBox : TextBox | +| BinaryFormatterUntrustedInputBad.cs:13:71:13:82 | access to property Text : String | semmle.label | access to property Text : String | +| BinaryFormatterUntrustedInputBad.cs:23:31:23:83 | object creation of type MemoryStream | semmle.label | object creation of type MemoryStream | +| BinaryFormatterUntrustedInputBad.cs:23:48:23:82 | call to method FromBase64String : Byte[] [element] : Object | semmle.label | call to method FromBase64String : Byte[] [element] : Object | +| BinaryFormatterUntrustedInputBad.cs:23:73:23:76 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | +| BinaryFormatterUntrustedInputBad.cs:23:73:23:81 | access to property Text : String | semmle.label | access to property Text : String | | DataContractJsonSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | semmle.label | object creation of type MemoryStream | | DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | semmle.label | call to method GetBytes : Byte[] | | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.qlref b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.qlref index a1ffb72bf108..195452ad5675 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.qlref +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.qlref @@ -1,2 +1,4 @@ query: Security Features/CWE-502/UnsafeDeserializationUntrustedInput.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInputBad.cs index db2b25097bac..6af634af09c5 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInputBad.cs @@ -7,6 +7,6 @@ public static object Deserialize(TextBox textBox) { JavaScriptSerializer sr = new JavaScriptSerializer(new SimpleTypeResolver()); // BAD - return sr.DeserializeObject(textBox.Text); + return sr.DeserializeObject(textBox.Text); // $ Alert[cs/unsafe-deserialization-untrusted-input] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlObjectSerializerUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlObjectSerializerUntrustedInputBad.cs index b525dd28692b..c7a0d94cb45b 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlObjectSerializerUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlObjectSerializerUntrustedInputBad.cs @@ -10,6 +10,6 @@ public static object Deserialize(TextBox type, TextBox data) { XmlObjectSerializer ds = new DataContractSerializer(Type.GetType(type.Text)); // BAD - return ds.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); + return ds.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlSerializerUntrustedInputBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlSerializerUntrustedInputBad.cs index f658f2a9e1a7..b5299c01f3f4 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlSerializerUntrustedInputBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/XmlSerializerUntrustedInputBad.cs @@ -10,6 +10,6 @@ public static object Deserialize(TextBox type, TextBox data) { var ds = new XmlSerializer(Type.GetType(type.Text)); // BAD - return ds.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); + return ds.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(data.Text))); // $ Alert[cs/unsafe-deserialization-untrusted-input] } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs index c8c5cbb00988..90bdeef83368 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/Test.cs @@ -14,9 +14,9 @@ public static object Deserialize1(TextBox data) public static object Deserialize2(TextBox data) { - return JsonConvert.DeserializeObject(data.Text, new JsonSerializerSettings + return JsonConvert.DeserializeObject(data.Text, new JsonSerializerSettings // $ Alert[cs/unsafe-deserialization-untrusted-input] { - TypeNameHandling = TypeNameHandling.Auto // BAD + TypeNameHandling = TypeNameHandling.Auto }); } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref index a1ffb72bf108..195452ad5675 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.qlref @@ -1,2 +1,4 @@ query: Security Features/CWE-502/UnsafeDeserializationUntrustedInput.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.cs b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.cs new file mode 100644 index 000000000000..c56fc0888b00 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.cs @@ -0,0 +1,1104 @@ +// This file contains auto-generated code. +// Generated from `Azure.Core, Version=1.38.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8`. +namespace Azure +{ + public abstract class AsyncPageable : System.Collections.Generic.IAsyncEnumerable + { + public abstract System.Collections.Generic.IAsyncEnumerable> AsPages(string continuationToken = default(string), int? pageSizeHint = default(int?)); + protected virtual System.Threading.CancellationToken CancellationToken { get => throw null; } + protected AsyncPageable() => throw null; + protected AsyncPageable(System.Threading.CancellationToken cancellationToken) => throw null; + public override bool Equals(object obj) => throw null; + public static Azure.AsyncPageable FromPages(System.Collections.Generic.IEnumerable> pages) => throw null; + public virtual System.Collections.Generic.IAsyncEnumerator GetAsyncEnumerator(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int GetHashCode() => throw null; + public override string ToString() => throw null; + } + public static partial class AzureCoreExtensions + { + public static dynamic ToDynamicFromJson(this System.BinaryData utf8Json) => throw null; + public static dynamic ToDynamicFromJson(this System.BinaryData utf8Json, Azure.Core.Serialization.JsonPropertyNames propertyNameFormat, string dateTimeFormat = default(string)) => throw null; + public static T ToObject(this System.BinaryData data, Azure.Core.Serialization.ObjectSerializer serializer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.ValueTask ToObjectAsync(this System.BinaryData data, Azure.Core.Serialization.ObjectSerializer serializer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static object ToObjectFromJson(this System.BinaryData data) => throw null; + } + public class AzureKeyCredential + { + public AzureKeyCredential(string key) => throw null; + public string Key { get => throw null; } + public void Update(string key) => throw null; + } + public class AzureNamedKeyCredential + { + public AzureNamedKeyCredential(string name, string key) => throw null; + public void Deconstruct(out string name, out string key) => throw null; + public string Name { get => throw null; } + public void Update(string name, string key) => throw null; + } + public class AzureSasCredential + { + public AzureSasCredential(string signature) => throw null; + public string Signature { get => throw null; } + public void Update(string signature) => throw null; + } + namespace Core + { + public struct AccessToken + { + public AccessToken(string accessToken, System.DateTimeOffset expiresOn) => throw null; + public override bool Equals(object obj) => throw null; + public System.DateTimeOffset ExpiresOn { get => throw null; } + public override int GetHashCode() => throw null; + public string Token { get => throw null; } + } + public struct AzureLocation : System.IEquatable + { + public static Azure.Core.AzureLocation AustraliaCentral { get => throw null; } + public static Azure.Core.AzureLocation AustraliaCentral2 { get => throw null; } + public static Azure.Core.AzureLocation AustraliaEast { get => throw null; } + public static Azure.Core.AzureLocation AustraliaSoutheast { get => throw null; } + public static Azure.Core.AzureLocation BrazilSouth { get => throw null; } + public static Azure.Core.AzureLocation BrazilSoutheast { get => throw null; } + public static Azure.Core.AzureLocation CanadaCentral { get => throw null; } + public static Azure.Core.AzureLocation CanadaEast { get => throw null; } + public static Azure.Core.AzureLocation CentralIndia { get => throw null; } + public static Azure.Core.AzureLocation CentralUS { get => throw null; } + public static Azure.Core.AzureLocation ChinaEast { get => throw null; } + public static Azure.Core.AzureLocation ChinaEast2 { get => throw null; } + public static Azure.Core.AzureLocation ChinaEast3 { get => throw null; } + public static Azure.Core.AzureLocation ChinaNorth { get => throw null; } + public static Azure.Core.AzureLocation ChinaNorth2 { get => throw null; } + public static Azure.Core.AzureLocation ChinaNorth3 { get => throw null; } + public AzureLocation(string location) => throw null; + public AzureLocation(string name, string displayName) => throw null; + public string DisplayName { get => throw null; } + public static Azure.Core.AzureLocation EastAsia { get => throw null; } + public static Azure.Core.AzureLocation EastUS { get => throw null; } + public static Azure.Core.AzureLocation EastUS2 { get => throw null; } + public bool Equals(Azure.Core.AzureLocation other) => throw null; + public override bool Equals(object obj) => throw null; + public static Azure.Core.AzureLocation FranceCentral { get => throw null; } + public static Azure.Core.AzureLocation FranceSouth { get => throw null; } + public static Azure.Core.AzureLocation GermanyCentral { get => throw null; } + public static Azure.Core.AzureLocation GermanyNorth { get => throw null; } + public static Azure.Core.AzureLocation GermanyNorthEast { get => throw null; } + public static Azure.Core.AzureLocation GermanyWestCentral { get => throw null; } + public override int GetHashCode() => throw null; + public static Azure.Core.AzureLocation IsraelCentral { get => throw null; } + public static Azure.Core.AzureLocation ItalyNorth { get => throw null; } + public static Azure.Core.AzureLocation JapanEast { get => throw null; } + public static Azure.Core.AzureLocation JapanWest { get => throw null; } + public static Azure.Core.AzureLocation KoreaCentral { get => throw null; } + public static Azure.Core.AzureLocation KoreaSouth { get => throw null; } + public string Name { get => throw null; } + public static Azure.Core.AzureLocation NorthCentralUS { get => throw null; } + public static Azure.Core.AzureLocation NorthEurope { get => throw null; } + public static Azure.Core.AzureLocation NorwayEast { get => throw null; } + public static Azure.Core.AzureLocation NorwayWest { get => throw null; } + public static bool operator ==(Azure.Core.AzureLocation left, Azure.Core.AzureLocation right) => throw null; + public static implicit operator Azure.Core.AzureLocation(string location) => throw null; + public static implicit operator string(Azure.Core.AzureLocation location) => throw null; + public static bool operator !=(Azure.Core.AzureLocation left, Azure.Core.AzureLocation right) => throw null; + public static Azure.Core.AzureLocation PolandCentral { get => throw null; } + public static Azure.Core.AzureLocation QatarCentral { get => throw null; } + public static Azure.Core.AzureLocation SouthAfricaNorth { get => throw null; } + public static Azure.Core.AzureLocation SouthAfricaWest { get => throw null; } + public static Azure.Core.AzureLocation SouthCentralUS { get => throw null; } + public static Azure.Core.AzureLocation SoutheastAsia { get => throw null; } + public static Azure.Core.AzureLocation SouthIndia { get => throw null; } + public static Azure.Core.AzureLocation SwedenCentral { get => throw null; } + public static Azure.Core.AzureLocation SwedenSouth { get => throw null; } + public static Azure.Core.AzureLocation SwitzerlandNorth { get => throw null; } + public static Azure.Core.AzureLocation SwitzerlandWest { get => throw null; } + public override string ToString() => throw null; + public static Azure.Core.AzureLocation UAECentral { get => throw null; } + public static Azure.Core.AzureLocation UAENorth { get => throw null; } + public static Azure.Core.AzureLocation UKSouth { get => throw null; } + public static Azure.Core.AzureLocation UKWest { get => throw null; } + public static Azure.Core.AzureLocation USDoDCentral { get => throw null; } + public static Azure.Core.AzureLocation USDoDEast { get => throw null; } + public static Azure.Core.AzureLocation USGovArizona { get => throw null; } + public static Azure.Core.AzureLocation USGovIowa { get => throw null; } + public static Azure.Core.AzureLocation USGovTexas { get => throw null; } + public static Azure.Core.AzureLocation USGovVirginia { get => throw null; } + public static Azure.Core.AzureLocation WestCentralUS { get => throw null; } + public static Azure.Core.AzureLocation WestEurope { get => throw null; } + public static Azure.Core.AzureLocation WestIndia { get => throw null; } + public static Azure.Core.AzureLocation WestUS { get => throw null; } + public static Azure.Core.AzureLocation WestUS2 { get => throw null; } + public static Azure.Core.AzureLocation WestUS3 { get => throw null; } + } + public abstract class ClientOptions + { + public void AddPolicy(Azure.Core.Pipeline.HttpPipelinePolicy policy, Azure.Core.HttpPipelinePosition position) => throw null; + protected ClientOptions() => throw null; + protected ClientOptions(Azure.Core.DiagnosticsOptions diagnostics) => throw null; + public static Azure.Core.ClientOptions Default { get => throw null; } + public Azure.Core.DiagnosticsOptions Diagnostics { get => throw null; } + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public Azure.Core.RetryOptions Retry { get => throw null; } + public Azure.Core.Pipeline.HttpPipelinePolicy RetryPolicy { get => throw null; set { } } + public override string ToString() => throw null; + public Azure.Core.Pipeline.HttpPipelineTransport Transport { get => throw null; set { } } + } + public struct ContentType : System.IEquatable, System.IEquatable + { + public static Azure.Core.ContentType ApplicationJson { get => throw null; } + public static Azure.Core.ContentType ApplicationOctetStream { get => throw null; } + public ContentType(string contentType) => throw null; + public bool Equals(Azure.Core.ContentType other) => throw null; + public bool Equals(string other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public static bool operator ==(Azure.Core.ContentType left, Azure.Core.ContentType right) => throw null; + public static implicit operator Azure.Core.ContentType(string contentType) => throw null; + public static bool operator !=(Azure.Core.ContentType left, Azure.Core.ContentType right) => throw null; + public static Azure.Core.ContentType TextPlain { get => throw null; } + public override string ToString() => throw null; + } + namespace Cryptography + { + public interface IKeyEncryptionKey + { + string KeyId { get; } + byte[] UnwrapKey(string algorithm, System.ReadOnlyMemory encryptedKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UnwrapKeyAsync(string algorithm, System.ReadOnlyMemory encryptedKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + byte[] WrapKey(string algorithm, System.ReadOnlyMemory key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task WrapKeyAsync(string algorithm, System.ReadOnlyMemory key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + public interface IKeyEncryptionKeyResolver + { + Azure.Core.Cryptography.IKeyEncryptionKey Resolve(string keyId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ResolveAsync(string keyId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + } + public abstract class DelayStrategy + { + public static Azure.Core.DelayStrategy CreateExponentialDelayStrategy(System.TimeSpan? initialDelay = default(System.TimeSpan?), System.TimeSpan? maxDelay = default(System.TimeSpan?)) => throw null; + public static Azure.Core.DelayStrategy CreateFixedDelayStrategy(System.TimeSpan? delay = default(System.TimeSpan?)) => throw null; + protected DelayStrategy(System.TimeSpan? maxDelay = default(System.TimeSpan?), double jitterFactor = default(double)) => throw null; + public System.TimeSpan GetNextDelay(Azure.Response response, int retryNumber) => throw null; + protected abstract System.TimeSpan GetNextDelayCore(Azure.Response response, int retryNumber); + protected static System.TimeSpan Max(System.TimeSpan val1, System.TimeSpan val2) => throw null; + protected static System.TimeSpan Min(System.TimeSpan val1, System.TimeSpan val2) => throw null; + } + public static class DelegatedTokenCredential + { + public static Azure.Core.TokenCredential Create(System.Func getToken, System.Func> getTokenAsync) => throw null; + public static Azure.Core.TokenCredential Create(System.Func getToken) => throw null; + } + namespace Diagnostics + { + public class AzureEventSourceListener : System.Diagnostics.Tracing.EventListener + { + public static Azure.Core.Diagnostics.AzureEventSourceListener CreateConsoleLogger(System.Diagnostics.Tracing.EventLevel level = default(System.Diagnostics.Tracing.EventLevel)) => throw null; + public static Azure.Core.Diagnostics.AzureEventSourceListener CreateTraceLogger(System.Diagnostics.Tracing.EventLevel level = default(System.Diagnostics.Tracing.EventLevel)) => throw null; + public AzureEventSourceListener(System.Action log, System.Diagnostics.Tracing.EventLevel level) => throw null; + protected override sealed void OnEventSourceCreated(System.Diagnostics.Tracing.EventSource eventSource) => throw null; + protected override sealed void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) => throw null; + public const string TraitName = default; + public const string TraitValue = default; + } + } + public class DiagnosticsOptions + { + public string ApplicationId { get => throw null; set { } } + protected DiagnosticsOptions() => throw null; + public static string DefaultApplicationId { get => throw null; set { } } + public bool IsDistributedTracingEnabled { get => throw null; set { } } + public bool IsLoggingContentEnabled { get => throw null; set { } } + public bool IsLoggingEnabled { get => throw null; set { } } + public bool IsTelemetryEnabled { get => throw null; set { } } + public int LoggedContentSizeLimit { get => throw null; set { } } + public System.Collections.Generic.IList LoggedHeaderNames { get => throw null; } + public System.Collections.Generic.IList LoggedQueryParameters { get => throw null; } + } + namespace Extensions + { + public interface IAzureClientBuilder where TOptions : class + { + } + public interface IAzureClientFactoryBuilder + { + Azure.Core.Extensions.IAzureClientBuilder RegisterClientFactory(System.Func clientFactory) where TOptions : class; + } + public interface IAzureClientFactoryBuilderWithConfiguration : Azure.Core.Extensions.IAzureClientFactoryBuilder + { + Azure.Core.Extensions.IAzureClientBuilder RegisterClientFactory(TConfiguration configuration) where TOptions : class; + } + public interface IAzureClientFactoryBuilderWithCredential + { + Azure.Core.Extensions.IAzureClientBuilder RegisterClientFactory(System.Func clientFactory, bool requiresCredential = default(bool)) where TOptions : class; + } + } + namespace GeoJson + { + public struct GeoArray : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList + { + public int Count { get => throw null; } + public struct Enumerator : System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator + { + object System.Collections.IEnumerator.Current { get => throw null; } + public T Current { get => throw null; } + public void Dispose() => throw null; + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + public Azure.Core.GeoJson.GeoArray.Enumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + public T this[int index] { get => throw null; } + } + public sealed class GeoBoundingBox : System.IEquatable + { + public GeoBoundingBox(double west, double south, double east, double north) => throw null; + public GeoBoundingBox(double west, double south, double east, double north, double? minAltitude, double? maxAltitude) => throw null; + public double East { get => throw null; } + public bool Equals(Azure.Core.GeoJson.GeoBoundingBox other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public double? MaxAltitude { get => throw null; } + public double? MinAltitude { get => throw null; } + public double North { get => throw null; } + public double South { get => throw null; } + public double this[int index] { get => throw null; } + public override string ToString() => throw null; + public double West { get => throw null; } + } + public sealed class GeoCollection : Azure.Core.GeoJson.GeoObject, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList + { + public int Count { get => throw null; } + public GeoCollection(System.Collections.Generic.IEnumerable geometries) => throw null; + public GeoCollection(System.Collections.Generic.IEnumerable geometries, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Azure.Core.GeoJson.GeoObject this[int index] { get => throw null; } + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public sealed class GeoLinearRing + { + public Azure.Core.GeoJson.GeoArray Coordinates { get => throw null; } + public GeoLinearRing(System.Collections.Generic.IEnumerable coordinates) => throw null; + } + public sealed class GeoLineString : Azure.Core.GeoJson.GeoObject + { + public Azure.Core.GeoJson.GeoArray Coordinates { get => throw null; } + public GeoLineString(System.Collections.Generic.IEnumerable coordinates) => throw null; + public GeoLineString(System.Collections.Generic.IEnumerable coordinates, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public sealed class GeoLineStringCollection : Azure.Core.GeoJson.GeoObject, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList + { + public Azure.Core.GeoJson.GeoArray> Coordinates { get => throw null; } + public int Count { get => throw null; } + public GeoLineStringCollection(System.Collections.Generic.IEnumerable lines) => throw null; + public GeoLineStringCollection(System.Collections.Generic.IEnumerable lines, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Azure.Core.GeoJson.GeoLineString this[int index] { get => throw null; } + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public abstract class GeoObject + { + public Azure.Core.GeoJson.GeoBoundingBox BoundingBox { get => throw null; } + public static Azure.Core.GeoJson.GeoObject Parse(string json) => throw null; + public override string ToString() => throw null; + public bool TryGetCustomProperty(string name, out object value) => throw null; + public abstract Azure.Core.GeoJson.GeoObjectType Type { get; } + } + public enum GeoObjectType + { + Point = 0, + MultiPoint = 1, + Polygon = 2, + MultiPolygon = 3, + LineString = 4, + MultiLineString = 5, + GeometryCollection = 6, + } + public sealed class GeoPoint : Azure.Core.GeoJson.GeoObject + { + public Azure.Core.GeoJson.GeoPosition Coordinates { get => throw null; } + public GeoPoint(double longitude, double latitude) => throw null; + public GeoPoint(double longitude, double latitude, double? altitude) => throw null; + public GeoPoint(Azure.Core.GeoJson.GeoPosition position) => throw null; + public GeoPoint(Azure.Core.GeoJson.GeoPosition position, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public sealed class GeoPointCollection : Azure.Core.GeoJson.GeoObject, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList + { + public Azure.Core.GeoJson.GeoArray Coordinates { get => throw null; } + public int Count { get => throw null; } + public GeoPointCollection(System.Collections.Generic.IEnumerable points) => throw null; + public GeoPointCollection(System.Collections.Generic.IEnumerable points, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Azure.Core.GeoJson.GeoPoint this[int index] { get => throw null; } + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public sealed class GeoPolygon : Azure.Core.GeoJson.GeoObject + { + public Azure.Core.GeoJson.GeoArray> Coordinates { get => throw null; } + public GeoPolygon(System.Collections.Generic.IEnumerable positions) => throw null; + public GeoPolygon(System.Collections.Generic.IEnumerable rings) => throw null; + public GeoPolygon(System.Collections.Generic.IEnumerable rings, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public Azure.Core.GeoJson.GeoLinearRing OuterRing { get => throw null; } + public System.Collections.Generic.IReadOnlyList Rings { get => throw null; } + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public sealed class GeoPolygonCollection : Azure.Core.GeoJson.GeoObject, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList + { + public Azure.Core.GeoJson.GeoArray>> Coordinates { get => throw null; } + public int Count { get => throw null; } + public GeoPolygonCollection(System.Collections.Generic.IEnumerable polygons) => throw null; + public GeoPolygonCollection(System.Collections.Generic.IEnumerable polygons, Azure.Core.GeoJson.GeoBoundingBox boundingBox, System.Collections.Generic.IReadOnlyDictionary customProperties) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public Azure.Core.GeoJson.GeoPolygon this[int index] { get => throw null; } + public override Azure.Core.GeoJson.GeoObjectType Type { get => throw null; } + } + public struct GeoPosition : System.IEquatable + { + public double? Altitude { get => throw null; } + public int Count { get => throw null; } + public GeoPosition(double longitude, double latitude) => throw null; + public GeoPosition(double longitude, double latitude, double? altitude) => throw null; + public bool Equals(Azure.Core.GeoJson.GeoPosition other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public double Latitude { get => throw null; } + public double Longitude { get => throw null; } + public static bool operator ==(Azure.Core.GeoJson.GeoPosition left, Azure.Core.GeoJson.GeoPosition right) => throw null; + public static bool operator !=(Azure.Core.GeoJson.GeoPosition left, Azure.Core.GeoJson.GeoPosition right) => throw null; + public double this[int index] { get => throw null; } + public override string ToString() => throw null; + } + } + public struct HttpHeader : System.IEquatable + { + public static class Common + { + public static readonly Azure.Core.HttpHeader FormUrlEncodedContentType; + public static readonly Azure.Core.HttpHeader JsonAccept; + public static readonly Azure.Core.HttpHeader JsonContentType; + public static readonly Azure.Core.HttpHeader OctetStreamContentType; + } + public HttpHeader(string name, string value) => throw null; + public override bool Equals(object obj) => throw null; + public bool Equals(Azure.Core.HttpHeader other) => throw null; + public override int GetHashCode() => throw null; + public string Name { get => throw null; } + public static class Names + { + public static string Accept { get => throw null; } + public static string Authorization { get => throw null; } + public static string ContentDisposition { get => throw null; } + public static string ContentLength { get => throw null; } + public static string ContentType { get => throw null; } + public static string Date { get => throw null; } + public static string ETag { get => throw null; } + public static string Host { get => throw null; } + public static string IfMatch { get => throw null; } + public static string IfModifiedSince { get => throw null; } + public static string IfNoneMatch { get => throw null; } + public static string IfUnmodifiedSince { get => throw null; } + public static string Prefer { get => throw null; } + public static string Range { get => throw null; } + public static string Referer { get => throw null; } + public static string UserAgent { get => throw null; } + public static string WwwAuthenticate { get => throw null; } + public static string XMsDate { get => throw null; } + public static string XMsRange { get => throw null; } + public static string XMsRequestId { get => throw null; } + } + public override string ToString() => throw null; + public string Value { get => throw null; } + } + public sealed class HttpMessage : System.IDisposable + { + public bool BufferResponse { get => throw null; set { } } + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public HttpMessage(Azure.Core.Request request, Azure.Core.ResponseClassifier responseClassifier) => throw null; + public void Dispose() => throw null; + public System.IO.Stream ExtractResponseContent() => throw null; + public bool HasResponse { get => throw null; } + public System.TimeSpan? NetworkTimeout { get => throw null; set { } } + public Azure.Core.MessageProcessingContext ProcessingContext { get => throw null; } + public Azure.Core.Request Request { get => throw null; } + public Azure.Response Response { get => throw null; set { } } + public Azure.Core.ResponseClassifier ResponseClassifier { get => throw null; set { } } + public void SetProperty(string name, object value) => throw null; + public void SetProperty(System.Type type, object value) => throw null; + public bool TryGetProperty(string name, out object value) => throw null; + public bool TryGetProperty(System.Type type, out object value) => throw null; + } + public enum HttpPipelinePosition + { + PerCall = 0, + PerRetry = 1, + BeforeTransport = 2, + } + public struct MessageProcessingContext + { + public int RetryNumber { get => throw null; set { } } + public System.DateTimeOffset StartTime { get => throw null; } + } + public static class MultipartResponse + { + public static Azure.Response[] Parse(Azure.Response response, bool expectCrLf, System.Threading.CancellationToken cancellationToken) => throw null; + public static System.Threading.Tasks.Task ParseAsync(Azure.Response response, bool expectCrLf, System.Threading.CancellationToken cancellationToken) => throw null; + } + namespace Pipeline + { + public class BearerTokenAuthenticationPolicy : Azure.Core.Pipeline.HttpPipelinePolicy + { + protected void AuthenticateAndAuthorizeRequest(Azure.Core.HttpMessage message, Azure.Core.TokenRequestContext context) => throw null; + protected System.Threading.Tasks.ValueTask AuthenticateAndAuthorizeRequestAsync(Azure.Core.HttpMessage message, Azure.Core.TokenRequestContext context) => throw null; + protected virtual void AuthorizeRequest(Azure.Core.HttpMessage message) => throw null; + protected virtual System.Threading.Tasks.ValueTask AuthorizeRequestAsync(Azure.Core.HttpMessage message) => throw null; + protected virtual bool AuthorizeRequestOnChallenge(Azure.Core.HttpMessage message) => throw null; + protected virtual System.Threading.Tasks.ValueTask AuthorizeRequestOnChallengeAsync(Azure.Core.HttpMessage message) => throw null; + public BearerTokenAuthenticationPolicy(Azure.Core.TokenCredential credential, string scope) => throw null; + public BearerTokenAuthenticationPolicy(Azure.Core.TokenCredential credential, System.Collections.Generic.IEnumerable scopes) => throw null; + public override void Process(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + public override System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + } + public sealed class DisposableHttpPipeline : Azure.Core.Pipeline.HttpPipeline, System.IDisposable + { + public void Dispose() => throw null; + internal DisposableHttpPipeline() : base(default(Azure.Core.Pipeline.HttpPipelineTransport), default(Azure.Core.Pipeline.HttpPipelinePolicy[]), default(Azure.Core.ResponseClassifier)) { } + } + public class HttpClientTransport : Azure.Core.Pipeline.HttpPipelineTransport, System.IDisposable + { + public override sealed Azure.Core.Request CreateRequest() => throw null; + public HttpClientTransport() => throw null; + public HttpClientTransport(System.Net.Http.HttpMessageHandler messageHandler) => throw null; + public HttpClientTransport(System.Net.Http.HttpClient client) => throw null; + public void Dispose() => throw null; + public override void Process(Azure.Core.HttpMessage message) => throw null; + public override System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message) => throw null; + public static readonly Azure.Core.Pipeline.HttpClientTransport Shared; + } + public class HttpPipeline + { + public static System.IDisposable CreateClientRequestIdScope(string clientRequestId) => throw null; + public static System.IDisposable CreateHttpMessagePropertiesScope(System.Collections.Generic.IDictionary messageProperties) => throw null; + public Azure.Core.HttpMessage CreateMessage() => throw null; + public Azure.Core.HttpMessage CreateMessage(Azure.RequestContext context) => throw null; + public Azure.Core.HttpMessage CreateMessage(Azure.RequestContext context, Azure.Core.ResponseClassifier classifier = default(Azure.Core.ResponseClassifier)) => throw null; + public Azure.Core.Request CreateRequest() => throw null; + public HttpPipeline(Azure.Core.Pipeline.HttpPipelineTransport transport, Azure.Core.Pipeline.HttpPipelinePolicy[] policies = default(Azure.Core.Pipeline.HttpPipelinePolicy[]), Azure.Core.ResponseClassifier responseClassifier = default(Azure.Core.ResponseClassifier)) => throw null; + public Azure.Core.ResponseClassifier ResponseClassifier { get => throw null; } + public void Send(Azure.Core.HttpMessage message, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.ValueTask SendAsync(Azure.Core.HttpMessage message, System.Threading.CancellationToken cancellationToken) => throw null; + public Azure.Response SendRequest(Azure.Core.Request request, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.ValueTask SendRequestAsync(Azure.Core.Request request, System.Threading.CancellationToken cancellationToken) => throw null; + } + public static class HttpPipelineBuilder + { + public static Azure.Core.Pipeline.HttpPipeline Build(Azure.Core.ClientOptions options, params Azure.Core.Pipeline.HttpPipelinePolicy[] perRetryPolicies) => throw null; + public static Azure.Core.Pipeline.HttpPipeline Build(Azure.Core.ClientOptions options, Azure.Core.Pipeline.HttpPipelinePolicy[] perCallPolicies, Azure.Core.Pipeline.HttpPipelinePolicy[] perRetryPolicies, Azure.Core.ResponseClassifier responseClassifier) => throw null; + public static Azure.Core.Pipeline.DisposableHttpPipeline Build(Azure.Core.ClientOptions options, Azure.Core.Pipeline.HttpPipelinePolicy[] perCallPolicies, Azure.Core.Pipeline.HttpPipelinePolicy[] perRetryPolicies, Azure.Core.Pipeline.HttpPipelineTransportOptions transportOptions, Azure.Core.ResponseClassifier responseClassifier) => throw null; + public static Azure.Core.Pipeline.HttpPipeline Build(Azure.Core.Pipeline.HttpPipelineOptions options) => throw null; + public static Azure.Core.Pipeline.DisposableHttpPipeline Build(Azure.Core.Pipeline.HttpPipelineOptions options, Azure.Core.Pipeline.HttpPipelineTransportOptions transportOptions) => throw null; + } + public class HttpPipelineOptions + { + public Azure.Core.ClientOptions ClientOptions { get => throw null; } + public HttpPipelineOptions(Azure.Core.ClientOptions options) => throw null; + public System.Collections.Generic.IList PerCallPolicies { get => throw null; } + public System.Collections.Generic.IList PerRetryPolicies { get => throw null; } + public Azure.Core.RequestFailedDetailsParser RequestFailedDetailsParser { get => throw null; set { } } + public Azure.Core.ResponseClassifier ResponseClassifier { get => throw null; set { } } + } + public abstract class HttpPipelinePolicy + { + protected HttpPipelinePolicy() => throw null; + public abstract void Process(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline); + public abstract System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline); + protected static void ProcessNext(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + protected static System.Threading.Tasks.ValueTask ProcessNextAsync(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + } + public abstract class HttpPipelineSynchronousPolicy : Azure.Core.Pipeline.HttpPipelinePolicy + { + protected HttpPipelineSynchronousPolicy() => throw null; + public virtual void OnReceivedResponse(Azure.Core.HttpMessage message) => throw null; + public virtual void OnSendingRequest(Azure.Core.HttpMessage message) => throw null; + public override void Process(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + public override System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + } + public abstract class HttpPipelineTransport + { + public abstract Azure.Core.Request CreateRequest(); + protected HttpPipelineTransport() => throw null; + public abstract void Process(Azure.Core.HttpMessage message); + public abstract System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message); + } + public class HttpPipelineTransportOptions + { + public System.Collections.Generic.IList ClientCertificates { get => throw null; } + public HttpPipelineTransportOptions() => throw null; + public bool IsClientRedirectEnabled { get => throw null; set { } } + public System.Func ServerCertificateCustomValidationCallback { get => throw null; set { } } + } + public sealed class RedirectPolicy : Azure.Core.Pipeline.HttpPipelinePolicy + { + public override void Process(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + public override System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + public static void SetAllowAutoRedirect(Azure.Core.HttpMessage message, bool allowAutoRedirect) => throw null; + } + public class RetryPolicy : Azure.Core.Pipeline.HttpPipelinePolicy + { + public RetryPolicy(int maxRetries = default(int), Azure.Core.DelayStrategy delayStrategy = default(Azure.Core.DelayStrategy)) => throw null; + protected virtual void OnRequestSent(Azure.Core.HttpMessage message) => throw null; + protected virtual System.Threading.Tasks.ValueTask OnRequestSentAsync(Azure.Core.HttpMessage message) => throw null; + protected virtual void OnSendingRequest(Azure.Core.HttpMessage message) => throw null; + protected virtual System.Threading.Tasks.ValueTask OnSendingRequestAsync(Azure.Core.HttpMessage message) => throw null; + public override void Process(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + public override System.Threading.Tasks.ValueTask ProcessAsync(Azure.Core.HttpMessage message, System.ReadOnlyMemory pipeline) => throw null; + protected virtual bool ShouldRetry(Azure.Core.HttpMessage message, System.Exception exception) => throw null; + protected virtual System.Threading.Tasks.ValueTask ShouldRetryAsync(Azure.Core.HttpMessage message, System.Exception exception) => throw null; + } + public class ServerCertificateCustomValidationArgs + { + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public System.Security.Cryptography.X509Certificates.X509Chain CertificateAuthorityChain { get => throw null; } + public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.X509Certificates.X509Chain certificateAuthorityChain, System.Net.Security.SslPolicyErrors sslPolicyErrors) => throw null; + public System.Net.Security.SslPolicyErrors SslPolicyErrors { get => throw null; } + } + } + public struct RehydrationToken : System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IJsonModel, System.ClientModel.Primitives.IPersistableModel, System.ClientModel.Primitives.IPersistableModel + { + Azure.Core.RehydrationToken System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + Azure.Core.RehydrationToken System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + object System.ClientModel.Primitives.IPersistableModel.Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + object System.ClientModel.Primitives.IJsonModel.Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + string System.ClientModel.Primitives.IPersistableModel.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + public string Id { get => throw null; } + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + System.BinaryData System.ClientModel.Primitives.IPersistableModel.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + void System.ClientModel.Primitives.IJsonModel.Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options) => throw null; + } + public abstract class Request : System.IDisposable + { + protected abstract void AddHeader(string name, string value); + public abstract string ClientRequestId { get; set; } + protected abstract bool ContainsHeader(string name); + public virtual Azure.Core.RequestContent Content { get => throw null; set { } } + protected Request() => throw null; + public abstract void Dispose(); + protected abstract System.Collections.Generic.IEnumerable EnumerateHeaders(); + public Azure.Core.RequestHeaders Headers { get => throw null; } + public virtual Azure.Core.RequestMethod Method { get => throw null; set { } } + protected abstract bool RemoveHeader(string name); + protected virtual void SetHeader(string name, string value) => throw null; + protected abstract bool TryGetHeader(string name, out string value); + protected abstract bool TryGetHeaderValues(string name, out System.Collections.Generic.IEnumerable values); + public virtual Azure.Core.RequestUriBuilder Uri { get => throw null; set { } } + } + public abstract class RequestContent : System.IDisposable + { + public static Azure.Core.RequestContent Create(System.IO.Stream stream) => throw null; + public static Azure.Core.RequestContent Create(byte[] bytes) => throw null; + public static Azure.Core.RequestContent Create(byte[] bytes, int index, int length) => throw null; + public static Azure.Core.RequestContent Create(System.ReadOnlyMemory bytes) => throw null; + public static Azure.Core.RequestContent Create(System.Buffers.ReadOnlySequence bytes) => throw null; + public static Azure.Core.RequestContent Create(string content) => throw null; + public static Azure.Core.RequestContent Create(System.BinaryData content) => throw null; + public static Azure.Core.RequestContent Create(Azure.Core.Serialization.DynamicData content) => throw null; + public static Azure.Core.RequestContent Create(object serializable) => throw null; + public static Azure.Core.RequestContent Create(object serializable, Azure.Core.Serialization.ObjectSerializer serializer) => throw null; + public static Azure.Core.RequestContent Create(object serializable, Azure.Core.Serialization.JsonPropertyNames propertyNameFormat, string dateTimeFormat = default(string)) => throw null; + protected RequestContent() => throw null; + public abstract void Dispose(); + public static implicit operator Azure.Core.RequestContent(string content) => throw null; + public static implicit operator Azure.Core.RequestContent(System.BinaryData content) => throw null; + public static implicit operator Azure.Core.RequestContent(Azure.Core.Serialization.DynamicData content) => throw null; + public abstract bool TryComputeLength(out long length); + public abstract void WriteTo(System.IO.Stream stream, System.Threading.CancellationToken cancellation); + public abstract System.Threading.Tasks.Task WriteToAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellation); + } + public abstract class RequestFailedDetailsParser + { + protected RequestFailedDetailsParser() => throw null; + public abstract bool TryParse(Azure.Response response, out Azure.ResponseError error, out System.Collections.Generic.IDictionary data); + } + public struct RequestHeaders : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public void Add(Azure.Core.HttpHeader header) => throw null; + public void Add(string name, string value) => throw null; + public bool Contains(string name) => throw null; + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool Remove(string name) => throw null; + public void SetValue(string name, string value) => throw null; + public bool TryGetValue(string name, out string value) => throw null; + public bool TryGetValues(string name, out System.Collections.Generic.IEnumerable values) => throw null; + } + public struct RequestMethod : System.IEquatable + { + public RequestMethod(string method) => throw null; + public static Azure.Core.RequestMethod Delete { get => throw null; } + public bool Equals(Azure.Core.RequestMethod other) => throw null; + public override bool Equals(object obj) => throw null; + public static Azure.Core.RequestMethod Get { get => throw null; } + public override int GetHashCode() => throw null; + public static Azure.Core.RequestMethod Head { get => throw null; } + public string Method { get => throw null; } + public static bool operator ==(Azure.Core.RequestMethod left, Azure.Core.RequestMethod right) => throw null; + public static bool operator !=(Azure.Core.RequestMethod left, Azure.Core.RequestMethod right) => throw null; + public static Azure.Core.RequestMethod Options { get => throw null; } + public static Azure.Core.RequestMethod Parse(string method) => throw null; + public static Azure.Core.RequestMethod Patch { get => throw null; } + public static Azure.Core.RequestMethod Post { get => throw null; } + public static Azure.Core.RequestMethod Put { get => throw null; } + public override string ToString() => throw null; + public static Azure.Core.RequestMethod Trace { get => throw null; } + } + public class RequestUriBuilder + { + public void AppendPath(string value) => throw null; + public void AppendPath(string value, bool escape) => throw null; + public void AppendPath(System.ReadOnlySpan value, bool escape) => throw null; + public void AppendQuery(string name, string value) => throw null; + public void AppendQuery(string name, string value, bool escapeValue) => throw null; + public void AppendQuery(System.ReadOnlySpan name, System.ReadOnlySpan value, bool escapeValue) => throw null; + public RequestUriBuilder() => throw null; + protected bool HasPath { get => throw null; } + protected bool HasQuery { get => throw null; } + public string Host { get => throw null; set { } } + public string Path { get => throw null; set { } } + public string PathAndQuery { get => throw null; } + public int Port { get => throw null; set { } } + public string Query { get => throw null; set { } } + public void Reset(System.Uri value) => throw null; + public string Scheme { get => throw null; set { } } + public override string ToString() => throw null; + public System.Uri ToUri() => throw null; + } + public sealed class ResourceIdentifier : System.IComparable, System.IEquatable + { + public Azure.Core.ResourceIdentifier AppendChildResource(string childResourceType, string childResourceName) => throw null; + public Azure.Core.ResourceIdentifier AppendProviderResource(string providerNamespace, string resourceType, string resourceName) => throw null; + public int CompareTo(Azure.Core.ResourceIdentifier other) => throw null; + public ResourceIdentifier(string resourceId) => throw null; + public bool Equals(Azure.Core.ResourceIdentifier other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public Azure.Core.AzureLocation? Location { get => throw null; } + public string Name { get => throw null; } + public static bool operator ==(Azure.Core.ResourceIdentifier left, Azure.Core.ResourceIdentifier right) => throw null; + public static bool operator >(Azure.Core.ResourceIdentifier left, Azure.Core.ResourceIdentifier right) => throw null; + public static bool operator >=(Azure.Core.ResourceIdentifier left, Azure.Core.ResourceIdentifier right) => throw null; + public static implicit operator string(Azure.Core.ResourceIdentifier id) => throw null; + public static bool operator !=(Azure.Core.ResourceIdentifier left, Azure.Core.ResourceIdentifier right) => throw null; + public static bool operator <(Azure.Core.ResourceIdentifier left, Azure.Core.ResourceIdentifier right) => throw null; + public static bool operator <=(Azure.Core.ResourceIdentifier left, Azure.Core.ResourceIdentifier right) => throw null; + public Azure.Core.ResourceIdentifier Parent { get => throw null; } + public static Azure.Core.ResourceIdentifier Parse(string input) => throw null; + public string Provider { get => throw null; } + public string ResourceGroupName { get => throw null; } + public Azure.Core.ResourceType ResourceType { get => throw null; } + public static readonly Azure.Core.ResourceIdentifier Root; + public string SubscriptionId { get => throw null; } + public override string ToString() => throw null; + public static bool TryParse(string input, out Azure.Core.ResourceIdentifier result) => throw null; + } + public struct ResourceType : System.IEquatable + { + public ResourceType(string resourceType) => throw null; + public bool Equals(Azure.Core.ResourceType other) => throw null; + public override bool Equals(object other) => throw null; + public override int GetHashCode() => throw null; + public string GetLastType() => throw null; + public string Namespace { get => throw null; } + public static bool operator ==(Azure.Core.ResourceType left, Azure.Core.ResourceType right) => throw null; + public static implicit operator Azure.Core.ResourceType(string resourceType) => throw null; + public static implicit operator string(Azure.Core.ResourceType resourceType) => throw null; + public static bool operator !=(Azure.Core.ResourceType left, Azure.Core.ResourceType right) => throw null; + public override string ToString() => throw null; + public string Type { get => throw null; } + } + public abstract class ResponseClassificationHandler + { + protected ResponseClassificationHandler() => throw null; + public abstract bool TryClassify(Azure.Core.HttpMessage message, out bool isError); + } + public class ResponseClassifier + { + public ResponseClassifier() => throw null; + public virtual bool IsErrorResponse(Azure.Core.HttpMessage message) => throw null; + public virtual bool IsRetriable(Azure.Core.HttpMessage message, System.Exception exception) => throw null; + public virtual bool IsRetriableException(System.Exception exception) => throw null; + public virtual bool IsRetriableResponse(Azure.Core.HttpMessage message) => throw null; + } + public struct ResponseHeaders : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public bool Contains(string name) => throw null; + public int? ContentLength { get => throw null; } + public long? ContentLengthLong { get => throw null; } + public string ContentType { get => throw null; } + public System.DateTimeOffset? Date { get => throw null; } + public Azure.ETag? ETag { get => throw null; } + public System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public string RequestId { get => throw null; } + public bool TryGetValue(string name, out string value) => throw null; + public bool TryGetValues(string name, out System.Collections.Generic.IEnumerable values) => throw null; + } + public enum RetryMode + { + Fixed = 0, + Exponential = 1, + } + public class RetryOptions + { + public System.TimeSpan Delay { get => throw null; set { } } + public System.TimeSpan MaxDelay { get => throw null; set { } } + public int MaxRetries { get => throw null; set { } } + public Azure.Core.RetryMode Mode { get => throw null; set { } } + public System.TimeSpan NetworkTimeout { get => throw null; set { } } + } + namespace Serialization + { + public sealed class DynamicData : System.IDisposable, System.Dynamic.IDynamicMetaObjectProvider + { + public void Dispose() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + System.Dynamic.DynamicMetaObject System.Dynamic.IDynamicMetaObjectProvider.GetMetaObject(System.Linq.Expressions.Expression parameter) => throw null; + public static bool operator ==(Azure.Core.Serialization.DynamicData left, object right) => throw null; + public static explicit operator System.DateTime(Azure.Core.Serialization.DynamicData value) => throw null; + public static explicit operator System.DateTimeOffset(Azure.Core.Serialization.DynamicData value) => throw null; + public static explicit operator System.Guid(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator bool(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator string(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator byte(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator sbyte(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator short(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator ushort(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator int(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator uint(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator long(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator ulong(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator float(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator double(Azure.Core.Serialization.DynamicData value) => throw null; + public static implicit operator decimal(Azure.Core.Serialization.DynamicData value) => throw null; + public static bool operator !=(Azure.Core.Serialization.DynamicData left, object right) => throw null; + public override string ToString() => throw null; + } + public interface IMemberNameConverter + { + string ConvertMemberName(System.Reflection.MemberInfo member); + } + public class JsonObjectSerializer : Azure.Core.Serialization.ObjectSerializer, Azure.Core.Serialization.IMemberNameConverter + { + string Azure.Core.Serialization.IMemberNameConverter.ConvertMemberName(System.Reflection.MemberInfo member) => throw null; + public JsonObjectSerializer() => throw null; + public JsonObjectSerializer(System.Text.Json.JsonSerializerOptions options) => throw null; + public static Azure.Core.Serialization.JsonObjectSerializer Default { get => throw null; } + public override object Deserialize(System.IO.Stream stream, System.Type returnType, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream stream, System.Type returnType, System.Threading.CancellationToken cancellationToken) => throw null; + public override void Serialize(System.IO.Stream stream, object value, System.Type inputType, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.BinaryData Serialize(object value, System.Type inputType = default(System.Type), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask SerializeAsync(System.IO.Stream stream, object value, System.Type inputType, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask SerializeAsync(object value, System.Type inputType = default(System.Type), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public enum JsonPropertyNames + { + UseExact = 0, + CamelCase = 1, + } + public abstract class ObjectSerializer + { + protected ObjectSerializer() => throw null; + public abstract object Deserialize(System.IO.Stream stream, System.Type returnType, System.Threading.CancellationToken cancellationToken); + public abstract System.Threading.Tasks.ValueTask DeserializeAsync(System.IO.Stream stream, System.Type returnType, System.Threading.CancellationToken cancellationToken); + public abstract void Serialize(System.IO.Stream stream, object value, System.Type inputType, System.Threading.CancellationToken cancellationToken); + public virtual System.BinaryData Serialize(object value, System.Type inputType = default(System.Type), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public abstract System.Threading.Tasks.ValueTask SerializeAsync(System.IO.Stream stream, object value, System.Type inputType, System.Threading.CancellationToken cancellationToken); + public virtual System.Threading.Tasks.ValueTask SerializeAsync(object value, System.Type inputType = default(System.Type), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + } + public class StatusCodeClassifier : Azure.Core.ResponseClassifier + { + public StatusCodeClassifier(System.ReadOnlySpan successStatusCodes) => throw null; + public override bool IsErrorResponse(Azure.Core.HttpMessage message) => throw null; + } + public delegate System.Threading.Tasks.Task SyncAsyncEventHandler(T e) where T : Azure.SyncAsyncEventArgs; + public class TelemetryDetails + { + public string ApplicationId { get => throw null; } + public void Apply(Azure.Core.HttpMessage message) => throw null; + public System.Reflection.Assembly Assembly { get => throw null; } + public TelemetryDetails(System.Reflection.Assembly assembly, string applicationId = default(string)) => throw null; + public override string ToString() => throw null; + } + public abstract class TokenCredential + { + protected TokenCredential() => throw null; + public abstract Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken); + public abstract System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken); + } + public struct TokenRequestContext + { + public string Claims { get => throw null; } + public TokenRequestContext(string[] scopes, string parentRequestId) => throw null; + public TokenRequestContext(string[] scopes, string parentRequestId, string claims) => throw null; + public TokenRequestContext(string[] scopes, string parentRequestId, string claims, string tenantId) => throw null; + public TokenRequestContext(string[] scopes, string parentRequestId = default(string), string claims = default(string), string tenantId = default(string), bool isCaeEnabled = default(bool)) => throw null; + public bool IsCaeEnabled { get => throw null; } + public string ParentRequestId { get => throw null; } + public string[] Scopes { get => throw null; } + public string TenantId { get => throw null; } + } + } + [System.Flags] + public enum ErrorOptions + { + Default = 0, + NoThrow = 1, + } + public struct ETag : System.IEquatable + { + public static readonly Azure.ETag All; + public ETag(string etag) => throw null; + public bool Equals(Azure.ETag other) => throw null; + public bool Equals(string other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public static bool operator ==(Azure.ETag left, Azure.ETag right) => throw null; + public static bool operator !=(Azure.ETag left, Azure.ETag right) => throw null; + public override string ToString() => throw null; + public string ToString(string format) => throw null; + } + public class HttpAuthorization + { + public HttpAuthorization(string scheme, string parameter) => throw null; + public string Parameter { get => throw null; } + public string Scheme { get => throw null; } + public override string ToString() => throw null; + } + public struct HttpRange : System.IEquatable + { + public HttpRange(long offset = default(long), long? length = default(long?)) => throw null; + public bool Equals(Azure.HttpRange other) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public long? Length { get => throw null; } + public long Offset { get => throw null; } + public static bool operator ==(Azure.HttpRange left, Azure.HttpRange right) => throw null; + public static bool operator !=(Azure.HttpRange left, Azure.HttpRange right) => throw null; + public override string ToString() => throw null; + } + public class JsonPatchDocument + { + public void AppendAdd(string path, T value) => throw null; + public void AppendAddRaw(string path, string rawJsonValue) => throw null; + public void AppendCopy(string from, string path) => throw null; + public void AppendMove(string from, string path) => throw null; + public void AppendRemove(string path) => throw null; + public void AppendReplace(string path, T value) => throw null; + public void AppendReplaceRaw(string path, string rawJsonValue) => throw null; + public void AppendTest(string path, T value) => throw null; + public void AppendTestRaw(string path, string rawJsonValue) => throw null; + public JsonPatchDocument() => throw null; + public JsonPatchDocument(Azure.Core.Serialization.ObjectSerializer serializer) => throw null; + public JsonPatchDocument(System.ReadOnlyMemory rawDocument) => throw null; + public JsonPatchDocument(System.ReadOnlyMemory rawDocument, Azure.Core.Serialization.ObjectSerializer serializer) => throw null; + public System.ReadOnlyMemory ToBytes() => throw null; + public override string ToString() => throw null; + } + public class MatchConditions + { + public MatchConditions() => throw null; + public Azure.ETag? IfMatch { get => throw null; set { } } + public Azure.ETag? IfNoneMatch { get => throw null; set { } } + } + namespace Messaging + { + public class CloudEvent + { + public CloudEvent(string source, string type, object jsonSerializableData, System.Type dataSerializationType = default(System.Type)) => throw null; + public CloudEvent(string source, string type, System.BinaryData data, string dataContentType, Azure.Messaging.CloudEventDataFormat dataFormat = default(Azure.Messaging.CloudEventDataFormat)) => throw null; + public System.BinaryData Data { get => throw null; set { } } + public string DataContentType { get => throw null; set { } } + public string DataSchema { get => throw null; set { } } + public System.Collections.Generic.IDictionary ExtensionAttributes { get => throw null; } + public string Id { get => throw null; set { } } + public static Azure.Messaging.CloudEvent Parse(System.BinaryData json, bool skipValidation = default(bool)) => throw null; + public static Azure.Messaging.CloudEvent[] ParseMany(System.BinaryData json, bool skipValidation = default(bool)) => throw null; + public string Source { get => throw null; set { } } + public string Subject { get => throw null; set { } } + public System.DateTimeOffset? Time { get => throw null; set { } } + public string Type { get => throw null; set { } } + } + public enum CloudEventDataFormat + { + Binary = 0, + Json = 1, + } + public class MessageContent + { + public virtual Azure.Core.ContentType? ContentType { get => throw null; set { } } + protected virtual Azure.Core.ContentType? ContentTypeCore { get => throw null; set { } } + public MessageContent() => throw null; + public virtual System.BinaryData Data { get => throw null; set { } } + public virtual bool IsReadOnly { get => throw null; } + } + } + public abstract class NullableResponse + { + protected NullableResponse() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public abstract Azure.Response GetRawResponse(); + public abstract bool HasValue { get; } + public override string ToString() => throw null; + public abstract T Value { get; } + } + public abstract class Operation + { + protected Operation() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public abstract Azure.Response GetRawResponse(); + public virtual Azure.Core.RehydrationToken? GetRehydrationToken() => throw null; + public abstract bool HasCompleted { get; } + public abstract string Id { get; } + public override string ToString() => throw null; + public abstract Azure.Response UpdateStatus(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.ValueTask UpdateStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public virtual Azure.Response WaitForCompletionResponse(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual Azure.Response WaitForCompletionResponse(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual Azure.Response WaitForCompletionResponse(Azure.Core.DelayStrategy delayStrategy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.ValueTask WaitForCompletionResponseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.ValueTask WaitForCompletionResponseAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.ValueTask WaitForCompletionResponseAsync(Azure.Core.DelayStrategy delayStrategy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public abstract class Operation : Azure.Operation + { + protected Operation() => throw null; + public abstract bool HasValue { get; } + public abstract T Value { get; } + public virtual Azure.Response WaitForCompletion(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual Azure.Response WaitForCompletion(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual Azure.Response WaitForCompletion(Azure.Core.DelayStrategy delayStrategy, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.ValueTask> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken) => throw null; + public virtual System.Threading.Tasks.ValueTask> WaitForCompletionAsync(Azure.Core.DelayStrategy delayStrategy, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask WaitForCompletionResponseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask WaitForCompletionResponseAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public abstract class Page + { + public abstract string ContinuationToken { get; } + protected Page() => throw null; + public override bool Equals(object obj) => throw null; + public static Azure.Page FromValues(System.Collections.Generic.IReadOnlyList values, string continuationToken, Azure.Response response) => throw null; + public override int GetHashCode() => throw null; + public abstract Azure.Response GetRawResponse(); + public override string ToString() => throw null; + public abstract System.Collections.Generic.IReadOnlyList Values { get; } + } + public abstract class Pageable : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable + { + public abstract System.Collections.Generic.IEnumerable> AsPages(string continuationToken = default(string), int? pageSizeHint = default(int?)); + protected virtual System.Threading.CancellationToken CancellationToken { get => throw null; } + protected Pageable() => throw null; + protected Pageable(System.Threading.CancellationToken cancellationToken) => throw null; + public override bool Equals(object obj) => throw null; + public static Azure.Pageable FromPages(System.Collections.Generic.IEnumerable> pages) => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public virtual System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + public override int GetHashCode() => throw null; + public override string ToString() => throw null; + } + public abstract class PageableOperation : Azure.Operation> + { + protected PageableOperation() => throw null; + public abstract Azure.Pageable GetValues(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract Azure.AsyncPageable GetValuesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public override Azure.AsyncPageable Value { get => throw null; } + } + public class RequestConditions : Azure.MatchConditions + { + public RequestConditions() => throw null; + public System.DateTimeOffset? IfModifiedSince { get => throw null; set { } } + public System.DateTimeOffset? IfUnmodifiedSince { get => throw null; set { } } + } + public class RequestContext + { + public void AddClassifier(int statusCode, bool isError) => throw null; + public void AddClassifier(Azure.Core.ResponseClassificationHandler classifier) => throw null; + public void AddPolicy(Azure.Core.Pipeline.HttpPipelinePolicy policy, Azure.Core.HttpPipelinePosition position) => throw null; + public System.Threading.CancellationToken CancellationToken { get => throw null; set { } } + public RequestContext() => throw null; + public Azure.ErrorOptions ErrorOptions { get => throw null; set { } } + public static implicit operator Azure.RequestContext(Azure.ErrorOptions options) => throw null; + } + public class RequestFailedException : System.Exception, System.Runtime.Serialization.ISerializable + { + public RequestFailedException(string message) => throw null; + public RequestFailedException(string message, System.Exception innerException) => throw null; + public RequestFailedException(int status, string message) => throw null; + public RequestFailedException(int status, string message, System.Exception innerException) => throw null; + public RequestFailedException(int status, string message, string errorCode, System.Exception innerException) => throw null; + public RequestFailedException(Azure.Response response) => throw null; + public RequestFailedException(Azure.Response response, System.Exception innerException) => throw null; + public RequestFailedException(Azure.Response response, System.Exception innerException, Azure.Core.RequestFailedDetailsParser detailsParser) => throw null; + protected RequestFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string ErrorCode { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public Azure.Response GetRawResponse() => throw null; + public int Status { get => throw null; } + } + public abstract class Response : System.IDisposable + { + public abstract string ClientRequestId { get; set; } + protected abstract bool ContainsHeader(string name); + public virtual System.BinaryData Content { get => throw null; } + public abstract System.IO.Stream ContentStream { get; set; } + protected Response() => throw null; + public abstract void Dispose(); + protected abstract System.Collections.Generic.IEnumerable EnumerateHeaders(); + public static Azure.Response FromValue(T value, Azure.Response response) => throw null; + public virtual Azure.Core.ResponseHeaders Headers { get => throw null; } + public virtual bool IsError { get => throw null; set { } } + public abstract string ReasonPhrase { get; } + public abstract int Status { get; } + public override string ToString() => throw null; + protected abstract bool TryGetHeader(string name, out string value); + protected abstract bool TryGetHeaderValues(string name, out System.Collections.Generic.IEnumerable values); + } + public abstract class Response : Azure.NullableResponse + { + protected Response() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool HasValue { get => throw null; } + public static implicit operator T(Azure.Response response) => throw null; + public override T Value { get => throw null; } + } + public sealed class ResponseError + { + public string Code { get => throw null; } + public ResponseError(string code, string message) => throw null; + public string Message { get => throw null; } + public override string ToString() => throw null; + } + public class SyncAsyncEventArgs : System.EventArgs + { + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public SyncAsyncEventArgs(bool isRunningSynchronously, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public bool IsRunningSynchronously { get => throw null; } + } + public enum WaitUntil + { + Completed = 0, + Started = 1, + } +} diff --git a/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj new file mode 100644 index 000000000000..a440919775d7 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj @@ -0,0 +1,20 @@ + + + net9.0 + true + bin\ + false + + + + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.cs b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.cs new file mode 100644 index 000000000000..253b97a6585a --- /dev/null +++ b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.cs @@ -0,0 +1,431 @@ +// This file contains auto-generated code. +// Generated from `Azure.Identity, Version=1.11.4.0, Culture=neutral, PublicKeyToken=92742159e12e44c8`. +namespace Azure +{ + namespace Identity + { + public class AuthenticationFailedException : System.Exception + { + public AuthenticationFailedException(string message) => throw null; + public AuthenticationFailedException(string message, System.Exception innerException) => throw null; + protected AuthenticationFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class AuthenticationRecord + { + public string Authority { get => throw null; } + public string ClientId { get => throw null; } + public static Azure.Identity.AuthenticationRecord Deserialize(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task DeserializeAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public string HomeAccountId { get => throw null; } + public void Serialize(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task SerializeAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public string TenantId { get => throw null; } + public string Username { get => throw null; } + } + public class AuthenticationRequiredException : Azure.Identity.CredentialUnavailableException + { + public AuthenticationRequiredException(string message, Azure.Core.TokenRequestContext context) : base(default(string)) => throw null; + public AuthenticationRequiredException(string message, Azure.Core.TokenRequestContext context, System.Exception innerException) : base(default(string)) => throw null; + protected AuthenticationRequiredException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + public Azure.Core.TokenRequestContext TokenRequestContext { get => throw null; } + } + public class AuthorizationCodeCredential : Azure.Core.TokenCredential + { + protected AuthorizationCodeCredential() => throw null; + public AuthorizationCodeCredential(string tenantId, string clientId, string clientSecret, string authorizationCode) => throw null; + public AuthorizationCodeCredential(string tenantId, string clientId, string clientSecret, string authorizationCode, Azure.Identity.AuthorizationCodeCredentialOptions options) => throw null; + public AuthorizationCodeCredential(string tenantId, string clientId, string clientSecret, string authorizationCode, Azure.Identity.TokenCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class AuthorizationCodeCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public AuthorizationCodeCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public System.Uri RedirectUri { get => throw null; set { } } + } + public static class AzureAuthorityHosts + { + public static System.Uri AzureChina { get => throw null; } + public static System.Uri AzureGermany { get => throw null; } + public static System.Uri AzureGovernment { get => throw null; } + public static System.Uri AzurePublicCloud { get => throw null; } + } + public class AzureCliCredential : Azure.Core.TokenCredential + { + public AzureCliCredential() => throw null; + public AzureCliCredential(Azure.Identity.AzureCliCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class AzureCliCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public AzureCliCredentialOptions() => throw null; + public System.TimeSpan? ProcessTimeout { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + } + public class AzureDeveloperCliCredential : Azure.Core.TokenCredential + { + public AzureDeveloperCliCredential() => throw null; + public AzureDeveloperCliCredential(Azure.Identity.AzureDeveloperCliCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class AzureDeveloperCliCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public AzureDeveloperCliCredentialOptions() => throw null; + public System.TimeSpan? ProcessTimeout { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + } + public class AzurePowerShellCredential : Azure.Core.TokenCredential + { + public AzurePowerShellCredential() => throw null; + public AzurePowerShellCredential(Azure.Identity.AzurePowerShellCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class AzurePowerShellCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public AzurePowerShellCredentialOptions() => throw null; + public System.TimeSpan? ProcessTimeout { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + } + public class BrowserCustomizationOptions + { + public BrowserCustomizationOptions() => throw null; + public string ErrorMessage { get => throw null; set { } } + public string SuccessMessage { get => throw null; set { } } + public bool? UseEmbeddedWebView { get => throw null; set { } } + } + public class ChainedTokenCredential : Azure.Core.TokenCredential + { + public ChainedTokenCredential(params Azure.Core.TokenCredential[] sources) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class ClientAssertionCredential : Azure.Core.TokenCredential + { + protected ClientAssertionCredential() => throw null; + public ClientAssertionCredential(string tenantId, string clientId, System.Func> assertionCallback, Azure.Identity.ClientAssertionCredentialOptions options = default(Azure.Identity.ClientAssertionCredentialOptions)) => throw null; + public ClientAssertionCredential(string tenantId, string clientId, System.Func assertionCallback, Azure.Identity.ClientAssertionCredentialOptions options = default(Azure.Identity.ClientAssertionCredentialOptions)) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class ClientAssertionCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public ClientAssertionCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + } + public class ClientCertificateCredential : Azure.Core.TokenCredential + { + protected ClientCertificateCredential() => throw null; + public ClientCertificateCredential(string tenantId, string clientId, string clientCertificatePath) => throw null; + public ClientCertificateCredential(string tenantId, string clientId, string clientCertificatePath, Azure.Identity.TokenCredentialOptions options) => throw null; + public ClientCertificateCredential(string tenantId, string clientId, string clientCertificatePath, Azure.Identity.ClientCertificateCredentialOptions options) => throw null; + public ClientCertificateCredential(string tenantId, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 clientCertificate) => throw null; + public ClientCertificateCredential(string tenantId, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 clientCertificate, Azure.Identity.TokenCredentialOptions options) => throw null; + public ClientCertificateCredential(string tenantId, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 clientCertificate, Azure.Identity.ClientCertificateCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class ClientCertificateCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public ClientCertificateCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public bool SendCertificateChain { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + } + public class ClientSecretCredential : Azure.Core.TokenCredential + { + protected ClientSecretCredential() => throw null; + public ClientSecretCredential(string tenantId, string clientId, string clientSecret) => throw null; + public ClientSecretCredential(string tenantId, string clientId, string clientSecret, Azure.Identity.ClientSecretCredentialOptions options) => throw null; + public ClientSecretCredential(string tenantId, string clientId, string clientSecret, Azure.Identity.TokenCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class ClientSecretCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public ClientSecretCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + } + public class CredentialUnavailableException : Azure.Identity.AuthenticationFailedException + { + public CredentialUnavailableException(string message) : base(default(string)) => throw null; + public CredentialUnavailableException(string message, System.Exception innerException) : base(default(string)) => throw null; + protected CredentialUnavailableException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null; + } + public class DefaultAzureCredential : Azure.Core.TokenCredential + { + public DefaultAzureCredential(bool includeInteractiveCredentials = default(bool)) => throw null; + public DefaultAzureCredential(Azure.Identity.DefaultAzureCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class DefaultAzureCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public System.TimeSpan? CredentialProcessTimeout { get => throw null; set { } } + public DefaultAzureCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public bool ExcludeAzureCliCredential { get => throw null; set { } } + public bool ExcludeAzureDeveloperCliCredential { get => throw null; set { } } + public bool ExcludeAzurePowerShellCredential { get => throw null; set { } } + public bool ExcludeEnvironmentCredential { get => throw null; set { } } + public bool ExcludeInteractiveBrowserCredential { get => throw null; set { } } + public bool ExcludeManagedIdentityCredential { get => throw null; set { } } + public bool ExcludeSharedTokenCacheCredential { get => throw null; set { } } + public bool ExcludeVisualStudioCodeCredential { get => throw null; set { } } + public bool ExcludeVisualStudioCredential { get => throw null; set { } } + public bool ExcludeWorkloadIdentityCredential { get => throw null; set { } } + public string InteractiveBrowserCredentialClientId { get => throw null; set { } } + public string InteractiveBrowserTenantId { get => throw null; set { } } + public string ManagedIdentityClientId { get => throw null; set { } } + public Azure.Core.ResourceIdentifier ManagedIdentityResourceId { get => throw null; set { } } + public string SharedTokenCacheTenantId { get => throw null; set { } } + public string SharedTokenCacheUsername { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + public string VisualStudioCodeTenantId { get => throw null; set { } } + public string VisualStudioTenantId { get => throw null; set { } } + public string WorkloadIdentityClientId { get => throw null; set { } } + } + public class DeviceCodeCredential : Azure.Core.TokenCredential + { + public virtual Azure.Identity.AuthenticationRecord Authenticate(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual Azure.Identity.AuthenticationRecord Authenticate(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public DeviceCodeCredential() => throw null; + public DeviceCodeCredential(Azure.Identity.DeviceCodeCredentialOptions options) => throw null; + public DeviceCodeCredential(System.Func deviceCodeCallback, string clientId, Azure.Identity.TokenCredentialOptions options = default(Azure.Identity.TokenCredentialOptions)) => throw null; + public DeviceCodeCredential(System.Func deviceCodeCallback, string tenantId, string clientId, Azure.Identity.TokenCredentialOptions options = default(Azure.Identity.TokenCredentialOptions)) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class DeviceCodeCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public Azure.Identity.AuthenticationRecord AuthenticationRecord { get => throw null; set { } } + public string ClientId { get => throw null; set { } } + public DeviceCodeCredentialOptions() => throw null; + public System.Func DeviceCodeCallback { get => throw null; set { } } + public bool DisableAutomaticAuthentication { get => throw null; set { } } + public bool DisableInstanceDiscovery { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + } + public struct DeviceCodeInfo + { + public string ClientId { get => throw null; } + public string DeviceCode { get => throw null; } + public System.DateTimeOffset ExpiresOn { get => throw null; } + public string Message { get => throw null; } + public System.Collections.Generic.IReadOnlyCollection Scopes { get => throw null; } + public string UserCode { get => throw null; } + public System.Uri VerificationUri { get => throw null; } + } + public class EnvironmentCredential : Azure.Core.TokenCredential + { + public EnvironmentCredential() => throw null; + public EnvironmentCredential(Azure.Identity.TokenCredentialOptions options) => throw null; + public EnvironmentCredential(Azure.Identity.EnvironmentCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class EnvironmentCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public EnvironmentCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + } + public static class IdentityModelFactory + { + public static Azure.Identity.AuthenticationRecord AuthenticationRecord(string username, string authority, string homeAccountId, string tenantId, string clientId) => throw null; + public static Azure.Identity.DeviceCodeInfo DeviceCodeInfo(string userCode, string deviceCode, System.Uri verificationUri, System.DateTimeOffset expiresOn, string message, string clientId, System.Collections.Generic.IReadOnlyCollection scopes) => throw null; + } + public class InteractiveBrowserCredential : Azure.Core.TokenCredential + { + public virtual Azure.Identity.AuthenticationRecord Authenticate(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual Azure.Identity.AuthenticationRecord Authenticate(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public InteractiveBrowserCredential() => throw null; + public InteractiveBrowserCredential(Azure.Identity.InteractiveBrowserCredentialOptions options) => throw null; + public InteractiveBrowserCredential(string clientId) => throw null; + public InteractiveBrowserCredential(string tenantId, string clientId, Azure.Identity.TokenCredentialOptions options = default(Azure.Identity.TokenCredentialOptions)) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class InteractiveBrowserCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public Azure.Identity.AuthenticationRecord AuthenticationRecord { get => throw null; set { } } + public Azure.Identity.BrowserCustomizationOptions BrowserCustomization { get => throw null; set { } } + public string ClientId { get => throw null; set { } } + public InteractiveBrowserCredentialOptions() => throw null; + public bool DisableAutomaticAuthentication { get => throw null; set { } } + public bool DisableInstanceDiscovery { get => throw null; set { } } + public string LoginHint { get => throw null; set { } } + public System.Uri RedirectUri { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + } + public class ManagedIdentityCredential : Azure.Core.TokenCredential + { + protected ManagedIdentityCredential() => throw null; + public ManagedIdentityCredential(string clientId = default(string), Azure.Identity.TokenCredentialOptions options = default(Azure.Identity.TokenCredentialOptions)) => throw null; + public ManagedIdentityCredential(Azure.Core.ResourceIdentifier resourceId, Azure.Identity.TokenCredentialOptions options = default(Azure.Identity.TokenCredentialOptions)) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class OnBehalfOfCredential : Azure.Core.TokenCredential + { + protected OnBehalfOfCredential() => throw null; + public OnBehalfOfCredential(string tenantId, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 clientCertificate, string userAssertion) => throw null; + public OnBehalfOfCredential(string tenantId, string clientId, System.Security.Cryptography.X509Certificates.X509Certificate2 clientCertificate, string userAssertion, Azure.Identity.OnBehalfOfCredentialOptions options) => throw null; + public OnBehalfOfCredential(string tenantId, string clientId, string clientSecret, string userAssertion) => throw null; + public OnBehalfOfCredential(string tenantId, string clientId, string clientSecret, string userAssertion, Azure.Identity.OnBehalfOfCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class OnBehalfOfCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public OnBehalfOfCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public bool SendCertificateChain { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + } + public class SharedTokenCacheCredential : Azure.Core.TokenCredential + { + public SharedTokenCacheCredential() => throw null; + public SharedTokenCacheCredential(Azure.Identity.SharedTokenCacheCredentialOptions options) => throw null; + public SharedTokenCacheCredential(string username, Azure.Identity.TokenCredentialOptions options = default(Azure.Identity.TokenCredentialOptions)) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class SharedTokenCacheCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public Azure.Identity.AuthenticationRecord AuthenticationRecord { get => throw null; set { } } + public string ClientId { get => throw null; set { } } + public SharedTokenCacheCredentialOptions() => throw null; + public SharedTokenCacheCredentialOptions(Azure.Identity.TokenCachePersistenceOptions tokenCacheOptions) => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public bool EnableGuestTenantAuthentication { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + public string Username { get => throw null; set { } } + } + public struct TokenCacheData + { + public System.ReadOnlyMemory CacheBytes { get => throw null; } + public TokenCacheData(System.ReadOnlyMemory cacheBytes) => throw null; + } + public class TokenCachePersistenceOptions + { + public TokenCachePersistenceOptions() => throw null; + public string Name { get => throw null; set { } } + public bool UnsafeAllowUnencryptedStorage { get => throw null; set { } } + } + public class TokenCacheRefreshArgs + { + public bool IsCaeEnabled { get => throw null; } + public string SuggestedCacheKey { get => throw null; } + } + public class TokenCacheUpdatedArgs + { + public bool IsCaeEnabled { get => throw null; } + public System.ReadOnlyMemory UnsafeCacheData { get => throw null; } + } + public class TokenCredentialDiagnosticsOptions : Azure.Core.DiagnosticsOptions + { + public TokenCredentialDiagnosticsOptions() => throw null; + public bool IsAccountIdentifierLoggingEnabled { get => throw null; set { } } + } + public class TokenCredentialOptions : Azure.Core.ClientOptions + { + public System.Uri AuthorityHost { get => throw null; set { } } + public TokenCredentialOptions() => throw null; + public Azure.Identity.TokenCredentialDiagnosticsOptions Diagnostics { get => throw null; } + public bool IsUnsafeSupportLoggingEnabled { get => throw null; set { } } + } + public abstract class UnsafeTokenCacheOptions : Azure.Identity.TokenCachePersistenceOptions + { + protected UnsafeTokenCacheOptions() => throw null; + protected abstract System.Threading.Tasks.Task> RefreshCacheAsync(); + protected virtual System.Threading.Tasks.Task RefreshCacheAsync(Azure.Identity.TokenCacheRefreshArgs args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected abstract System.Threading.Tasks.Task TokenCacheUpdatedAsync(Azure.Identity.TokenCacheUpdatedArgs tokenCacheUpdatedArgs); + } + public class UsernamePasswordCredential : Azure.Core.TokenCredential + { + public virtual Azure.Identity.AuthenticationRecord Authenticate(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual Azure.Identity.AuthenticationRecord Authenticate(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public virtual System.Threading.Tasks.Task AuthenticateAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + protected UsernamePasswordCredential() => throw null; + public UsernamePasswordCredential(string username, string password, string tenantId, string clientId) => throw null; + public UsernamePasswordCredential(string username, string password, string tenantId, string clientId, Azure.Identity.TokenCredentialOptions options) => throw null; + public UsernamePasswordCredential(string username, string password, string tenantId, string clientId, Azure.Identity.UsernamePasswordCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class UsernamePasswordCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public UsernamePasswordCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public Azure.Identity.TokenCachePersistenceOptions TokenCachePersistenceOptions { get => throw null; set { } } + } + public class VisualStudioCodeCredential : Azure.Core.TokenCredential + { + public VisualStudioCodeCredential() => throw null; + public VisualStudioCodeCredential(Azure.Identity.VisualStudioCodeCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class VisualStudioCodeCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public VisualStudioCodeCredentialOptions() => throw null; + public string TenantId { get => throw null; set { } } + } + public class VisualStudioCredential : Azure.Core.TokenCredential + { + public VisualStudioCredential() => throw null; + public VisualStudioCredential(Azure.Identity.VisualStudioCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken) => throw null; + } + public class VisualStudioCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public VisualStudioCredentialOptions() => throw null; + public System.TimeSpan? ProcessTimeout { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + } + public class WorkloadIdentityCredential : Azure.Core.TokenCredential + { + public WorkloadIdentityCredential() => throw null; + public WorkloadIdentityCredential(Azure.Identity.WorkloadIdentityCredentialOptions options) => throw null; + public override Azure.Core.AccessToken GetToken(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override System.Threading.Tasks.ValueTask GetTokenAsync(Azure.Core.TokenRequestContext requestContext, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class WorkloadIdentityCredentialOptions : Azure.Identity.TokenCredentialOptions + { + public System.Collections.Generic.IList AdditionallyAllowedTenants { get => throw null; } + public string ClientId { get => throw null; set { } } + public WorkloadIdentityCredentialOptions() => throw null; + public bool DisableInstanceDiscovery { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + public string TokenFilePath { get => throw null; set { } } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj new file mode 100644 index 000000000000..e16e446b3a1b --- /dev/null +++ b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj @@ -0,0 +1,19 @@ + + + net9.0 + true + bin\ + false + + + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj b/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj b/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.cs b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.cs new file mode 100644 index 000000000000..754a0767f37f --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.cs @@ -0,0 +1,1445 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.Data.SqlClient, Version=6.0.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5`. +namespace Microsoft +{ + namespace Data + { + public sealed class OperationAbortedException : System.SystemException + { + } + namespace Sql + { + public sealed class SqlDataSourceEnumerator : System.Data.Common.DbDataSourceEnumerator + { + public SqlDataSourceEnumerator() => throw null; + public override System.Data.DataTable GetDataSources() => throw null; + public static Microsoft.Data.Sql.SqlDataSourceEnumerator Instance { get => throw null; } + } + public sealed class SqlNotificationRequest + { + public SqlNotificationRequest() => throw null; + public SqlNotificationRequest(string userData, string options, int timeout) => throw null; + public string Options { get => throw null; set { } } + public int Timeout { get => throw null; set { } } + public string UserData { get => throw null; set { } } + } + } + namespace SqlClient + { + public sealed class ActiveDirectoryAuthenticationProvider : Microsoft.Data.SqlClient.SqlAuthenticationProvider + { + public override System.Threading.Tasks.Task AcquireTokenAsync(Microsoft.Data.SqlClient.SqlAuthenticationParameters parameters) => throw null; + public override void BeforeLoad(Microsoft.Data.SqlClient.SqlAuthenticationMethod authentication) => throw null; + public override void BeforeUnload(Microsoft.Data.SqlClient.SqlAuthenticationMethod authentication) => throw null; + public static void ClearUserTokenCache() => throw null; + public ActiveDirectoryAuthenticationProvider() => throw null; + public ActiveDirectoryAuthenticationProvider(string applicationClientId) => throw null; + public ActiveDirectoryAuthenticationProvider(System.Func deviceCodeFlowCallbackMethod, string applicationClientId = default(string)) => throw null; + public override bool IsSupported(Microsoft.Data.SqlClient.SqlAuthenticationMethod authentication) => throw null; + public void SetAcquireAuthorizationCodeAsyncCallback(System.Func> acquireAuthorizationCodeAsyncCallback) => throw null; + public void SetDeviceCodeFlowCallback(System.Func deviceCodeFlowCallbackMethod) => throw null; + } + public enum ApplicationIntent + { + ReadOnly = 1, + ReadWrite = 0, + } + namespace DataClassification + { + public class ColumnSensitivity + { + public ColumnSensitivity(System.Collections.Generic.IList sensitivityProperties) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection SensitivityProperties { get => throw null; } + } + public class InformationType + { + public InformationType(string name, string id) => throw null; + public string Id { get => throw null; } + public string Name { get => throw null; } + } + public class Label + { + public Label(string name, string id) => throw null; + public string Id { get => throw null; } + public string Name { get => throw null; } + } + public class SensitivityClassification + { + public System.Collections.ObjectModel.ReadOnlyCollection ColumnSensitivities { get => throw null; } + public SensitivityClassification(System.Collections.Generic.IList labels, System.Collections.Generic.IList informationTypes, System.Collections.Generic.IList columnSensitivity, Microsoft.Data.SqlClient.DataClassification.SensitivityRank sensitivityRank) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection InformationTypes { get => throw null; } + public System.Collections.ObjectModel.ReadOnlyCollection Labels { get => throw null; } + public Microsoft.Data.SqlClient.DataClassification.SensitivityRank SensitivityRank { get => throw null; } + } + public class SensitivityProperty + { + public SensitivityProperty(Microsoft.Data.SqlClient.DataClassification.Label label, Microsoft.Data.SqlClient.DataClassification.InformationType informationType, Microsoft.Data.SqlClient.DataClassification.SensitivityRank sensitivityRank) => throw null; + public Microsoft.Data.SqlClient.DataClassification.InformationType InformationType { get => throw null; } + public Microsoft.Data.SqlClient.DataClassification.Label Label { get => throw null; } + public Microsoft.Data.SqlClient.DataClassification.SensitivityRank SensitivityRank { get => throw null; } + } + public enum SensitivityRank + { + NOT_DEFINED = -1, + NONE = 0, + LOW = 10, + MEDIUM = 20, + HIGH = 30, + CRITICAL = 40, + } + } + namespace Diagnostics + { + public sealed class SqlClientCommandAfter : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlCommand Command { get => throw null; } + public System.Guid? ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientCommandAfter() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.IDictionary Statistics { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + } + public sealed class SqlClientCommandBefore : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlCommand Command { get => throw null; } + public System.Guid? ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientCommandBefore() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + } + public sealed class SqlClientCommandError : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlCommand Command { get => throw null; } + public System.Guid? ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientCommandError() => throw null; + public System.Exception Exception { get => throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + } + public sealed class SqlClientConnectionCloseAfter : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public System.Guid? ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientConnectionCloseAfter() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.IDictionary Statistics { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + } + public sealed class SqlClientConnectionCloseBefore : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public System.Guid? ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientConnectionCloseBefore() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.IDictionary Statistics { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + } + public sealed class SqlClientConnectionCloseError : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public System.Guid? ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientConnectionCloseError() => throw null; + public System.Exception Exception { get => throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.IDictionary Statistics { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + } + public sealed class SqlClientConnectionOpenAfter : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public string ClientVersion { get => throw null; } + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public System.Guid ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientConnectionOpenAfter() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.IDictionary Statistics { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + } + public sealed class SqlClientConnectionOpenBefore : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public string ClientVersion { get => throw null; } + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientConnectionOpenBefore() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + } + public sealed class SqlClientConnectionOpenError : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public string ClientVersion { get => throw null; } + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public System.Guid ConnectionId { get => throw null; } + public int Count { get => throw null; } + public SqlClientConnectionOpenError() => throw null; + public System.Exception Exception { get => throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + } + public sealed class SqlClientTransactionCommitAfter : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientTransactionCommitAfter() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + } + public sealed class SqlClientTransactionCommitBefore : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientTransactionCommitBefore() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + } + public sealed class SqlClientTransactionCommitError : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientTransactionCommitError() => throw null; + public System.Exception Exception { get => throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + } + public sealed class SqlClientTransactionRollbackAfter : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientTransactionRollbackAfter() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + public string TransactionName { get => throw null; } + } + public sealed class SqlClientTransactionRollbackBefore : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientTransactionRollbackBefore() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + public string TransactionName { get => throw null; } + } + public sealed class SqlClientTransactionRollbackError : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection>, System.Collections.Generic.IReadOnlyList> + { + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public int Count { get => throw null; } + public SqlClientTransactionRollbackError() => throw null; + public System.Exception Exception { get => throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public System.Collections.Generic.IEnumerator> GetEnumerator() => throw null; + public System.Data.IsolationLevel IsolationLevel { get => throw null; } + public const string Name = default; + public string Operation { get => throw null; } + public System.Guid OperationId { get => throw null; } + public System.Collections.Generic.KeyValuePair this[int index] { get => throw null; } + public long Timestamp { get => throw null; } + public long? TransactionId { get => throw null; } + public string TransactionName { get => throw null; } + } + } + public delegate void OnChangeEventHandler(object sender, Microsoft.Data.SqlClient.SqlNotificationEventArgs e); + public enum PoolBlockingPeriod + { + Auto = 0, + AlwaysBlock = 1, + NeverBlock = 2, + } + namespace Server + { + public class SqlDataRecord : System.Data.IDataRecord + { + public SqlDataRecord(params Microsoft.Data.SqlClient.Server.SqlMetaData[] metaData) => throw null; + public virtual int FieldCount { get => throw null; } + public virtual bool GetBoolean(int ordinal) => throw null; + public virtual byte GetByte(int ordinal) => throw null; + public virtual long GetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) => throw null; + public virtual char GetChar(int ordinal) => throw null; + public virtual long GetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) => throw null; + System.Data.IDataReader System.Data.IDataRecord.GetData(int ordinal) => throw null; + public virtual string GetDataTypeName(int ordinal) => throw null; + public virtual System.DateTime GetDateTime(int ordinal) => throw null; + public virtual System.DateTimeOffset GetDateTimeOffset(int ordinal) => throw null; + public virtual decimal GetDecimal(int ordinal) => throw null; + public virtual double GetDouble(int ordinal) => throw null; + public virtual System.Type GetFieldType(int ordinal) => throw null; + public virtual float GetFloat(int ordinal) => throw null; + public virtual System.Guid GetGuid(int ordinal) => throw null; + public virtual short GetInt16(int ordinal) => throw null; + public virtual int GetInt32(int ordinal) => throw null; + public virtual long GetInt64(int ordinal) => throw null; + public virtual string GetName(int ordinal) => throw null; + public virtual int GetOrdinal(string name) => throw null; + public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlByte GetSqlByte(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlChars GetSqlChars(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble(int ordinal) => throw null; + public virtual System.Type GetSqlFieldType(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64(int ordinal) => throw null; + public virtual Microsoft.Data.SqlClient.Server.SqlMetaData GetSqlMetaData(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle(int ordinal) => throw null; + public virtual System.Data.SqlTypes.SqlString GetSqlString(int ordinal) => throw null; + public virtual object GetSqlValue(int ordinal) => throw null; + public virtual int GetSqlValues(object[] values) => throw null; + public virtual System.Data.SqlTypes.SqlXml GetSqlXml(int ordinal) => throw null; + public virtual string GetString(int ordinal) => throw null; + public virtual System.TimeSpan GetTimeSpan(int ordinal) => throw null; + public virtual object GetValue(int ordinal) => throw null; + public virtual int GetValues(object[] values) => throw null; + public virtual bool IsDBNull(int ordinal) => throw null; + public virtual void SetBoolean(int ordinal, bool value) => throw null; + public virtual void SetByte(int ordinal, byte value) => throw null; + public virtual void SetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) => throw null; + public virtual void SetChar(int ordinal, char value) => throw null; + public virtual void SetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) => throw null; + public virtual void SetDateTime(int ordinal, System.DateTime value) => throw null; + public virtual void SetDateTimeOffset(int ordinal, System.DateTimeOffset value) => throw null; + public virtual void SetDBNull(int ordinal) => throw null; + public virtual void SetDecimal(int ordinal, decimal value) => throw null; + public virtual void SetDouble(int ordinal, double value) => throw null; + public virtual void SetFloat(int ordinal, float value) => throw null; + public virtual void SetGuid(int ordinal, System.Guid value) => throw null; + public virtual void SetInt16(int ordinal, short value) => throw null; + public virtual void SetInt32(int ordinal, int value) => throw null; + public virtual void SetInt64(int ordinal, long value) => throw null; + public virtual void SetSqlBinary(int ordinal, System.Data.SqlTypes.SqlBinary value) => throw null; + public virtual void SetSqlBoolean(int ordinal, System.Data.SqlTypes.SqlBoolean value) => throw null; + public virtual void SetSqlByte(int ordinal, System.Data.SqlTypes.SqlByte value) => throw null; + public virtual void SetSqlBytes(int ordinal, System.Data.SqlTypes.SqlBytes value) => throw null; + public virtual void SetSqlChars(int ordinal, System.Data.SqlTypes.SqlChars value) => throw null; + public virtual void SetSqlDateTime(int ordinal, System.Data.SqlTypes.SqlDateTime value) => throw null; + public virtual void SetSqlDecimal(int ordinal, System.Data.SqlTypes.SqlDecimal value) => throw null; + public virtual void SetSqlDouble(int ordinal, System.Data.SqlTypes.SqlDouble value) => throw null; + public virtual void SetSqlGuid(int ordinal, System.Data.SqlTypes.SqlGuid value) => throw null; + public virtual void SetSqlInt16(int ordinal, System.Data.SqlTypes.SqlInt16 value) => throw null; + public virtual void SetSqlInt32(int ordinal, System.Data.SqlTypes.SqlInt32 value) => throw null; + public virtual void SetSqlInt64(int ordinal, System.Data.SqlTypes.SqlInt64 value) => throw null; + public virtual void SetSqlMoney(int ordinal, System.Data.SqlTypes.SqlMoney value) => throw null; + public virtual void SetSqlSingle(int ordinal, System.Data.SqlTypes.SqlSingle value) => throw null; + public virtual void SetSqlString(int ordinal, System.Data.SqlTypes.SqlString value) => throw null; + public virtual void SetSqlXml(int ordinal, System.Data.SqlTypes.SqlXml value) => throw null; + public virtual void SetString(int ordinal, string value) => throw null; + public virtual void SetTimeSpan(int ordinal, System.TimeSpan value) => throw null; + public virtual void SetValue(int ordinal, object value) => throw null; + public virtual int SetValues(params object[] values) => throw null; + public virtual object this[int ordinal] { get => throw null; } + public virtual object this[string name] { get => throw null; } + } + public sealed class SqlMetaData + { + public bool Adjust(bool value) => throw null; + public byte Adjust(byte value) => throw null; + public byte[] Adjust(byte[] value) => throw null; + public char Adjust(char value) => throw null; + public char[] Adjust(char[] value) => throw null; + public System.Data.SqlTypes.SqlBinary Adjust(System.Data.SqlTypes.SqlBinary value) => throw null; + public System.Data.SqlTypes.SqlBoolean Adjust(System.Data.SqlTypes.SqlBoolean value) => throw null; + public System.Data.SqlTypes.SqlByte Adjust(System.Data.SqlTypes.SqlByte value) => throw null; + public System.Data.SqlTypes.SqlBytes Adjust(System.Data.SqlTypes.SqlBytes value) => throw null; + public System.Data.SqlTypes.SqlChars Adjust(System.Data.SqlTypes.SqlChars value) => throw null; + public System.Data.SqlTypes.SqlDateTime Adjust(System.Data.SqlTypes.SqlDateTime value) => throw null; + public System.Data.SqlTypes.SqlDecimal Adjust(System.Data.SqlTypes.SqlDecimal value) => throw null; + public System.Data.SqlTypes.SqlDouble Adjust(System.Data.SqlTypes.SqlDouble value) => throw null; + public System.Data.SqlTypes.SqlGuid Adjust(System.Data.SqlTypes.SqlGuid value) => throw null; + public System.Data.SqlTypes.SqlInt16 Adjust(System.Data.SqlTypes.SqlInt16 value) => throw null; + public System.Data.SqlTypes.SqlInt32 Adjust(System.Data.SqlTypes.SqlInt32 value) => throw null; + public System.Data.SqlTypes.SqlInt64 Adjust(System.Data.SqlTypes.SqlInt64 value) => throw null; + public System.Data.SqlTypes.SqlMoney Adjust(System.Data.SqlTypes.SqlMoney value) => throw null; + public System.Data.SqlTypes.SqlSingle Adjust(System.Data.SqlTypes.SqlSingle value) => throw null; + public System.Data.SqlTypes.SqlString Adjust(System.Data.SqlTypes.SqlString value) => throw null; + public System.Data.SqlTypes.SqlXml Adjust(System.Data.SqlTypes.SqlXml value) => throw null; + public System.DateTime Adjust(System.DateTime value) => throw null; + public System.DateTimeOffset Adjust(System.DateTimeOffset value) => throw null; + public decimal Adjust(decimal value) => throw null; + public double Adjust(double value) => throw null; + public System.Guid Adjust(System.Guid value) => throw null; + public short Adjust(short value) => throw null; + public int Adjust(int value) => throw null; + public long Adjust(long value) => throw null; + public object Adjust(object value) => throw null; + public float Adjust(float value) => throw null; + public string Adjust(string value) => throw null; + public System.TimeSpan Adjust(System.TimeSpan value) => throw null; + public System.Data.SqlTypes.SqlCompareOptions CompareOptions { get => throw null; } + public SqlMetaData(string name, System.Data.SqlDbType dbType) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, byte precision, byte scale) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, byte precision, byte scale, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, byte precision, byte scale, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, byte precision, byte scale, long localeId, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, long maxLength, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType, string serverTypeName) => throw null; + public SqlMetaData(string name, System.Data.SqlDbType dbType, System.Type userDefinedType, string serverTypeName, bool useServerDefault, bool isUniqueKey, Microsoft.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal) => throw null; + public System.Data.DbType DbType { get => throw null; } + public static Microsoft.Data.SqlClient.Server.SqlMetaData InferFromValue(object value, string name) => throw null; + public bool IsUniqueKey { get => throw null; } + public long LocaleId { get => throw null; } + public static long Max { get => throw null; } + public long MaxLength { get => throw null; } + public string Name { get => throw null; } + public byte Precision { get => throw null; } + public byte Scale { get => throw null; } + public Microsoft.Data.SqlClient.SortOrder SortOrder { get => throw null; } + public int SortOrdinal { get => throw null; } + public System.Data.SqlDbType SqlDbType { get => throw null; } + public System.Type Type { get => throw null; } + public string TypeName { get => throw null; } + public bool UseServerDefault { get => throw null; } + public string XmlSchemaCollectionDatabase { get => throw null; } + public string XmlSchemaCollectionName { get => throw null; } + public string XmlSchemaCollectionOwningSchema { get => throw null; } + } + } + public enum SortOrder + { + Unspecified = -1, + Ascending = 0, + Descending = 1, + } + public abstract class SqlAuthenticationInitializer + { + protected SqlAuthenticationInitializer() => throw null; + public abstract void Initialize(); + } + public enum SqlAuthenticationMethod + { + NotSpecified = 0, + SqlPassword = 1, + ActiveDirectoryPassword = 2, + ActiveDirectoryIntegrated = 3, + ActiveDirectoryInteractive = 4, + ActiveDirectoryServicePrincipal = 5, + ActiveDirectoryDeviceCodeFlow = 6, + ActiveDirectoryManagedIdentity = 7, + ActiveDirectoryMSI = 8, + ActiveDirectoryDefault = 9, + ActiveDirectoryWorkloadIdentity = 10, + } + public class SqlAuthenticationParameters + { + public Microsoft.Data.SqlClient.SqlAuthenticationMethod AuthenticationMethod { get => throw null; } + public string Authority { get => throw null; } + public System.Guid ConnectionId { get => throw null; } + public int ConnectionTimeout { get => throw null; } + protected SqlAuthenticationParameters(Microsoft.Data.SqlClient.SqlAuthenticationMethod authenticationMethod, string serverName, string databaseName, string resource, string authority, string userId, string password, System.Guid connectionId, int connectionTimeout) => throw null; + public string DatabaseName { get => throw null; } + public string Password { get => throw null; } + public string Resource { get => throw null; } + public string ServerName { get => throw null; } + public string UserId { get => throw null; } + } + public abstract class SqlAuthenticationProvider + { + public abstract System.Threading.Tasks.Task AcquireTokenAsync(Microsoft.Data.SqlClient.SqlAuthenticationParameters parameters); + public virtual void BeforeLoad(Microsoft.Data.SqlClient.SqlAuthenticationMethod authenticationMethod) => throw null; + public virtual void BeforeUnload(Microsoft.Data.SqlClient.SqlAuthenticationMethod authenticationMethod) => throw null; + protected SqlAuthenticationProvider() => throw null; + public static Microsoft.Data.SqlClient.SqlAuthenticationProvider GetProvider(Microsoft.Data.SqlClient.SqlAuthenticationMethod authenticationMethod) => throw null; + public abstract bool IsSupported(Microsoft.Data.SqlClient.SqlAuthenticationMethod authenticationMethod); + public static bool SetProvider(Microsoft.Data.SqlClient.SqlAuthenticationMethod authenticationMethod, Microsoft.Data.SqlClient.SqlAuthenticationProvider provider) => throw null; + } + public class SqlAuthenticationToken + { + public string AccessToken { get => throw null; } + public SqlAuthenticationToken(string accessToken, System.DateTimeOffset expiresOn) => throw null; + public System.DateTimeOffset ExpiresOn { get => throw null; } + } + public class SqlBatch : System.Data.Common.DbBatch + { + public Microsoft.Data.SqlClient.SqlBatchCommandCollection BatchCommands { get => throw null; } + public override void Cancel() => throw null; + public System.Collections.Generic.List Commands { get => throw null; } + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; set { } } + protected override System.Data.Common.DbBatchCommand CreateDbBatchCommand() => throw null; + public SqlBatch() => throw null; + public SqlBatch(Microsoft.Data.SqlClient.SqlConnection connection, Microsoft.Data.SqlClient.SqlTransaction transaction = default(Microsoft.Data.SqlClient.SqlTransaction)) => throw null; + protected override System.Data.Common.DbBatchCommandCollection DbBatchCommands { get => throw null; } + protected override System.Data.Common.DbConnection DbConnection { get => throw null; set { } } + protected override System.Data.Common.DbTransaction DbTransaction { get => throw null; set { } } + public override void Dispose() => throw null; + protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) => throw null; + protected override System.Threading.Tasks.Task ExecuteDbDataReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) => throw null; + public override int ExecuteNonQuery() => throw null; + public override System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader() => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override object ExecuteScalar() => throw null; + public override System.Threading.Tasks.Task ExecuteScalarAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override void Prepare() => throw null; + public override System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public override int Timeout { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlTransaction Transaction { get => throw null; set { } } + } + public class SqlBatchCommand : System.Data.Common.DbBatchCommand + { + public Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting ColumnEncryptionSetting { get => throw null; set { } } + public System.Data.CommandBehavior CommandBehavior { get => throw null; set { } } + public override string CommandText { get => throw null; set { } } + public override System.Data.CommandType CommandType { get => throw null; set { } } + public SqlBatchCommand() => throw null; + public SqlBatchCommand(string commandText, System.Data.CommandType commandType = default(System.Data.CommandType), System.Collections.Generic.IEnumerable parameters = default(System.Collections.Generic.IEnumerable), Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting columnEncryptionSetting = default(Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting)) => throw null; + protected override System.Data.Common.DbParameterCollection DbParameterCollection { get => throw null; } + public Microsoft.Data.SqlClient.SqlParameterCollection Parameters { get => throw null; } + public override int RecordsAffected { get => throw null; } + } + public class SqlBatchCommandCollection : System.Data.Common.DbBatchCommandCollection, System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IList + { + public void Add(Microsoft.Data.SqlClient.SqlBatchCommand item) => throw null; + public override void Add(System.Data.Common.DbBatchCommand item) => throw null; + public override void Clear() => throw null; + public bool Contains(Microsoft.Data.SqlClient.SqlBatchCommand item) => throw null; + public override bool Contains(System.Data.Common.DbBatchCommand item) => throw null; + public void CopyTo(Microsoft.Data.SqlClient.SqlBatchCommand[] array, int arrayIndex) => throw null; + public override void CopyTo(System.Data.Common.DbBatchCommand[] array, int arrayIndex) => throw null; + public override int Count { get => throw null; } + public SqlBatchCommandCollection() => throw null; + protected override System.Data.Common.DbBatchCommand GetBatchCommand(int index) => throw null; + System.Collections.Generic.IEnumerator System.Collections.Generic.IEnumerable.GetEnumerator() => throw null; + public override System.Collections.Generic.IEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public int IndexOf(Microsoft.Data.SqlClient.SqlBatchCommand item) => throw null; + public override int IndexOf(System.Data.Common.DbBatchCommand item) => throw null; + public void Insert(int index, Microsoft.Data.SqlClient.SqlBatchCommand item) => throw null; + public override void Insert(int index, System.Data.Common.DbBatchCommand item) => throw null; + public override bool IsReadOnly { get => throw null; } + Microsoft.Data.SqlClient.SqlBatchCommand System.Collections.Generic.IList.this[int index] { get => throw null; set { } } + public bool Remove(Microsoft.Data.SqlClient.SqlBatchCommand item) => throw null; + public override bool Remove(System.Data.Common.DbBatchCommand item) => throw null; + public override void RemoveAt(int index) => throw null; + protected override void SetBatchCommand(int index, System.Data.Common.DbBatchCommand batchCommand) => throw null; + public Microsoft.Data.SqlClient.SqlBatchCommand this[int index] { get => throw null; set { } } + } + public sealed class SqlBulkCopy : System.IDisposable + { + public int BatchSize { get => throw null; set { } } + public int BulkCopyTimeout { get => throw null; set { } } + public void Close() => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMappingCollection ColumnMappings { get => throw null; } + public Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHintCollection ColumnOrderHints { get => throw null; } + public SqlBulkCopy(Microsoft.Data.SqlClient.SqlConnection connection) => throw null; + public SqlBulkCopy(Microsoft.Data.SqlClient.SqlConnection connection, Microsoft.Data.SqlClient.SqlBulkCopyOptions copyOptions, Microsoft.Data.SqlClient.SqlTransaction externalTransaction) => throw null; + public SqlBulkCopy(string connectionString) => throw null; + public SqlBulkCopy(string connectionString, Microsoft.Data.SqlClient.SqlBulkCopyOptions copyOptions) => throw null; + public string DestinationTableName { get => throw null; set { } } + void System.IDisposable.Dispose() => throw null; + public bool EnableStreaming { get => throw null; set { } } + public int NotifyAfter { get => throw null; set { } } + public int RowsCopied { get => throw null; } + public long RowsCopied64 { get => throw null; } + public event Microsoft.Data.SqlClient.SqlRowsCopiedEventHandler SqlRowsCopied; + public void WriteToServer(System.Data.Common.DbDataReader reader) => throw null; + public void WriteToServer(System.Data.DataTable table) => throw null; + public void WriteToServer(System.Data.DataTable table, System.Data.DataRowState rowState) => throw null; + public void WriteToServer(System.Data.DataRow[] rows) => throw null; + public void WriteToServer(System.Data.IDataReader reader) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader) => throw null; + public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null; + } + public sealed class SqlBulkCopyColumnMapping + { + public SqlBulkCopyColumnMapping() => throw null; + public SqlBulkCopyColumnMapping(int sourceColumnOrdinal, int destinationOrdinal) => throw null; + public SqlBulkCopyColumnMapping(int sourceColumnOrdinal, string destinationColumn) => throw null; + public SqlBulkCopyColumnMapping(string sourceColumn, int destinationOrdinal) => throw null; + public SqlBulkCopyColumnMapping(string sourceColumn, string destinationColumn) => throw null; + public string DestinationColumn { get => throw null; set { } } + public int DestinationOrdinal { get => throw null; set { } } + public string SourceColumn { get => throw null; set { } } + public int SourceOrdinal { get => throw null; set { } } + } + public sealed class SqlBulkCopyColumnMappingCollection : System.Collections.CollectionBase + { + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add(Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping bulkCopyColumnMapping) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add(int sourceColumnIndex, int destinationColumnIndex) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add(int sourceColumnIndex, string destinationColumn) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add(string sourceColumn, int destinationColumnIndex) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add(string sourceColumn, string destinationColumn) => throw null; + public void Clear() => throw null; + public bool Contains(Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; + public void CopyTo(Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping[] array, int index) => throw null; + public int IndexOf(Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; + public void Insert(int index, Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; + public void Remove(Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping value) => throw null; + public void RemoveAt(int index) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping this[int index] { get => throw null; } + } + public sealed class SqlBulkCopyColumnOrderHint + { + public string Column { get => throw null; set { } } + public SqlBulkCopyColumnOrderHint(string column, Microsoft.Data.SqlClient.SortOrder sortOrder) => throw null; + public Microsoft.Data.SqlClient.SortOrder SortOrder { get => throw null; set { } } + } + public sealed class SqlBulkCopyColumnOrderHintCollection : System.Collections.CollectionBase + { + public Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint Add(Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint columnOrderHint) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint Add(string column, Microsoft.Data.SqlClient.SortOrder sortOrder) => throw null; + public void Clear() => throw null; + public bool Contains(Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint value) => throw null; + public void CopyTo(Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint[] array, int index) => throw null; + public SqlBulkCopyColumnOrderHintCollection() => throw null; + public int IndexOf(Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint value) => throw null; + public void Insert(int index, Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint columnOrderHint) => throw null; + public void Remove(Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint columnOrderHint) => throw null; + public void RemoveAt(int index) => throw null; + public Microsoft.Data.SqlClient.SqlBulkCopyColumnOrderHint this[int index] { get => throw null; } + } + [System.Flags] + public enum SqlBulkCopyOptions + { + AllowEncryptedValueModifications = 64, + CheckConstraints = 2, + Default = 0, + FireTriggers = 16, + KeepIdentity = 1, + KeepNulls = 8, + TableLock = 4, + UseInternalTransaction = 32, + } + public sealed class SqlClientFactory : System.Data.Common.DbProviderFactory + { + public override bool CanCreateBatch { get => throw null; } + public override System.Data.Common.DbBatch CreateBatch() => throw null; + public override System.Data.Common.DbBatchCommand CreateBatchCommand() => throw null; + public override System.Data.Common.DbCommand CreateCommand() => throw null; + public override System.Data.Common.DbCommandBuilder CreateCommandBuilder() => throw null; + public override System.Data.Common.DbConnection CreateConnection() => throw null; + public override System.Data.Common.DbConnectionStringBuilder CreateConnectionStringBuilder() => throw null; + public override System.Data.Common.DbDataAdapter CreateDataAdapter() => throw null; + public override System.Data.Common.DbDataSourceEnumerator CreateDataSourceEnumerator() => throw null; + public override System.Data.Common.DbParameter CreateParameter() => throw null; + public static readonly Microsoft.Data.SqlClient.SqlClientFactory Instance; + } + public class SqlClientLogger + { + public SqlClientLogger() => throw null; + public bool IsLoggingEnabled { get => throw null; } + public bool LogAssert(bool value, string type, string method, string message) => throw null; + public void LogError(string type, string method, string message) => throw null; + public void LogInfo(string type, string method, string message) => throw null; + public void LogWarning(string type, string method, string message) => throw null; + } + public static class SqlClientMetaDataCollectionNames + { + public static readonly string AllColumns; + public static readonly string Columns; + public static readonly string ColumnSetColumns; + public static readonly string Databases; + public static readonly string ForeignKeys; + public static readonly string IndexColumns; + public static readonly string Indexes; + public static readonly string ProcedureParameters; + public static readonly string Procedures; + public static readonly string StructuredTypeMembers; + public static readonly string Tables; + public static readonly string UserDefinedTypes; + public static readonly string Users; + public static readonly string ViewColumns; + public static readonly string Views; + } + public class SqlColumnEncryptionCertificateStoreProvider : Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider + { + public SqlColumnEncryptionCertificateStoreProvider() => throw null; + public override byte[] DecryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) => throw null; + public override byte[] EncryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] columnEncryptionKey) => throw null; + public const string ProviderName = default; + public override byte[] SignColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations) => throw null; + public override bool VerifyColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations, byte[] signature) => throw null; + } + public class SqlColumnEncryptionCngProvider : Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider + { + public SqlColumnEncryptionCngProvider() => throw null; + public override byte[] DecryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) => throw null; + public override byte[] EncryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] columnEncryptionKey) => throw null; + public const string ProviderName = default; + public override byte[] SignColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations) => throw null; + public override bool VerifyColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations, byte[] signature) => throw null; + } + public class SqlColumnEncryptionCspProvider : Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider + { + public SqlColumnEncryptionCspProvider() => throw null; + public override byte[] DecryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) => throw null; + public override byte[] EncryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] columnEncryptionKey) => throw null; + public const string ProviderName = default; + public override byte[] SignColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations) => throw null; + public override bool VerifyColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations, byte[] signature) => throw null; + } + public abstract class SqlColumnEncryptionKeyStoreProvider + { + public virtual System.TimeSpan? ColumnEncryptionKeyCacheTtl { get => throw null; set { } } + protected SqlColumnEncryptionKeyStoreProvider() => throw null; + public abstract byte[] DecryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] encryptedColumnEncryptionKey); + public abstract byte[] EncryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] columnEncryptionKey); + public virtual byte[] SignColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations) => throw null; + public virtual bool VerifyColumnMasterKeyMetadata(string masterKeyPath, bool allowEnclaveComputations, byte[] signature) => throw null; + } + public sealed class SqlCommand : System.Data.Common.DbCommand, System.ICloneable + { + public System.IAsyncResult BeginExecuteNonQuery() => throw null; + public System.IAsyncResult BeginExecuteNonQuery(System.AsyncCallback callback, object stateObject) => throw null; + public System.IAsyncResult BeginExecuteReader() => throw null; + public System.IAsyncResult BeginExecuteReader(System.AsyncCallback callback, object stateObject) => throw null; + public System.IAsyncResult BeginExecuteReader(System.AsyncCallback callback, object stateObject, System.Data.CommandBehavior behavior) => throw null; + public System.IAsyncResult BeginExecuteReader(System.Data.CommandBehavior behavior) => throw null; + public System.IAsyncResult BeginExecuteXmlReader() => throw null; + public System.IAsyncResult BeginExecuteXmlReader(System.AsyncCallback callback, object stateObject) => throw null; + public override void Cancel() => throw null; + object System.ICloneable.Clone() => throw null; + public Microsoft.Data.SqlClient.SqlCommand Clone() => throw null; + public Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting ColumnEncryptionSetting { get => throw null; } + public override string CommandText { get => throw null; set { } } + public override int CommandTimeout { get => throw null; set { } } + public override System.Data.CommandType CommandType { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; set { } } + protected override System.Data.Common.DbParameter CreateDbParameter() => throw null; + public Microsoft.Data.SqlClient.SqlParameter CreateParameter() => throw null; + public SqlCommand() => throw null; + public SqlCommand(string cmdText) => throw null; + public SqlCommand(string cmdText, Microsoft.Data.SqlClient.SqlConnection connection) => throw null; + public SqlCommand(string cmdText, Microsoft.Data.SqlClient.SqlConnection connection, Microsoft.Data.SqlClient.SqlTransaction transaction) => throw null; + public SqlCommand(string cmdText, Microsoft.Data.SqlClient.SqlConnection connection, Microsoft.Data.SqlClient.SqlTransaction transaction, Microsoft.Data.SqlClient.SqlCommandColumnEncryptionSetting columnEncryptionSetting) => throw null; + protected override System.Data.Common.DbConnection DbConnection { get => throw null; set { } } + protected override System.Data.Common.DbParameterCollection DbParameterCollection { get => throw null; } + protected override System.Data.Common.DbTransaction DbTransaction { get => throw null; set { } } + public override bool DesignTimeVisible { get => throw null; set { } } + protected override void Dispose(bool disposing) => throw null; + public bool EnableOptimizedParameterBinding { get => throw null; set { } } + public int EndExecuteNonQuery(System.IAsyncResult asyncResult) => throw null; + public Microsoft.Data.SqlClient.SqlDataReader EndExecuteReader(System.IAsyncResult asyncResult) => throw null; + public System.Xml.XmlReader EndExecuteXmlReader(System.IAsyncResult asyncResult) => throw null; + protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) => throw null; + protected override System.Threading.Tasks.Task ExecuteDbDataReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) => throw null; + public override int ExecuteNonQuery() => throw null; + public override System.Threading.Tasks.Task ExecuteNonQueryAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader() => throw null; + public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior) => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync() => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior) => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ExecuteReaderAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override object ExecuteScalar() => throw null; + public override System.Threading.Tasks.Task ExecuteScalarAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Xml.XmlReader ExecuteXmlReader() => throw null; + public System.Threading.Tasks.Task ExecuteXmlReaderAsync() => throw null; + public System.Threading.Tasks.Task ExecuteXmlReaderAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public Microsoft.Data.Sql.SqlNotificationRequest Notification { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlParameterCollection Parameters { get => throw null; } + public override void Prepare() => throw null; + public void RegisterColumnEncryptionKeyStoreProvidersOnCommand(System.Collections.Generic.IDictionary customProviders) => throw null; + public void ResetCommandTimeout() => throw null; + public Microsoft.Data.SqlClient.SqlRetryLogicBaseProvider RetryLogicProvider { get => throw null; set { } } + public event System.Data.StatementCompletedEventHandler StatementCompleted; + public Microsoft.Data.SqlClient.SqlTransaction Transaction { get => throw null; set { } } + public override System.Data.UpdateRowSource UpdatedRowSource { get => throw null; set { } } + } + public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder + { + protected override void ApplyParameterInfo(System.Data.Common.DbParameter parameter, System.Data.DataRow datarow, System.Data.StatementType statementType, bool whereClause) => throw null; + public override System.Data.Common.CatalogLocation CatalogLocation { get => throw null; set { } } + public override string CatalogSeparator { get => throw null; set { } } + public SqlCommandBuilder() => throw null; + public SqlCommandBuilder(Microsoft.Data.SqlClient.SqlDataAdapter adapter) => throw null; + public Microsoft.Data.SqlClient.SqlDataAdapter DataAdapter { get => throw null; set { } } + public static void DeriveParameters(Microsoft.Data.SqlClient.SqlCommand command) => throw null; + public Microsoft.Data.SqlClient.SqlCommand GetDeleteCommand() => throw null; + public Microsoft.Data.SqlClient.SqlCommand GetDeleteCommand(bool useColumnsForParameterNames) => throw null; + public Microsoft.Data.SqlClient.SqlCommand GetInsertCommand() => throw null; + public Microsoft.Data.SqlClient.SqlCommand GetInsertCommand(bool useColumnsForParameterNames) => throw null; + protected override string GetParameterName(int parameterOrdinal) => throw null; + protected override string GetParameterName(string parameterName) => throw null; + protected override string GetParameterPlaceholder(int parameterOrdinal) => throw null; + protected override System.Data.DataTable GetSchemaTable(System.Data.Common.DbCommand srcCommand) => throw null; + public Microsoft.Data.SqlClient.SqlCommand GetUpdateCommand() => throw null; + public Microsoft.Data.SqlClient.SqlCommand GetUpdateCommand(bool useColumnsForParameterNames) => throw null; + protected override System.Data.Common.DbCommand InitializeCommand(System.Data.Common.DbCommand command) => throw null; + public override string QuoteIdentifier(string unquotedIdentifier) => throw null; + public override string QuotePrefix { get => throw null; set { } } + public override string QuoteSuffix { get => throw null; set { } } + public override string SchemaSeparator { get => throw null; set { } } + protected override void SetRowUpdatingHandler(System.Data.Common.DbDataAdapter adapter) => throw null; + public override string UnquoteIdentifier(string quotedIdentifier) => throw null; + } + public enum SqlCommandColumnEncryptionSetting + { + Disabled = 3, + Enabled = 1, + ResultSetOnly = 2, + UseConnectionSetting = 0, + } + public sealed class SqlConfigurableRetryFactory + { + public static Microsoft.Data.SqlClient.SqlRetryLogicBaseProvider CreateExponentialRetryProvider(Microsoft.Data.SqlClient.SqlRetryLogicOption retryLogicOption) => throw null; + public static Microsoft.Data.SqlClient.SqlRetryLogicBaseProvider CreateFixedRetryProvider(Microsoft.Data.SqlClient.SqlRetryLogicOption retryLogicOption) => throw null; + public static Microsoft.Data.SqlClient.SqlRetryLogicBaseProvider CreateIncrementalRetryProvider(Microsoft.Data.SqlClient.SqlRetryLogicOption retryLogicOption) => throw null; + public static Microsoft.Data.SqlClient.SqlRetryLogicBaseProvider CreateNoneRetryProvider() => throw null; + public SqlConfigurableRetryFactory() => throw null; + } + public sealed class SqlConnection : System.Data.Common.DbConnection, System.ICloneable + { + public string AccessToken { get => throw null; set { } } + public System.Func> AccessTokenCallback { get => throw null; set { } } + protected override System.Data.Common.DbTransaction BeginDbTransaction(System.Data.IsolationLevel isolationLevel) => throw null; + public Microsoft.Data.SqlClient.SqlTransaction BeginTransaction() => throw null; + public Microsoft.Data.SqlClient.SqlTransaction BeginTransaction(System.Data.IsolationLevel iso) => throw null; + public Microsoft.Data.SqlClient.SqlTransaction BeginTransaction(System.Data.IsolationLevel iso, string transactionName) => throw null; + public Microsoft.Data.SqlClient.SqlTransaction BeginTransaction(string transactionName) => throw null; + public override bool CanCreateBatch { get => throw null; } + public override void ChangeDatabase(string database) => throw null; + public static void ChangePassword(string connectionString, Microsoft.Data.SqlClient.SqlCredential credential, System.Security.SecureString newSecurePassword) => throw null; + public static void ChangePassword(string connectionString, string newPassword) => throw null; + public static void ClearAllPools() => throw null; + public static void ClearPool(Microsoft.Data.SqlClient.SqlConnection connection) => throw null; + public System.Guid ClientConnectionId { get => throw null; } + object System.ICloneable.Clone() => throw null; + public override void Close() => throw null; + public static System.TimeSpan ColumnEncryptionKeyCacheTtl { get => throw null; set { } } + public static bool ColumnEncryptionQueryMetadataCacheEnabled { get => throw null; set { } } + public static System.Collections.Generic.IDictionary> ColumnEncryptionTrustedMasterKeyPaths { get => throw null; } + public int CommandTimeout { get => throw null; } + public override string ConnectionString { get => throw null; set { } } + public override int ConnectionTimeout { get => throw null; } + public Microsoft.Data.SqlClient.SqlCommand CreateCommand() => throw null; + protected override System.Data.Common.DbBatch CreateDbBatch() => throw null; + protected override System.Data.Common.DbCommand CreateDbCommand() => throw null; + public Microsoft.Data.SqlClient.SqlCredential Credential { get => throw null; set { } } + public SqlConnection() => throw null; + public SqlConnection(string connectionString) => throw null; + public SqlConnection(string connectionString, Microsoft.Data.SqlClient.SqlCredential credential) => throw null; + public override string Database { get => throw null; } + public override string DataSource { get => throw null; } + protected override void Dispose(bool disposing) => throw null; + public bool FireInfoMessageEventOnUserErrors { get => throw null; set { } } + public override System.Data.DataTable GetSchema() => throw null; + public override System.Data.DataTable GetSchema(string collectionName) => throw null; + public override System.Data.DataTable GetSchema(string collectionName, string[] restrictionValues) => throw null; + public event Microsoft.Data.SqlClient.SqlInfoMessageEventHandler InfoMessage; + public override void Open() => throw null; + public void Open(Microsoft.Data.SqlClient.SqlConnectionOverrides overrides) => throw null; + public override System.Threading.Tasks.Task OpenAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task OpenAsync(Microsoft.Data.SqlClient.SqlConnectionOverrides overrides, System.Threading.CancellationToken cancellationToken) => throw null; + public int PacketSize { get => throw null; } + public static void RegisterColumnEncryptionKeyStoreProviders(System.Collections.Generic.IDictionary customProviders) => throw null; + public void RegisterColumnEncryptionKeyStoreProvidersOnConnection(System.Collections.Generic.IDictionary customProviders) => throw null; + public void ResetStatistics() => throw null; + public System.Collections.Generic.IDictionary RetrieveInternalInfo() => throw null; + public System.Collections.IDictionary RetrieveStatistics() => throw null; + public Microsoft.Data.SqlClient.SqlRetryLogicBaseProvider RetryLogicProvider { get => throw null; set { } } + public int ServerProcessId { get => throw null; } + public override string ServerVersion { get => throw null; } + public override System.Data.ConnectionState State { get => throw null; } + public bool StatisticsEnabled { get => throw null; set { } } + public string WorkstationId { get => throw null; } + } + public enum SqlConnectionAttestationProtocol + { + NotSpecified = 0, + AAS = 1, + None = 2, + HGS = 3, + } + public enum SqlConnectionColumnEncryptionSetting + { + Disabled = 0, + Enabled = 1, + } + public sealed class SqlConnectionEncryptOption + { + public SqlConnectionEncryptOption() => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public static Microsoft.Data.SqlClient.SqlConnectionEncryptOption Mandatory { get => throw null; } + public static implicit operator Microsoft.Data.SqlClient.SqlConnectionEncryptOption(bool value) => throw null; + public static implicit operator bool(Microsoft.Data.SqlClient.SqlConnectionEncryptOption value) => throw null; + public static Microsoft.Data.SqlClient.SqlConnectionEncryptOption Optional { get => throw null; } + public static Microsoft.Data.SqlClient.SqlConnectionEncryptOption Parse(string value) => throw null; + public static Microsoft.Data.SqlClient.SqlConnectionEncryptOption Strict { get => throw null; } + public override string ToString() => throw null; + public static bool TryParse(string value, out Microsoft.Data.SqlClient.SqlConnectionEncryptOption result) => throw null; + } + public enum SqlConnectionIPAddressPreference + { + IPv4First = 0, + IPv6First = 1, + UsePlatformDefault = 2, + } + public enum SqlConnectionOverrides + { + None = 0, + OpenWithoutRetry = 1, + } + public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder + { + public Microsoft.Data.SqlClient.ApplicationIntent ApplicationIntent { get => throw null; set { } } + public string ApplicationName { get => throw null; set { } } + public string AttachDBFilename { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlConnectionAttestationProtocol AttestationProtocol { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlAuthenticationMethod Authentication { get => throw null; set { } } + public override void Clear() => throw null; + public Microsoft.Data.SqlClient.SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting { get => throw null; set { } } + public int CommandTimeout { get => throw null; set { } } + public int ConnectRetryCount { get => throw null; set { } } + public int ConnectRetryInterval { get => throw null; set { } } + public int ConnectTimeout { get => throw null; set { } } + public override bool ContainsKey(string keyword) => throw null; + public SqlConnectionStringBuilder() => throw null; + public SqlConnectionStringBuilder(string connectionString) => throw null; + public string CurrentLanguage { get => throw null; set { } } + public string DataSource { get => throw null; set { } } + public string EnclaveAttestationUrl { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlConnectionEncryptOption Encrypt { get => throw null; set { } } + public bool Enlist { get => throw null; set { } } + public string FailoverPartner { get => throw null; set { } } + public string FailoverPartnerSPN { get => throw null; set { } } + public string HostNameInCertificate { get => throw null; set { } } + public string InitialCatalog { get => throw null; set { } } + public bool IntegratedSecurity { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlConnectionIPAddressPreference IPAddressPreference { get => throw null; set { } } + public override bool IsFixedSize { get => throw null; } + public override System.Collections.ICollection Keys { get => throw null; } + public int LoadBalanceTimeout { get => throw null; set { } } + public int MaxPoolSize { get => throw null; set { } } + public int MinPoolSize { get => throw null; set { } } + public bool MultipleActiveResultSets { get => throw null; set { } } + public bool MultiSubnetFailover { get => throw null; set { } } + public int PacketSize { get => throw null; set { } } + public string Password { get => throw null; set { } } + public bool PersistSecurityInfo { get => throw null; set { } } + public Microsoft.Data.SqlClient.PoolBlockingPeriod PoolBlockingPeriod { get => throw null; set { } } + public bool Pooling { get => throw null; set { } } + public override bool Remove(string keyword) => throw null; + public bool Replication { get => throw null; set { } } + public string ServerCertificate { get => throw null; set { } } + public string ServerSPN { get => throw null; set { } } + public override bool ShouldSerialize(string keyword) => throw null; + public override object this[string keyword] { get => throw null; set { } } + public string TransactionBinding { get => throw null; set { } } + public bool TrustServerCertificate { get => throw null; set { } } + public override bool TryGetValue(string keyword, out object value) => throw null; + public string TypeSystemVersion { get => throw null; set { } } + public string UserID { get => throw null; set { } } + public bool UserInstance { get => throw null; set { } } + public override System.Collections.ICollection Values { get => throw null; } + public string WorkstationID { get => throw null; set { } } + } + public sealed class SqlCredential + { + public SqlCredential(string userId, System.Security.SecureString password) => throw null; + public System.Security.SecureString Password { get => throw null; } + public string UserId { get => throw null; } + } + public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, System.ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter + { + object System.ICloneable.Clone() => throw null; + public SqlDataAdapter() => throw null; + public SqlDataAdapter(Microsoft.Data.SqlClient.SqlCommand selectCommand) => throw null; + public SqlDataAdapter(string selectCommandText, Microsoft.Data.SqlClient.SqlConnection selectConnection) => throw null; + public SqlDataAdapter(string selectCommandText, string selectConnectionString) => throw null; + public Microsoft.Data.SqlClient.SqlCommand DeleteCommand { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlCommand InsertCommand { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.InsertCommand { get => throw null; set { } } + protected override void OnRowUpdated(System.Data.Common.RowUpdatedEventArgs value) => throw null; + protected override void OnRowUpdating(System.Data.Common.RowUpdatingEventArgs value) => throw null; + public event Microsoft.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated; + public event Microsoft.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating; + public Microsoft.Data.SqlClient.SqlCommand SelectCommand { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.SelectCommand { get => throw null; set { } } + public override int UpdateBatchSize { get => throw null; set { } } + System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlCommand UpdateCommand { get => throw null; set { } } + } + public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.IDataReader, System.Data.IDataRecord, System.IDisposable + { + public override void Close() => throw null; + protected Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + public override int Depth { get => throw null; } + public override int FieldCount { get => throw null; } + public override bool GetBoolean(int i) => throw null; + public override byte GetByte(int i) => throw null; + public override long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length) => throw null; + public override char GetChar(int i) => throw null; + public override long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length) => throw null; + public System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema() => throw null; + System.Data.IDataReader System.Data.IDataRecord.GetData(int i) => throw null; + public override string GetDataTypeName(int i) => throw null; + public override System.DateTime GetDateTime(int i) => throw null; + public virtual System.DateTimeOffset GetDateTimeOffset(int i) => throw null; + public override decimal GetDecimal(int i) => throw null; + public override double GetDouble(int i) => throw null; + public override System.Collections.IEnumerator GetEnumerator() => throw null; + public override System.Type GetFieldType(int i) => throw null; + public override T GetFieldValue(int i) => throw null; + public override System.Threading.Tasks.Task GetFieldValueAsync(int i, System.Threading.CancellationToken cancellationToken) => throw null; + public override float GetFloat(int i) => throw null; + public override System.Guid GetGuid(int i) => throw null; + public override short GetInt16(int i) => throw null; + public override int GetInt32(int i) => throw null; + public override long GetInt64(int i) => throw null; + public override string GetName(int i) => throw null; + public override int GetOrdinal(string name) => throw null; + public override System.Type GetProviderSpecificFieldType(int i) => throw null; + public override object GetProviderSpecificValue(int i) => throw null; + public override int GetProviderSpecificValues(object[] values) => throw null; + public override System.Data.DataTable GetSchemaTable() => throw null; + public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary(int i) => throw null; + public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean(int i) => throw null; + public virtual System.Data.SqlTypes.SqlByte GetSqlByte(int i) => throw null; + public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes(int i) => throw null; + public virtual System.Data.SqlTypes.SqlChars GetSqlChars(int i) => throw null; + public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime(int i) => throw null; + public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal(int i) => throw null; + public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble(int i) => throw null; + public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid(int i) => throw null; + public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16(int i) => throw null; + public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32(int i) => throw null; + public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64(int i) => throw null; + public virtual Microsoft.Data.SqlTypes.SqlJson GetSqlJson(int i) => throw null; + public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney(int i) => throw null; + public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle(int i) => throw null; + public virtual System.Data.SqlTypes.SqlString GetSqlString(int i) => throw null; + public virtual object GetSqlValue(int i) => throw null; + public virtual int GetSqlValues(object[] values) => throw null; + public virtual System.Data.SqlTypes.SqlXml GetSqlXml(int i) => throw null; + public override System.IO.Stream GetStream(int i) => throw null; + public override string GetString(int i) => throw null; + public override System.IO.TextReader GetTextReader(int i) => throw null; + public virtual System.TimeSpan GetTimeSpan(int i) => throw null; + public override object GetValue(int i) => throw null; + public override int GetValues(object[] values) => throw null; + public virtual System.Xml.XmlReader GetXmlReader(int i) => throw null; + public override bool HasRows { get => throw null; } + public override bool IsClosed { get => throw null; } + protected bool IsCommandBehavior(System.Data.CommandBehavior condition) => throw null; + public override bool IsDBNull(int i) => throw null; + public override System.Threading.Tasks.Task IsDBNullAsync(int i, System.Threading.CancellationToken cancellationToken) => throw null; + public override bool NextResult() => throw null; + public override System.Threading.Tasks.Task NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override bool Read() => throw null; + public override System.Threading.Tasks.Task ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public override int RecordsAffected { get => throw null; } + public Microsoft.Data.SqlClient.DataClassification.SensitivityClassification SensitivityClassification { get => throw null; } + public override object this[int i] { get => throw null; } + public override object this[string name] { get => throw null; } + public override int VisibleFieldCount { get => throw null; } + } + public sealed class SqlDependency + { + public void AddCommandDependency(Microsoft.Data.SqlClient.SqlCommand command) => throw null; + public SqlDependency() => throw null; + public SqlDependency(Microsoft.Data.SqlClient.SqlCommand command) => throw null; + public SqlDependency(Microsoft.Data.SqlClient.SqlCommand command, string options, int timeout) => throw null; + public bool HasChanges { get => throw null; } + public string Id { get => throw null; } + public event Microsoft.Data.SqlClient.OnChangeEventHandler OnChange; + public static bool Start(string connectionString) => throw null; + public static bool Start(string connectionString, string queue) => throw null; + public static bool Stop(string connectionString) => throw null; + public static bool Stop(string connectionString, string queue) => throw null; + } + public sealed class SqlError + { + public byte Class { get => throw null; } + public int LineNumber { get => throw null; } + public string Message { get => throw null; } + public int Number { get => throw null; } + public string Procedure { get => throw null; } + public string Server { get => throw null; } + public string Source { get => throw null; } + public byte State { get => throw null; } + public override string ToString() => throw null; + } + public sealed class SqlErrorCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public void CopyTo(System.Array array, int index) => throw null; + public void CopyTo(Microsoft.Data.SqlClient.SqlError[] array, int index) => throw null; + public int Count { get => throw null; } + public System.Collections.IEnumerator GetEnumerator() => throw null; + bool System.Collections.ICollection.IsSynchronized { get => throw null; } + object System.Collections.ICollection.SyncRoot { get => throw null; } + public Microsoft.Data.SqlClient.SqlError this[int index] { get => throw null; } + } + public sealed class SqlException : System.Data.Common.DbException + { + public Microsoft.Data.SqlClient.SqlBatchCommand BatchCommand { get => throw null; } + public byte Class { get => throw null; } + public System.Guid ClientConnectionId { get => throw null; } + protected override System.Data.Common.DbBatchCommand DbBatchCommand { get => throw null; } + public Microsoft.Data.SqlClient.SqlErrorCollection Errors { get => throw null; } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; + public int LineNumber { get => throw null; } + public int Number { get => throw null; } + public string Procedure { get => throw null; } + public string Server { get => throw null; } + public override string Source { get => throw null; } + public byte State { get => throw null; } + public override string ToString() => throw null; + } + public sealed class SqlInfoMessageEventArgs : System.EventArgs + { + public Microsoft.Data.SqlClient.SqlErrorCollection Errors { get => throw null; } + public string Message { get => throw null; } + public string Source { get => throw null; } + public override string ToString() => throw null; + } + public delegate void SqlInfoMessageEventHandler(object sender, Microsoft.Data.SqlClient.SqlInfoMessageEventArgs e); + public class SqlNotificationEventArgs : System.EventArgs + { + public SqlNotificationEventArgs(Microsoft.Data.SqlClient.SqlNotificationType type, Microsoft.Data.SqlClient.SqlNotificationInfo info, Microsoft.Data.SqlClient.SqlNotificationSource source) => throw null; + public Microsoft.Data.SqlClient.SqlNotificationInfo Info { get => throw null; } + public Microsoft.Data.SqlClient.SqlNotificationSource Source { get => throw null; } + public Microsoft.Data.SqlClient.SqlNotificationType Type { get => throw null; } + } + public enum SqlNotificationInfo + { + AlreadyChanged = -2, + Alter = 5, + Delete = 3, + Drop = 4, + Error = 7, + Expired = 12, + Insert = 1, + Invalid = 9, + Isolation = 11, + Merge = 16, + Options = 10, + PreviousFire = 14, + Query = 8, + Resource = 13, + Restart = 6, + TemplateLimit = 15, + Truncate = 0, + Unknown = -1, + Update = 2, + } + public enum SqlNotificationSource + { + Client = -2, + Data = 0, + Database = 3, + Environment = 6, + Execution = 7, + Object = 2, + Owner = 8, + Statement = 5, + System = 4, + Timeout = 1, + Unknown = -1, + } + public enum SqlNotificationType + { + Change = 0, + Subscribe = 1, + Unknown = -1, + } + public sealed class SqlParameter : System.Data.Common.DbParameter, System.ICloneable, System.Data.IDataParameter, System.Data.IDbDataParameter + { + object System.ICloneable.Clone() => throw null; + public System.Data.SqlTypes.SqlCompareOptions CompareInfo { get => throw null; set { } } + public SqlParameter() => throw null; + public SqlParameter(string parameterName, System.Data.SqlDbType dbType) => throw null; + public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size) => throw null; + public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, bool isNullable, byte precision, byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, object value) => throw null; + public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, byte precision, byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value, string xmlSchemaCollectionDatabase, string xmlSchemaCollectionOwningSchema, string xmlSchemaCollectionName) => throw null; + public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, string sourceColumn) => throw null; + public SqlParameter(string parameterName, object value) => throw null; + public override System.Data.DbType DbType { get => throw null; set { } } + public override System.Data.ParameterDirection Direction { get => throw null; set { } } + public bool ForceColumnEncryption { get => throw null; set { } } + public override bool IsNullable { get => throw null; set { } } + public int LocaleId { get => throw null; set { } } + public int Offset { get => throw null; set { } } + public override string ParameterName { get => throw null; set { } } + public byte Precision { get => throw null; set { } } + public override void ResetDbType() => throw null; + public void ResetSqlDbType() => throw null; + public byte Scale { get => throw null; set { } } + public override int Size { get => throw null; set { } } + public override string SourceColumn { get => throw null; set { } } + public override bool SourceColumnNullMapping { get => throw null; set { } } + public override System.Data.DataRowVersion SourceVersion { get => throw null; set { } } + public System.Data.SqlDbType SqlDbType { get => throw null; set { } } + public object SqlValue { get => throw null; set { } } + public override string ToString() => throw null; + public string TypeName { get => throw null; set { } } + public string UdtTypeName { get => throw null; set { } } + public override object Value { get => throw null; set { } } + public string XmlSchemaCollectionDatabase { get => throw null; set { } } + public string XmlSchemaCollectionName { get => throw null; set { } } + public string XmlSchemaCollectionOwningSchema { get => throw null; set { } } + } + public sealed class SqlParameterCollection : System.Data.Common.DbParameterCollection + { + public Microsoft.Data.SqlClient.SqlParameter Add(Microsoft.Data.SqlClient.SqlParameter value) => throw null; + public override int Add(object value) => throw null; + public Microsoft.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType) => throw null; + public Microsoft.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType, int size) => throw null; + public Microsoft.Data.SqlClient.SqlParameter Add(string parameterName, System.Data.SqlDbType sqlDbType, int size, string sourceColumn) => throw null; + public void AddRange(Microsoft.Data.SqlClient.SqlParameter[] values) => throw null; + public override void AddRange(System.Array values) => throw null; + public Microsoft.Data.SqlClient.SqlParameter AddWithValue(string parameterName, object value) => throw null; + public override void Clear() => throw null; + public bool Contains(Microsoft.Data.SqlClient.SqlParameter value) => throw null; + public override bool Contains(object value) => throw null; + public override bool Contains(string value) => throw null; + public override void CopyTo(System.Array array, int index) => throw null; + public void CopyTo(Microsoft.Data.SqlClient.SqlParameter[] array, int index) => throw null; + public override int Count { get => throw null; } + public override System.Collections.IEnumerator GetEnumerator() => throw null; + protected override System.Data.Common.DbParameter GetParameter(int index) => throw null; + protected override System.Data.Common.DbParameter GetParameter(string parameterName) => throw null; + public int IndexOf(Microsoft.Data.SqlClient.SqlParameter value) => throw null; + public override int IndexOf(object value) => throw null; + public override int IndexOf(string parameterName) => throw null; + public void Insert(int index, Microsoft.Data.SqlClient.SqlParameter value) => throw null; + public override void Insert(int index, object value) => throw null; + public override bool IsFixedSize { get => throw null; } + public override bool IsReadOnly { get => throw null; } + public void Remove(Microsoft.Data.SqlClient.SqlParameter value) => throw null; + public override void Remove(object value) => throw null; + public override void RemoveAt(int index) => throw null; + public override void RemoveAt(string parameterName) => throw null; + protected override void SetParameter(int index, System.Data.Common.DbParameter value) => throw null; + protected override void SetParameter(string parameterName, System.Data.Common.DbParameter value) => throw null; + public override object SyncRoot { get => throw null; } + public Microsoft.Data.SqlClient.SqlParameter this[int index] { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlParameter this[string parameterName] { get => throw null; set { } } + } + public sealed class SqlRetryingEventArgs : System.EventArgs + { + public bool Cancel { get => throw null; set { } } + public SqlRetryingEventArgs(int retryCount, System.TimeSpan delay, System.Collections.Generic.IList exceptions) => throw null; + public System.TimeSpan Delay { get => throw null; } + public System.Collections.Generic.IList Exceptions { get => throw null; } + public int RetryCount { get => throw null; } + } + public abstract class SqlRetryIntervalBaseEnumerator : System.ICloneable, System.IDisposable, System.Collections.Generic.IEnumerator, System.Collections.IEnumerator + { + public virtual object Clone() => throw null; + public SqlRetryIntervalBaseEnumerator() => throw null; + public SqlRetryIntervalBaseEnumerator(System.TimeSpan timeInterval, System.TimeSpan maxTime, System.TimeSpan minTime) => throw null; + public System.TimeSpan Current { get => throw null; set { } } + object System.Collections.IEnumerator.Current { get => throw null; } + public virtual void Dispose() => throw null; + public System.TimeSpan GapTimeInterval { get => throw null; set { } } + protected abstract System.TimeSpan GetNextInterval(); + public System.TimeSpan MaxTimeInterval { get => throw null; set { } } + public System.TimeSpan MinTimeInterval { get => throw null; set { } } + public virtual bool MoveNext() => throw null; + public virtual void Reset() => throw null; + protected virtual void Validate(System.TimeSpan timeInterval, System.TimeSpan maxTimeInterval, System.TimeSpan minTimeInterval) => throw null; + } + public abstract class SqlRetryLogicBase : System.ICloneable + { + public virtual object Clone() => throw null; + protected SqlRetryLogicBase() => throw null; + public int Current { get => throw null; set { } } + public int NumberOfTries { get => throw null; set { } } + public abstract void Reset(); + public virtual bool RetryCondition(object sender) => throw null; + public Microsoft.Data.SqlClient.SqlRetryIntervalBaseEnumerator RetryIntervalEnumerator { get => throw null; set { } } + public System.Predicate TransientPredicate { get => throw null; set { } } + public abstract bool TryNextInterval(out System.TimeSpan intervalTime); + } + public abstract class SqlRetryLogicBaseProvider + { + protected SqlRetryLogicBaseProvider() => throw null; + public abstract TResult Execute(object sender, System.Func function); + public abstract System.Threading.Tasks.Task ExecuteAsync(object sender, System.Func> function, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public abstract System.Threading.Tasks.Task ExecuteAsync(object sender, System.Func function, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public System.EventHandler Retrying { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlRetryLogicBase RetryLogic { get => throw null; set { } } + } + public sealed class SqlRetryLogicOption + { + public System.Predicate AuthorizedSqlCondition { get => throw null; set { } } + public SqlRetryLogicOption() => throw null; + public System.TimeSpan DeltaTime { get => throw null; set { } } + public System.TimeSpan MaxTimeInterval { get => throw null; set { } } + public System.TimeSpan MinTimeInterval { get => throw null; set { } } + public int NumberOfTries { get => throw null; set { } } + public System.Collections.Generic.IEnumerable TransientErrors { get => throw null; set { } } + } + public class SqlRowsCopiedEventArgs : System.EventArgs + { + public bool Abort { get => throw null; set { } } + public SqlRowsCopiedEventArgs(long rowsCopied) => throw null; + public long RowsCopied { get => throw null; } + } + public delegate void SqlRowsCopiedEventHandler(object sender, Microsoft.Data.SqlClient.SqlRowsCopiedEventArgs e); + public sealed class SqlRowUpdatedEventArgs : System.Data.Common.RowUpdatedEventArgs + { + public Microsoft.Data.SqlClient.SqlCommand Command { get => throw null; } + public SqlRowUpdatedEventArgs(System.Data.DataRow row, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) : base(default(System.Data.DataRow), default(System.Data.IDbCommand), default(System.Data.StatementType), default(System.Data.Common.DataTableMapping)) => throw null; + } + public delegate void SqlRowUpdatedEventHandler(object sender, Microsoft.Data.SqlClient.SqlRowUpdatedEventArgs e); + public sealed class SqlRowUpdatingEventArgs : System.Data.Common.RowUpdatingEventArgs + { + protected override System.Data.IDbCommand BaseCommand { get => throw null; set { } } + public Microsoft.Data.SqlClient.SqlCommand Command { get => throw null; set { } } + public SqlRowUpdatingEventArgs(System.Data.DataRow row, System.Data.IDbCommand command, System.Data.StatementType statementType, System.Data.Common.DataTableMapping tableMapping) : base(default(System.Data.DataRow), default(System.Data.IDbCommand), default(System.Data.StatementType), default(System.Data.Common.DataTableMapping)) => throw null; + } + public delegate void SqlRowUpdatingEventHandler(object sender, Microsoft.Data.SqlClient.SqlRowUpdatingEventArgs e); + public sealed class SqlTransaction : System.Data.Common.DbTransaction + { + public override void Commit() => throw null; + public Microsoft.Data.SqlClient.SqlConnection Connection { get => throw null; } + protected override System.Data.Common.DbConnection DbConnection { get => throw null; } + protected override void Dispose(bool disposing) => throw null; + public override System.Data.IsolationLevel IsolationLevel { get => throw null; } + public override void Rollback() => throw null; + public override void Rollback(string transactionName) => throw null; + public override void Save(string savePointName) => throw null; + } + } + public static partial class SqlDbTypeExtensions + { + public const System.Data.SqlDbType Json = default; + } + namespace SqlTypes + { + public sealed class SqlFileStream : System.IO.Stream + { + public override System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) => throw null; + public override bool CanRead { get => throw null; } + public override bool CanSeek { get => throw null; } + public override bool CanTimeout { get => throw null; } + public override bool CanWrite { get => throw null; } + public SqlFileStream(string path, byte[] transactionContext, System.IO.FileAccess access) => throw null; + public SqlFileStream(string path, byte[] transactionContext, System.IO.FileAccess access, System.IO.FileOptions options, long allocationSize) => throw null; + public override int EndRead(System.IAsyncResult asyncResult) => throw null; + public override void EndWrite(System.IAsyncResult asyncResult) => throw null; + public override void Flush() => throw null; + public override long Length { get => throw null; } + public string Name { get => throw null; } + public override long Position { get => throw null; set { } } + public override int Read(byte[] buffer, int offset, int count) => throw null; + public override int ReadByte() => throw null; + public override int ReadTimeout { get => throw null; } + public override long Seek(long offset, System.IO.SeekOrigin origin) => throw null; + public override void SetLength(long value) => throw null; + public byte[] TransactionContext { get => throw null; } + public override void Write(byte[] buffer, int offset, int count) => throw null; + public override void WriteByte(byte value) => throw null; + public override int WriteTimeout { get => throw null; } + } + public class SqlJson : System.Data.SqlTypes.INullable + { + public SqlJson() => throw null; + public SqlJson(string jsonString) => throw null; + public SqlJson(System.Text.Json.JsonDocument jsonDoc) => throw null; + public bool IsNull { get => throw null; } + public static Microsoft.Data.SqlTypes.SqlJson Null { get => throw null; } + public string Value { get => throw null; } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj new file mode 100644 index 000000000000..457f65b723ba --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj @@ -0,0 +1,21 @@ + + + net9.0 + true + bin\ + false + + + + + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj new file mode 100644 index 000000000000..ba6857adb2b9 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj new file mode 100644 index 000000000000..611dcc85a91d --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj @@ -0,0 +1,17 @@ + + + net9.0 + true + bin\ + false + + + + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj new file mode 100644 index 000000000000..24dcab514cf1 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj new file mode 100644 index 000000000000..be3f78d87fc7 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.cs b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.cs new file mode 100644 index 000000000000..878df0d485a8 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.cs @@ -0,0 +1,103 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.Identity.Client.Extensions.Msal, Version=4.61.3.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae`. +namespace Microsoft +{ + namespace Identity + { + namespace Client + { + namespace Extensions + { + namespace Msal + { + public class CacheChangedEventArgs : System.EventArgs + { + public readonly System.Collections.Generic.IEnumerable AccountsAdded; + public readonly System.Collections.Generic.IEnumerable AccountsRemoved; + public CacheChangedEventArgs(System.Collections.Generic.IEnumerable added, System.Collections.Generic.IEnumerable removed) => throw null; + } + public sealed class CrossPlatLock : System.IDisposable + { + public CrossPlatLock(string lockfilePath, int lockFileRetryDelay = default(int), int lockFileRetryCount = default(int)) => throw null; + public void Dispose() => throw null; + } + public class MsalCacheHelper + { + public event System.EventHandler CacheChanged; + public void Clear() => throw null; + public static System.Threading.Tasks.Task CreateAsync(Microsoft.Identity.Client.Extensions.Msal.StorageCreationProperties storageCreationProperties, System.Diagnostics.TraceSource logger = default(System.Diagnostics.TraceSource)) => throw null; + public const string LinuxKeyRingDefaultCollection = default; + public const string LinuxKeyRingSessionCollection = default; + public byte[] LoadUnencryptedTokenCache() => throw null; + public void RegisterCache(Microsoft.Identity.Client.ITokenCache tokenCache) => throw null; + public void SaveUnencryptedTokenCache(byte[] tokenCache) => throw null; + public void UnregisterCache(Microsoft.Identity.Client.ITokenCache tokenCache) => throw null; + public static string UserRootDirectory { get => throw null; } + public void VerifyPersistence() => throw null; + } + public class MsalCachePersistenceException : System.Exception + { + public MsalCachePersistenceException() => throw null; + public MsalCachePersistenceException(string message) => throw null; + public MsalCachePersistenceException(string message, System.Exception innerException) => throw null; + protected MsalCachePersistenceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public static class SharedUtilities + { + public static string GetUserRootDirectory() => throw null; + public static bool IsLinuxPlatform() => throw null; + public static bool IsMacPlatform() => throw null; + public static bool IsWindowsPlatform() => throw null; + } + public class Storage + { + public void Clear(bool ignoreExceptions = default(bool)) => throw null; + public static Microsoft.Identity.Client.Extensions.Msal.Storage Create(Microsoft.Identity.Client.Extensions.Msal.StorageCreationProperties creationProperties, System.Diagnostics.TraceSource logger = default(System.Diagnostics.TraceSource)) => throw null; + public byte[] ReadData() => throw null; + public void VerifyPersistence() => throw null; + public void WriteData(byte[] data) => throw null; + } + public class StorageCreationProperties + { + public string Authority { get => throw null; } + public readonly string CacheDirectory; + public readonly string CacheFileName; + public string CacheFilePath { get => throw null; } + public string ClientId { get => throw null; } + public readonly System.Collections.Generic.KeyValuePair KeyringAttribute1; + public readonly System.Collections.Generic.KeyValuePair KeyringAttribute2; + public readonly string KeyringCollection; + public readonly string KeyringSchemaName; + public readonly string KeyringSecretLabel; + public readonly int LockRetryCount; + public readonly int LockRetryDelay; + public readonly string MacKeyChainAccountName; + public readonly string MacKeyChainServiceName; + public readonly bool UseLinuxUnencryptedFallback; + public readonly bool UseUnencryptedFallback; + } + public class StorageCreationPropertiesBuilder + { + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationProperties Build() => throw null; + public StorageCreationPropertiesBuilder(string cacheFileName, string cacheDirectory, string clientId) => throw null; + public StorageCreationPropertiesBuilder(string cacheFileName, string cacheDirectory) => throw null; + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationPropertiesBuilder CustomizeLockRetry(int lockRetryDelay, int lockRetryCount) => throw null; + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationPropertiesBuilder WithCacheChangedEvent(string clientId, string authority = default(string)) => throw null; + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationPropertiesBuilder WithLinuxKeyring(string schemaName, string collection, string secretLabel, System.Collections.Generic.KeyValuePair attribute1, System.Collections.Generic.KeyValuePair attribute2) => throw null; + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationPropertiesBuilder WithLinuxUnprotectedFile() => throw null; + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationPropertiesBuilder WithMacKeyChain(string serviceName, string accountName) => throw null; + public Microsoft.Identity.Client.Extensions.Msal.StorageCreationPropertiesBuilder WithUnprotectedFile() => throw null; + } + public class TraceSourceLogger + { + public TraceSourceLogger(System.Diagnostics.TraceSource traceSource) => throw null; + public void LogError(string message) => throw null; + public void LogInformation(string message) => throw null; + public void LogWarning(string message) => throw null; + public System.Diagnostics.TraceSource Source { get => throw null; } + } + } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj new file mode 100644 index 000000000000..a085743bd520 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.cs b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.cs new file mode 100644 index 000000000000..01ea5340e8ef --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.cs @@ -0,0 +1,1350 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.Identity.Client, Version=4.61.3.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae`. +namespace Microsoft +{ + namespace Identity + { + namespace Client + { + public enum AadAuthorityAudience + { + None = 0, + AzureAdMyOrg = 1, + AzureAdAndPersonalMicrosoftAccount = 2, + AzureAdMultipleOrgs = 3, + PersonalMicrosoftAccount = 4, + } + public abstract class AbstractAcquireTokenParameterBuilder : Microsoft.Identity.Client.BaseAbstractAcquireTokenParameterBuilder where T : Microsoft.Identity.Client.BaseAbstractAcquireTokenParameterBuilder + { + protected AbstractAcquireTokenParameterBuilder() => throw null; + public T WithAdfsAuthority(string authorityUri, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(string authorityUri, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(string cloudInstanceUri, System.Guid tenantId, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(string cloudInstanceUri, string tenant, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AzureCloudInstance azureCloudInstance, System.Guid tenantId, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AzureCloudInstance azureCloudInstance, string tenant, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AzureCloudInstance azureCloudInstance, Microsoft.Identity.Client.AadAuthorityAudience authorityAudience, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AadAuthorityAudience authorityAudience, bool validateAuthority = default(bool)) => throw null; + public T WithB2CAuthority(string authorityUri) => throw null; + public T WithClaims(string claims) => throw null; + public T WithExtraQueryParameters(System.Collections.Generic.Dictionary extraQueryParameters) => throw null; + public T WithExtraQueryParameters(string extraQueryParameters) => throw null; + protected T WithScopes(System.Collections.Generic.IEnumerable scopes) => throw null; + public T WithTenantId(string tenantId) => throw null; + public T WithTenantIdFromAuthority(System.Uri authorityUri) => throw null; + } + public abstract class AbstractApplicationBuilder : Microsoft.Identity.Client.BaseAbstractApplicationBuilder where T : Microsoft.Identity.Client.BaseAbstractApplicationBuilder + { + public T WithAdfsAuthority(string authorityUri, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(System.Uri authorityUri, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(string authorityUri, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(string cloudInstanceUri, System.Guid tenantId, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(string cloudInstanceUri, string tenant, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AzureCloudInstance azureCloudInstance, System.Guid tenantId, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AzureCloudInstance azureCloudInstance, string tenant, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AzureCloudInstance azureCloudInstance, Microsoft.Identity.Client.AadAuthorityAudience authorityAudience, bool validateAuthority = default(bool)) => throw null; + public T WithAuthority(Microsoft.Identity.Client.AadAuthorityAudience authorityAudience, bool validateAuthority = default(bool)) => throw null; + public T WithB2CAuthority(string authorityUri) => throw null; + public T WithCacheOptions(Microsoft.Identity.Client.CacheOptions options) => throw null; + public T WithClientCapabilities(System.Collections.Generic.IEnumerable clientCapabilities) => throw null; + public T WithClientId(string clientId) => throw null; + public T WithClientName(string clientName) => throw null; + public T WithClientVersion(string clientVersion) => throw null; + public T WithExtraQueryParameters(System.Collections.Generic.IDictionary extraQueryParameters) => throw null; + public T WithExtraQueryParameters(string extraQueryParameters) => throw null; + public T WithInstanceDicoveryMetadata(string instanceDiscoveryJson) => throw null; + public T WithInstanceDicoveryMetadata(System.Uri instanceDiscoveryUri) => throw null; + public T WithInstanceDiscovery(bool enableInstanceDiscovery) => throw null; + public T WithInstanceDiscoveryMetadata(string instanceDiscoveryJson) => throw null; + public T WithInstanceDiscoveryMetadata(System.Uri instanceDiscoveryUri) => throw null; + public T WithLegacyCacheCompatibility(bool enableLegacyCacheCompatibility = default(bool)) => throw null; + protected T WithOptions(Microsoft.Identity.Client.ApplicationOptions applicationOptions) => throw null; + public T WithRedirectUri(string redirectUri) => throw null; + public T WithTelemetry(Microsoft.Identity.Client.ITelemetryConfig telemetryConfig) => throw null; + public T WithTenantId(string tenantId) => throw null; + } + public abstract class AbstractClientAppBaseAcquireTokenParameterBuilder : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder where T : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder + { + public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + public abstract class AbstractConfidentialClientAcquireTokenParameterBuilder : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder where T : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder + { + public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; + protected override void Validate() => throw null; + public T WithProofOfPossession(Microsoft.Identity.Client.AppConfig.PoPAuthenticationConfiguration popAuthenticationConfiguration) => throw null; + } + public abstract class AbstractManagedIdentityAcquireTokenParameterBuilder : Microsoft.Identity.Client.BaseAbstractAcquireTokenParameterBuilder where T : Microsoft.Identity.Client.BaseAbstractAcquireTokenParameterBuilder + { + protected AbstractManagedIdentityAcquireTokenParameterBuilder() => throw null; + public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + public abstract class AbstractPublicClientAcquireTokenParameterBuilder : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder where T : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder + { + public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; + } + public static partial class AccountExtensions + { + public static System.Collections.Generic.IEnumerable GetTenantProfiles(this Microsoft.Identity.Client.IAccount account) => throw null; + } + public class AccountId + { + public AccountId(string identifier, string objectId, string tenantId) => throw null; + public AccountId(string adfsIdentifier) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public string Identifier { get => throw null; } + public string ObjectId { get => throw null; } + public string TenantId { get => throw null; } + public override string ToString() => throw null; + } + public sealed class AcquireTokenByAuthorizationCodeParameterBuilder : Microsoft.Identity.Client.AbstractConfidentialClientAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder WithCcsRoutingHint(string userObjectIdentifier, string tenantIdentifier) => throw null; + public Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder WithCcsRoutingHint(string userName) => throw null; + public Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder WithPkceCodeVerifier(string pkceCodeVerifier) => throw null; + public Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder WithSendX5C(bool withSendX5C) => throw null; + public Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder WithSpaAuthorizationCode(bool requestSpaAuthorizationCode = default(bool)) => throw null; + } + public sealed class AcquireTokenByIntegratedWindowsAuthParameterBuilder : Microsoft.Identity.Client.AbstractPublicClientAcquireTokenParameterBuilder + { + public Microsoft.Identity.Client.AcquireTokenByIntegratedWindowsAuthParameterBuilder WithFederationMetadata(string federationMetadata) => throw null; + public Microsoft.Identity.Client.AcquireTokenByIntegratedWindowsAuthParameterBuilder WithUsername(string username) => throw null; + } + public sealed class AcquireTokenByRefreshTokenParameterBuilder : Microsoft.Identity.Client.AbstractClientAppBaseAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenByRefreshTokenParameterBuilder WithSendX5C(bool withSendX5C) => throw null; + } + public sealed class AcquireTokenByUsernamePasswordParameterBuilder : Microsoft.Identity.Client.AbstractPublicClientAcquireTokenParameterBuilder + { + public Microsoft.Identity.Client.AcquireTokenByUsernamePasswordParameterBuilder WithFederationMetadata(string federationMetadata) => throw null; + public Microsoft.Identity.Client.AcquireTokenByUsernamePasswordParameterBuilder WithProofOfPossession(string nonce, System.Net.Http.HttpMethod httpMethod, System.Uri requestUri) => throw null; + } + public sealed class AcquireTokenForClientParameterBuilder : Microsoft.Identity.Client.AbstractConfidentialClientAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder WithAzureRegion(bool useAzureRegion) => throw null; + public Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder WithForceRefresh(bool forceRefresh) => throw null; + public Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder WithPreferredAzureRegion(bool useAzureRegion = default(bool), string regionUsedIfAutoDetectFails = default(string), bool fallbackToGlobal = default(bool)) => throw null; + public Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder WithSendX5C(bool withSendX5C) => throw null; + } + public sealed class AcquireTokenForManagedIdentityParameterBuilder : Microsoft.Identity.Client.AbstractManagedIdentityAcquireTokenParameterBuilder + { + public Microsoft.Identity.Client.AcquireTokenForManagedIdentityParameterBuilder WithForceRefresh(bool forceRefresh) => throw null; + } + public sealed class AcquireTokenInteractiveParameterBuilder : Microsoft.Identity.Client.AbstractPublicClientAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithAccount(Microsoft.Identity.Client.IAccount account) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithEmbeddedWebViewOptions(Microsoft.Identity.Client.EmbeddedWebViewOptions options) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithExtraScopesToConsent(System.Collections.Generic.IEnumerable extraScopesToConsent) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithLoginHint(string loginHint) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithParentActivityOrWindow(object parent) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithParentActivityOrWindow(nint window) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithPrompt(Microsoft.Identity.Client.Prompt prompt) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithProofOfPossession(string nonce, System.Net.Http.HttpMethod httpMethod, System.Uri requestUri) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithSystemWebViewOptions(Microsoft.Identity.Client.SystemWebViewOptions options) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithUseEmbeddedWebView(bool useEmbeddedWebView) => throw null; + } + public sealed class AcquireTokenOnBehalfOfParameterBuilder : Microsoft.Identity.Client.AbstractConfidentialClientAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder WithCcsRoutingHint(string userObjectIdentifier, string tenantIdentifier) => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder WithCcsRoutingHint(string userName) => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder WithForceRefresh(bool forceRefresh) => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder WithSendX5C(bool withSendX5C) => throw null; + } + public sealed class AcquireTokenSilentParameterBuilder : Microsoft.Identity.Client.AbstractClientAppBaseAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder WithForceRefresh(bool forceRefresh) => throw null; + public Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder WithProofOfPossession(Microsoft.Identity.Client.AppConfig.PoPAuthenticationConfiguration popAuthenticationConfiguration) => throw null; + public Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder WithProofOfPossession(string nonce, System.Net.Http.HttpMethod httpMethod, System.Uri requestUri) => throw null; + public Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder WithSendX5C(bool withSendX5C) => throw null; + } + public sealed class AcquireTokenWithDeviceCodeParameterBuilder : Microsoft.Identity.Client.AbstractPublicClientAcquireTokenParameterBuilder + { + protected override void Validate() => throw null; + public Microsoft.Identity.Client.AcquireTokenWithDeviceCodeParameterBuilder WithDeviceCodeResultCallback(System.Func deviceCodeResultCallback) => throw null; + } + namespace Advanced + { + public static partial class AcquireTokenParameterBuilderExtensions + { + public static T WithExtraHttpHeaders(this Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder builder, System.Collections.Generic.IDictionary extraHttpHeaders) where T : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder => throw null; + } + } + namespace AppConfig + { + public class ManagedIdentityId + { + public static Microsoft.Identity.Client.AppConfig.ManagedIdentityId SystemAssigned { get => throw null; } + public static Microsoft.Identity.Client.AppConfig.ManagedIdentityId WithUserAssignedClientId(string clientId) => throw null; + public static Microsoft.Identity.Client.AppConfig.ManagedIdentityId WithUserAssignedObjectId(string objectId) => throw null; + public static Microsoft.Identity.Client.AppConfig.ManagedIdentityId WithUserAssignedResourceId(string resourceId) => throw null; + } + public class PoPAuthenticationConfiguration + { + public PoPAuthenticationConfiguration() => throw null; + public PoPAuthenticationConfiguration(System.Net.Http.HttpRequestMessage httpRequestMessage) => throw null; + public PoPAuthenticationConfiguration(System.Uri requestUri) => throw null; + public string HttpHost { get => throw null; set { } } + public System.Net.Http.HttpMethod HttpMethod { get => throw null; set { } } + public string HttpPath { get => throw null; set { } } + public string Nonce { get => throw null; set { } } + public Microsoft.Identity.Client.AuthScheme.PoP.IPoPCryptoProvider PopCryptoProvider { get => throw null; set { } } + public bool SignHttpRequest { get => throw null; set { } } + } + } + public abstract class ApplicationBase : Microsoft.Identity.Client.IApplicationBase + { + } + public abstract class ApplicationOptions : Microsoft.Identity.Client.BaseApplicationOptions + { + public Microsoft.Identity.Client.AadAuthorityAudience AadAuthorityAudience { get => throw null; set { } } + public Microsoft.Identity.Client.AzureCloudInstance AzureCloudInstance { get => throw null; set { } } + public System.Collections.Generic.IEnumerable ClientCapabilities { get => throw null; set { } } + public string ClientId { get => throw null; set { } } + public string ClientName { get => throw null; set { } } + public string ClientVersion { get => throw null; set { } } + protected ApplicationOptions() => throw null; + public string Instance { get => throw null; set { } } + public string KerberosServicePrincipalName { get => throw null; set { } } + public bool LegacyCacheCompatibilityEnabled { get => throw null; set { } } + public string RedirectUri { get => throw null; set { } } + public string TenantId { get => throw null; set { } } + public Microsoft.Identity.Client.Kerberos.KerberosTicketContainer TicketContainer { get => throw null; set { } } + } + public class AssertionRequestOptions + { + public System.Threading.CancellationToken CancellationToken { get => throw null; set { } } + public string ClientID { get => throw null; set { } } + public AssertionRequestOptions() => throw null; + public string TokenEndpoint { get => throw null; set { } } + } + public class AuthenticationHeaderParser + { + public Microsoft.Identity.Client.AuthenticationInfoParameters AuthenticationInfoParameters { get => throw null; } + public AuthenticationHeaderParser() => throw null; + public static Microsoft.Identity.Client.AuthenticationHeaderParser ParseAuthenticationHeaders(System.Net.Http.Headers.HttpResponseHeaders httpResponseHeaders) => throw null; + public static System.Threading.Tasks.Task ParseAuthenticationHeadersAsync(string resourceUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task ParseAuthenticationHeadersAsync(string resourceUri, System.Net.Http.HttpClient httpClient, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public string PopNonce { get => throw null; } + public System.Collections.Generic.IReadOnlyList WwwAuthenticateParameters { get => throw null; } + } + public class AuthenticationInfoParameters + { + public static Microsoft.Identity.Client.AuthenticationInfoParameters CreateFromResponseHeaders(System.Net.Http.Headers.HttpResponseHeaders httpResponseHeaders) => throw null; + public AuthenticationInfoParameters() => throw null; + public string NextNonce { get => throw null; } + public string this[string key] { get => throw null; } + } + public class AuthenticationResult + { + public string AccessToken { get => throw null; } + public Microsoft.Identity.Client.IAccount Account { get => throw null; } + public System.Collections.Generic.IReadOnlyDictionary AdditionalResponseParameters { get => throw null; } + public Microsoft.Identity.Client.AuthenticationResultMetadata AuthenticationResultMetadata { get => throw null; } + public System.Security.Claims.ClaimsPrincipal ClaimsPrincipal { get => throw null; } + public System.Guid CorrelationId { get => throw null; } + public string CreateAuthorizationHeader() => throw null; + public AuthenticationResult(string accessToken, bool isExtendedLifeTimeToken, string uniqueId, System.DateTimeOffset expiresOn, System.DateTimeOffset extendedExpiresOn, string tenantId, Microsoft.Identity.Client.IAccount account, string idToken, System.Collections.Generic.IEnumerable scopes, System.Guid correlationId, string tokenType = default(string), Microsoft.Identity.Client.AuthenticationResultMetadata authenticationResultMetadata = default(Microsoft.Identity.Client.AuthenticationResultMetadata), System.Security.Claims.ClaimsPrincipal claimsPrincipal = default(System.Security.Claims.ClaimsPrincipal), string spaAuthCode = default(string), System.Collections.Generic.IReadOnlyDictionary additionalResponseParameters = default(System.Collections.Generic.IReadOnlyDictionary)) => throw null; + public AuthenticationResult(string accessToken, bool isExtendedLifeTimeToken, string uniqueId, System.DateTimeOffset expiresOn, System.DateTimeOffset extendedExpiresOn, string tenantId, Microsoft.Identity.Client.IAccount account, string idToken, System.Collections.Generic.IEnumerable scopes, System.Guid correlationId, Microsoft.Identity.Client.AuthenticationResultMetadata authenticationResultMetadata, string tokenType = default(string)) => throw null; + public System.DateTimeOffset ExpiresOn { get => throw null; } + public System.DateTimeOffset ExtendedExpiresOn { get => throw null; } + public string IdToken { get => throw null; } + public bool IsExtendedLifeTimeToken { get => throw null; } + public System.Collections.Generic.IEnumerable Scopes { get => throw null; } + public string SpaAuthCode { get => throw null; } + public string TenantId { get => throw null; } + public string TokenType { get => throw null; } + public string UniqueId { get => throw null; } + public Microsoft.Identity.Client.IUser User { get => throw null; } + } + public class AuthenticationResultMetadata + { + public Microsoft.Identity.Client.Cache.CacheLevel CacheLevel { get => throw null; set { } } + public Microsoft.Identity.Client.CacheRefreshReason CacheRefreshReason { get => throw null; set { } } + public AuthenticationResultMetadata(Microsoft.Identity.Client.TokenSource tokenSource) => throw null; + public long DurationInCacheInMs { get => throw null; set { } } + public long DurationInHttpInMs { get => throw null; set { } } + public long DurationTotalInMs { get => throw null; set { } } + public System.DateTimeOffset? RefreshOn { get => throw null; set { } } + public Microsoft.Identity.Client.RegionDetails RegionDetails { get => throw null; set { } } + public string Telemetry { get => throw null; set { } } + public string TokenEndpoint { get => throw null; set { } } + public Microsoft.Identity.Client.TokenSource TokenSource { get => throw null; } + } + namespace AuthScheme + { + namespace PoP + { + public interface IPoPCryptoProvider + { + string CannonicalPublicKeyJwk { get; } + string CryptographicAlgorithm { get; } + byte[] Sign(byte[] data); + } + } + } + public enum AzureCloudInstance + { + None = 0, + AzurePublic = 1, + AzureChina = 2, + AzureGermany = 3, + AzureUsGovernment = 4, + } + public abstract class BaseAbstractAcquireTokenParameterBuilder where T : Microsoft.Identity.Client.BaseAbstractAcquireTokenParameterBuilder + { + protected BaseAbstractAcquireTokenParameterBuilder() => throw null; + public abstract System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken); + public System.Threading.Tasks.Task ExecuteAsync() => throw null; + protected virtual void Validate() => throw null; + public T WithCorrelationId(System.Guid correlationId) => throw null; + } + public abstract class BaseAbstractApplicationBuilder where T : Microsoft.Identity.Client.BaseAbstractApplicationBuilder + { + public T WithDebugLoggingCallback(Microsoft.Identity.Client.LogLevel logLevel = default(Microsoft.Identity.Client.LogLevel), bool enablePiiLogging = default(bool), bool withDefaultPlatformLoggingEnabled = default(bool)) => throw null; + public T WithExperimentalFeatures(bool enableExperimentalFeatures = default(bool)) => throw null; + public T WithHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory httpClientFactory) => throw null; + public T WithHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory httpClientFactory, bool retryOnceOn5xx) => throw null; + public T WithLogging(Microsoft.Identity.Client.LogCallback loggingCallback, Microsoft.Identity.Client.LogLevel? logLevel = default(Microsoft.Identity.Client.LogLevel?), bool? enablePiiLogging = default(bool?), bool? enableDefaultPlatformLogging = default(bool?)) => throw null; + public T WithLogging(Microsoft.IdentityModel.Abstractions.IIdentityLogger identityLogger, bool enablePiiLogging = default(bool)) => throw null; + protected T WithOptions(Microsoft.Identity.Client.BaseApplicationOptions applicationOptions) => throw null; + } + public abstract class BaseApplicationOptions + { + protected BaseApplicationOptions() => throw null; + public bool EnablePiiLogging { get => throw null; set { } } + public bool IsDefaultPlatformLoggingEnabled { get => throw null; set { } } + public Microsoft.Identity.Client.LogLevel LogLevel { get => throw null; set { } } + } + public class BrokerOptions + { + public BrokerOptions(Microsoft.Identity.Client.BrokerOptions.OperatingSystems enabledOn) => throw null; + public Microsoft.Identity.Client.BrokerOptions.OperatingSystems EnabledOn { get => throw null; } + public bool ListOperatingSystemAccounts { get => throw null; set { } } + public bool MsaPassthrough { get => throw null; set { } } + [System.Flags] + public enum OperatingSystems + { + None = 0, + Windows = 1, + } + public string Title { get => throw null; set { } } + } + namespace Cache + { + public class CacheData + { + public byte[] AdalV3State { get => throw null; set { } } + public CacheData() => throw null; + public byte[] UnifiedState { get => throw null; set { } } + } + public enum CacheLevel + { + None = 0, + Unknown = 1, + L1Cache = 2, + L2Cache = 3, + } + } + public class CacheOptions + { + public CacheOptions() => throw null; + public CacheOptions(bool useSharedCache) => throw null; + public static Microsoft.Identity.Client.CacheOptions EnableSharedCacheOptions { get => throw null; } + public bool UseSharedCache { get => throw null; set { } } + } + public enum CacheRefreshReason + { + NotApplicable = 0, + ForceRefreshOrClaims = 1, + NoCachedAccessToken = 2, + Expired = 3, + ProactivelyRefreshed = 4, + } + public abstract class ClientApplicationBase : Microsoft.Identity.Client.ApplicationBase, Microsoft.Identity.Client.IApplicationBase, Microsoft.Identity.Client.IClientApplicationBase + { + public Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder AcquireTokenSilent(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account) => throw null; + public Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder AcquireTokenSilent(System.Collections.Generic.IEnumerable scopes, string loginHint) => throw null; + public System.Threading.Tasks.Task AcquireTokenSilentAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, string authority, bool forceRefresh) => throw null; + public System.Threading.Tasks.Task AcquireTokenSilentAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account) => throw null; + public Microsoft.Identity.Client.IAppConfig AppConfig { get => throw null; } + public string Authority { get => throw null; } + public string ClientId { get => throw null; } + public string Component { get => throw null; set { } } + public System.Threading.Tasks.Task GetAccountAsync(string accountId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task GetAccountAsync(string accountId) => throw null; + public System.Threading.Tasks.Task> GetAccountsAsync() => throw null; + public System.Threading.Tasks.Task> GetAccountsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public System.Threading.Tasks.Task> GetAccountsAsync(string userFlow) => throw null; + public System.Threading.Tasks.Task> GetAccountsAsync(string userFlow, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public Microsoft.Identity.Client.IUser GetUser(string identifier) => throw null; + public string RedirectUri { get => throw null; set { } } + public void Remove(Microsoft.Identity.Client.IUser user) => throw null; + public System.Threading.Tasks.Task RemoveAsync(Microsoft.Identity.Client.IAccount account) => throw null; + public System.Threading.Tasks.Task RemoveAsync(Microsoft.Identity.Client.IAccount account, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public string SliceParameters { get => throw null; set { } } + public System.Collections.Generic.IEnumerable Users { get => throw null; } + public Microsoft.Identity.Client.ITokenCache UserTokenCache { get => throw null; } + public bool ValidateAuthority { get => throw null; set { } } + } + public sealed class ClientAssertionCertificate + { + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public ClientAssertionCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public static int MinKeySizeInBits { get => throw null; } + } + public sealed class ClientCredential + { + public ClientCredential(Microsoft.Identity.Client.ClientAssertionCertificate certificate) => throw null; + public ClientCredential(string secret) => throw null; + } + public sealed class ConfidentialClientApplication : Microsoft.Identity.Client.ClientApplicationBase, Microsoft.Identity.Client.IApplicationBase, Microsoft.Identity.Client.IByRefreshToken, Microsoft.Identity.Client.IClientApplicationBase, Microsoft.Identity.Client.IConfidentialClientApplication, Microsoft.Identity.Client.IConfidentialClientApplicationWithCertificate, Microsoft.Identity.Client.ILongRunningWebApi + { + public Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder AcquireTokenByAuthorizationCode(System.Collections.Generic.IEnumerable scopes, string authorizationCode) => throw null; + public System.Threading.Tasks.Task AcquireTokenByAuthorizationCodeAsync(string authorizationCode, System.Collections.Generic.IEnumerable scopes) => throw null; + Microsoft.Identity.Client.AcquireTokenByRefreshTokenParameterBuilder Microsoft.Identity.Client.IByRefreshToken.AcquireTokenByRefreshToken(System.Collections.Generic.IEnumerable scopes, string refreshToken) => throw null; + System.Threading.Tasks.Task Microsoft.Identity.Client.IByRefreshToken.AcquireTokenByRefreshTokenAsync(System.Collections.Generic.IEnumerable scopes, string refreshToken) => throw null; + public Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder AcquireTokenForClient(System.Collections.Generic.IEnumerable scopes) => throw null; + public System.Threading.Tasks.Task AcquireTokenForClientAsync(System.Collections.Generic.IEnumerable scopes) => throw null; + public System.Threading.Tasks.Task AcquireTokenForClientAsync(System.Collections.Generic.IEnumerable scopes, bool forceRefresh) => throw null; + System.Threading.Tasks.Task Microsoft.Identity.Client.IConfidentialClientApplicationWithCertificate.AcquireTokenForClientWithCertificateAsync(System.Collections.Generic.IEnumerable scopes) => throw null; + System.Threading.Tasks.Task Microsoft.Identity.Client.IConfidentialClientApplicationWithCertificate.AcquireTokenForClientWithCertificateAsync(System.Collections.Generic.IEnumerable scopes, bool forceRefresh) => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder AcquireTokenInLongRunningProcess(System.Collections.Generic.IEnumerable scopes, string longRunningProcessSessionKey) => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder AcquireTokenOnBehalfOf(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion) => throw null; + public System.Threading.Tasks.Task AcquireTokenOnBehalfOfAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion) => throw null; + public System.Threading.Tasks.Task AcquireTokenOnBehalfOfAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion, string authority) => throw null; + System.Threading.Tasks.Task Microsoft.Identity.Client.IConfidentialClientApplicationWithCertificate.AcquireTokenOnBehalfOfWithCertificateAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion) => throw null; + System.Threading.Tasks.Task Microsoft.Identity.Client.IConfidentialClientApplicationWithCertificate.AcquireTokenOnBehalfOfWithCertificateAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion, string authority) => throw null; + public Microsoft.Identity.Client.ITokenCache AppTokenCache { get => throw null; } + public const string AttemptRegionDiscovery = default; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public ConfidentialClientApplication(string clientId, string redirectUri, Microsoft.Identity.Client.ClientCredential clientCredential, Microsoft.Identity.Client.TokenCache userTokenCache, Microsoft.Identity.Client.TokenCache appTokenCache) => throw null; + public ConfidentialClientApplication(string clientId, string authority, string redirectUri, Microsoft.Identity.Client.ClientCredential clientCredential, Microsoft.Identity.Client.TokenCache userTokenCache, Microsoft.Identity.Client.TokenCache appTokenCache) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder GetAuthorizationRequestUrl(System.Collections.Generic.IEnumerable scopes) => throw null; + public System.Threading.Tasks.Task GetAuthorizationRequestUrlAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, string extraQueryParameters) => throw null; + public System.Threading.Tasks.Task GetAuthorizationRequestUrlAsync(System.Collections.Generic.IEnumerable scopes, string redirectUri, string loginHint, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority) => throw null; + public Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder InitiateLongRunningProcessInWebApi(System.Collections.Generic.IEnumerable scopes, string userToken, ref string longRunningProcessSessionKey) => throw null; + public System.Threading.Tasks.Task StopLongRunningProcessInWebApiAsync(string longRunningProcessSessionKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public class ConfidentialClientApplicationBuilder : Microsoft.Identity.Client.AbstractApplicationBuilder + { + public Microsoft.Identity.Client.IConfidentialClientApplication Build() => throw null; + public static Microsoft.Identity.Client.ConfidentialClientApplicationBuilder Create(string clientId) => throw null; + public static Microsoft.Identity.Client.ConfidentialClientApplicationBuilder CreateWithApplicationOptions(Microsoft.Identity.Client.ConfidentialClientApplicationOptions options) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithAzureRegion(string azureRegion = default(string)) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithCacheSynchronization(bool enableCacheSynchronization) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, bool sendX5C) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientAssertion(string signedClientAssertion) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientAssertion(System.Func clientAssertionDelegate) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientAssertion(System.Func> clientAssertionAsyncDelegate) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientAssertion(System.Func> clientAssertionAsyncDelegate) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientClaims(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Collections.Generic.IDictionary claimsToSign, bool mergeWithDefaultClaims) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientClaims(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Collections.Generic.IDictionary claimsToSign, bool mergeWithDefaultClaims = default(bool), bool sendX5C = default(bool)) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithClientSecret(string clientSecret) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithGenericAuthority(string authorityUri) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithOidcAuthority(string authorityUri) => throw null; + public Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithTelemetryClient(params Microsoft.IdentityModel.Abstractions.ITelemetryClient[] telemetryClients) => throw null; + } + public class ConfidentialClientApplicationOptions : Microsoft.Identity.Client.ApplicationOptions + { + public string AzureRegion { get => throw null; set { } } + public string ClientSecret { get => throw null; set { } } + public ConfidentialClientApplicationOptions() => throw null; + public bool EnableCacheSynchronization { get => throw null; set { } } + } + public class DeviceCodeResult + { + public string ClientId { get => throw null; } + public string DeviceCode { get => throw null; } + public System.DateTimeOffset ExpiresOn { get => throw null; } + public long Interval { get => throw null; } + public string Message { get => throw null; } + public System.Collections.Generic.IReadOnlyCollection Scopes { get => throw null; } + public string UserCode { get => throw null; } + public string VerificationUrl { get => throw null; } + } + public class EmbeddedWebViewOptions + { + public EmbeddedWebViewOptions() => throw null; + public string Title { get => throw null; set { } } + public string WebView2BrowserExecutableFolder { get => throw null; set { } } + } + namespace Extensibility + { + public static class AbstractConfidentialClientAcquireTokenParameterBuilderExtension + { + public static Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder OnBeforeTokenRequest(this Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder builder, System.Func onBeforeTokenRequestHandler) where T : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder => throw null; + public static Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder WithProofOfPosessionKeyId(this Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder builder, string keyId, string expectedTokenTypeFromAad = default(string)) where T : Microsoft.Identity.Client.AbstractAcquireTokenParameterBuilder => throw null; + } + public static partial class AcquireTokenForClientBuilderExtensions + { + public static Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder WithProofOfPosessionKeyId(this Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder builder, string keyId, string expectedTokenTypeFromAad = default(string)) => throw null; + } + public static partial class AcquireTokenInteractiveParameterBuilderExtensions + { + public static Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithCustomWebUi(this Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder builder, Microsoft.Identity.Client.Extensibility.ICustomWebUi customWebUi) => throw null; + } + public static partial class AcquireTokenOnBehalfOfParameterBuilderExtensions + { + public static Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder WithSearchInCacheForLongRunningProcess(this Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder builder, bool searchInCache = default(bool)) => throw null; + } + public class AppTokenProviderParameters + { + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public string Claims { get => throw null; } + public string CorrelationId { get => throw null; } + public AppTokenProviderParameters() => throw null; + public System.Collections.Generic.IEnumerable Scopes { get => throw null; } + public string TenantId { get => throw null; } + } + public class AppTokenProviderResult + { + public string AccessToken { get => throw null; set { } } + public AppTokenProviderResult() => throw null; + public long ExpiresInSeconds { get => throw null; set { } } + public long? RefreshInSeconds { get => throw null; set { } } + } + public static partial class ConfidentialClientApplicationBuilderExtensions + { + public static Microsoft.Identity.Client.ConfidentialClientApplicationBuilder WithAppTokenProvider(this Microsoft.Identity.Client.ConfidentialClientApplicationBuilder builder, System.Func> appTokenProvider) => throw null; + } + public static partial class ConfidentialClientApplicationExtensions + { + public static System.Threading.Tasks.Task StopLongRunningProcessInWebApiAsync(this Microsoft.Identity.Client.ILongRunningWebApi clientApp, string longRunningProcessSessionKey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + } + public interface ICustomWebUi + { + System.Threading.Tasks.Task AcquireAuthorizationCodeAsync(System.Uri authorizationUri, System.Uri redirectUri, System.Threading.CancellationToken cancellationToken); + } + public sealed class OnBeforeTokenRequestData + { + public System.Collections.Generic.IDictionary BodyParameters { get => throw null; } + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public OnBeforeTokenRequestData(System.Collections.Generic.IDictionary bodyParameters, System.Collections.Generic.IDictionary headers, System.Uri requestUri, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Collections.Generic.IDictionary Headers { get => throw null; } + public System.Uri RequestUri { get => throw null; set { } } + } + } + public sealed class GetAuthorizationRequestUrlParameterBuilder : Microsoft.Identity.Client.AbstractConfidentialClientAcquireTokenParameterBuilder + { + public System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task ExecuteAsync() => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithAccount(Microsoft.Identity.Client.IAccount account) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithCcsRoutingHint(string userObjectIdentifier, string tenantIdentifier) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithExtraScopesToConsent(System.Collections.Generic.IEnumerable extraScopesToConsent) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithLoginHint(string loginHint) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithPkce(out string codeVerifier) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithPrompt(Microsoft.Identity.Client.Prompt prompt) => throw null; + public Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder WithRedirectUri(string redirectUri) => throw null; + } + public interface IAccount + { + string Environment { get; } + Microsoft.Identity.Client.AccountId HomeAccountId { get; } + string Username { get; } + } + public interface IAppConfig + { + System.Collections.Generic.IEnumerable ClientCapabilities { get; } + System.Security.Cryptography.X509Certificates.X509Certificate2 ClientCredentialCertificate { get; } + string ClientId { get; } + string ClientName { get; } + string ClientSecret { get; } + string ClientVersion { get; } + bool EnablePiiLogging { get; } + bool ExperimentalFeaturesEnabled { get; } + System.Collections.Generic.IDictionary ExtraQueryParameters { get; } + Microsoft.Identity.Client.IMsalHttpClientFactory HttpClientFactory { get; } + bool IsBrokerEnabled { get; } + bool IsDefaultPlatformLoggingEnabled { get; } + bool LegacyCacheCompatibilityEnabled { get; } + Microsoft.Identity.Client.LogCallback LoggingCallback { get; } + Microsoft.Identity.Client.LogLevel LogLevel { get; } + System.Func ParentActivityOrWindowFunc { get; } + string RedirectUri { get; } + Microsoft.Identity.Client.ITelemetryConfig TelemetryConfig { get; } + string TenantId { get; } + } + public interface IApplicationBase + { + } + public interface IByRefreshToken + { + Microsoft.Identity.Client.AcquireTokenByRefreshTokenParameterBuilder AcquireTokenByRefreshToken(System.Collections.Generic.IEnumerable scopes, string refreshToken); + System.Threading.Tasks.Task AcquireTokenByRefreshTokenAsync(System.Collections.Generic.IEnumerable scopes, string refreshToken); + } + public interface IClientApplicationBase : Microsoft.Identity.Client.IApplicationBase + { + Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder AcquireTokenSilent(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account); + Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder AcquireTokenSilent(System.Collections.Generic.IEnumerable scopes, string loginHint); + System.Threading.Tasks.Task AcquireTokenSilentAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account); + System.Threading.Tasks.Task AcquireTokenSilentAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, string authority, bool forceRefresh); + Microsoft.Identity.Client.IAppConfig AppConfig { get; } + string Authority { get; } + string ClientId { get; } + string Component { get; set; } + System.Threading.Tasks.Task GetAccountAsync(string identifier); + System.Threading.Tasks.Task> GetAccountsAsync(); + System.Threading.Tasks.Task> GetAccountsAsync(string userFlow); + Microsoft.Identity.Client.IUser GetUser(string identifier); + string RedirectUri { get; set; } + void Remove(Microsoft.Identity.Client.IUser user); + System.Threading.Tasks.Task RemoveAsync(Microsoft.Identity.Client.IAccount account); + string SliceParameters { get; set; } + System.Collections.Generic.IEnumerable Users { get; } + Microsoft.Identity.Client.ITokenCache UserTokenCache { get; } + bool ValidateAuthority { get; } + } + public interface IConfidentialClientApplication : Microsoft.Identity.Client.IApplicationBase, Microsoft.Identity.Client.IClientApplicationBase + { + Microsoft.Identity.Client.AcquireTokenByAuthorizationCodeParameterBuilder AcquireTokenByAuthorizationCode(System.Collections.Generic.IEnumerable scopes, string authorizationCode); + System.Threading.Tasks.Task AcquireTokenByAuthorizationCodeAsync(string authorizationCode, System.Collections.Generic.IEnumerable scopes); + Microsoft.Identity.Client.AcquireTokenForClientParameterBuilder AcquireTokenForClient(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task AcquireTokenForClientAsync(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task AcquireTokenForClientAsync(System.Collections.Generic.IEnumerable scopes, bool forceRefresh); + Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder AcquireTokenOnBehalfOf(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion); + System.Threading.Tasks.Task AcquireTokenOnBehalfOfAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion); + System.Threading.Tasks.Task AcquireTokenOnBehalfOfAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion, string authority); + Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder AcquireTokenSilent(System.Collections.Generic.IEnumerable scopes, string loginHint); + Microsoft.Identity.Client.ITokenCache AppTokenCache { get; } + System.Threading.Tasks.Task> GetAccountsAsync(); + Microsoft.Identity.Client.GetAuthorizationRequestUrlParameterBuilder GetAuthorizationRequestUrl(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task GetAuthorizationRequestUrlAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, string extraQueryParameters); + System.Threading.Tasks.Task GetAuthorizationRequestUrlAsync(System.Collections.Generic.IEnumerable scopes, string redirectUri, string loginHint, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority); + } + public interface IConfidentialClientApplicationWithCertificate + { + System.Threading.Tasks.Task AcquireTokenForClientWithCertificateAsync(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task AcquireTokenForClientWithCertificateAsync(System.Collections.Generic.IEnumerable scopes, bool forceRefresh); + System.Threading.Tasks.Task AcquireTokenOnBehalfOfWithCertificateAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion); + System.Threading.Tasks.Task AcquireTokenOnBehalfOfWithCertificateAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UserAssertion userAssertion, string authority); + } + public interface ILongRunningWebApi + { + Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder AcquireTokenInLongRunningProcess(System.Collections.Generic.IEnumerable scopes, string longRunningProcessSessionKey); + Microsoft.Identity.Client.AcquireTokenOnBehalfOfParameterBuilder InitiateLongRunningProcessInWebApi(System.Collections.Generic.IEnumerable scopes, string userToken, ref string longRunningProcessSessionKey); + } + public interface IManagedIdentityApplication : Microsoft.Identity.Client.IApplicationBase + { + Microsoft.Identity.Client.AcquireTokenForManagedIdentityParameterBuilder AcquireTokenForManagedIdentity(string resource); + } + public interface IMsalHttpClientFactory + { + System.Net.Http.HttpClient GetHttpClient(); + } + public class IntuneAppProtectionPolicyRequiredException : Microsoft.Identity.Client.MsalServiceException + { + public string AccountUserId { get => throw null; set { } } + public string AuthorityUrl { get => throw null; set { } } + public IntuneAppProtectionPolicyRequiredException(string errorCode, string errorMessage) : base(default(string), default(string)) => throw null; + public string TenantId { get => throw null; set { } } + public string Upn { get => throw null; set { } } + } + public interface IPublicClientApplication : Microsoft.Identity.Client.IApplicationBase, Microsoft.Identity.Client.IClientApplicationBase + { + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UIParent parent); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.UIParent parent); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.UIParent parent); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, Microsoft.Identity.Client.UIParent parent); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, Microsoft.Identity.Client.UIParent parent); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority, Microsoft.Identity.Client.UIParent parent); + System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority, Microsoft.Identity.Client.UIParent parent); + Microsoft.Identity.Client.AcquireTokenByIntegratedWindowsAuthParameterBuilder AcquireTokenByIntegratedWindowsAuth(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task AcquireTokenByIntegratedWindowsAuthAsync(System.Collections.Generic.IEnumerable scopes); + System.Threading.Tasks.Task AcquireTokenByIntegratedWindowsAuthAsync(System.Collections.Generic.IEnumerable scopes, string username); + Microsoft.Identity.Client.AcquireTokenByUsernamePasswordParameterBuilder AcquireTokenByUsernamePassword(System.Collections.Generic.IEnumerable scopes, string username, System.Security.SecureString password); + Microsoft.Identity.Client.AcquireTokenByUsernamePasswordParameterBuilder AcquireTokenByUsernamePassword(System.Collections.Generic.IEnumerable scopes, string username, string password); + System.Threading.Tasks.Task AcquireTokenByUsernamePasswordAsync(System.Collections.Generic.IEnumerable scopes, string username, System.Security.SecureString securePassword); + Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder AcquireTokenInteractive(System.Collections.Generic.IEnumerable scopes); + Microsoft.Identity.Client.AcquireTokenWithDeviceCodeParameterBuilder AcquireTokenWithDeviceCode(System.Collections.Generic.IEnumerable scopes, System.Func deviceCodeResultCallback); + System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, System.Func deviceCodeResultCallback); + System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, string extraQueryParameters, System.Func deviceCodeResultCallback); + System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, System.Func deviceCodeResultCallback, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, string extraQueryParameters, System.Func deviceCodeResultCallback, System.Threading.CancellationToken cancellationToken); + bool IsSystemWebViewAvailable { get; } + } + public interface ITelemetryConfig + { + Microsoft.Identity.Client.TelemetryAudienceType AudienceType { get; } + System.Action DispatchAction { get; } + string SessionId { get; } + } + public interface ITelemetryEventPayload + { + System.Collections.Generic.IReadOnlyDictionary BoolValues { get; } + System.Collections.Generic.IReadOnlyDictionary Int64Values { get; } + System.Collections.Generic.IReadOnlyDictionary IntValues { get; } + string Name { get; } + System.Collections.Generic.IReadOnlyDictionary StringValues { get; } + string ToJsonString(); + } + public interface ITokenCache + { + void Deserialize(byte[] msalV2State); + void DeserializeAdalV3(byte[] adalV3State); + void DeserializeMsalV2(byte[] msalV2State); + void DeserializeMsalV3(byte[] msalV3State, bool shouldClearExistingCache = default(bool)); + void DeserializeUnifiedAndAdalCache(Microsoft.Identity.Client.Cache.CacheData cacheData); + byte[] Serialize(); + byte[] SerializeAdalV3(); + byte[] SerializeMsalV2(); + byte[] SerializeMsalV3(); + Microsoft.Identity.Client.Cache.CacheData SerializeUnifiedAndAdalCache(); + void SetAfterAccess(Microsoft.Identity.Client.TokenCacheCallback afterAccess); + void SetAfterAccessAsync(System.Func afterAccess); + void SetBeforeAccess(Microsoft.Identity.Client.TokenCacheCallback beforeAccess); + void SetBeforeAccessAsync(System.Func beforeAccess); + void SetBeforeWrite(Microsoft.Identity.Client.TokenCacheCallback beforeWrite); + void SetBeforeWriteAsync(System.Func beforeWrite); + } + public interface ITokenCacheSerializer + { + void DeserializeAdalV3(byte[] adalV3State); + void DeserializeMsalV2(byte[] msalV2State); + void DeserializeMsalV3(byte[] msalV3State, bool shouldClearExistingCache = default(bool)); + byte[] SerializeAdalV3(); + byte[] SerializeMsalV2(); + byte[] SerializeMsalV3(); + } + public interface IUser + { + string DisplayableId { get; } + string Identifier { get; } + string IdentityProvider { get; } + string Name { get; } + } + namespace Kerberos + { + public enum KerberosKeyTypes + { + None = 0, + DecCbcCrc = 1, + DesCbcMd5 = 3, + Aes128CtsHmacSha196 = 17, + Aes256CtsHmacSha196 = 18, + } + public class KerberosSupplementalTicket + { + public string ClientKey { get => throw null; set { } } + public string ClientName { get => throw null; set { } } + public KerberosSupplementalTicket() => throw null; + public KerberosSupplementalTicket(string errorMessage) => throw null; + public string ErrorMessage { get => throw null; set { } } + public string KerberosMessageBuffer { get => throw null; set { } } + public Microsoft.Identity.Client.Kerberos.KerberosKeyTypes KeyType { get => throw null; set { } } + public string Realm { get => throw null; set { } } + public string ServicePrincipalName { get => throw null; set { } } + public override string ToString() => throw null; + } + public static class KerberosSupplementalTicketManager + { + public static Microsoft.Identity.Client.Kerberos.KerberosSupplementalTicket FromIdToken(string idToken) => throw null; + public static byte[] GetKerberosTicketFromWindowsTicketCache(string servicePrincipalName) => throw null; + public static byte[] GetKerberosTicketFromWindowsTicketCache(string servicePrincipalName, long logonId) => throw null; + public static byte[] GetKrbCred(Microsoft.Identity.Client.Kerberos.KerberosSupplementalTicket ticket) => throw null; + public static void SaveToWindowsTicketCache(Microsoft.Identity.Client.Kerberos.KerberosSupplementalTicket ticket) => throw null; + public static void SaveToWindowsTicketCache(Microsoft.Identity.Client.Kerberos.KerberosSupplementalTicket ticket, long logonId) => throw null; + } + public enum KerberosTicketContainer + { + IdToken = 0, + AccessToken = 1, + } + } + public delegate void LogCallback(Microsoft.Identity.Client.LogLevel level, string message, bool containsPii); + public sealed class Logger + { + public Logger() => throw null; + public static bool DefaultLoggingEnabled { get => throw null; set { } } + public static Microsoft.Identity.Client.LogLevel Level { get => throw null; set { } } + public static Microsoft.Identity.Client.LogCallback LogCallback { set { } } + public static bool PiiLoggingEnabled { get => throw null; set { } } + } + public enum LogLevel + { + Always = -1, + Error = 0, + Warning = 1, + Info = 2, + Verbose = 3, + } + namespace ManagedIdentity + { + public enum ManagedIdentitySource + { + None = 0, + Imds = 1, + AppService = 2, + AzureArc = 3, + CloudShell = 4, + ServiceFabric = 5, + DefaultToImds = 6, + } + } + public sealed class ManagedIdentityApplication : Microsoft.Identity.Client.ApplicationBase, Microsoft.Identity.Client.IApplicationBase, Microsoft.Identity.Client.IManagedIdentityApplication + { + public Microsoft.Identity.Client.AcquireTokenForManagedIdentityParameterBuilder AcquireTokenForManagedIdentity(string resource) => throw null; + public static Microsoft.Identity.Client.ManagedIdentity.ManagedIdentitySource GetManagedIdentitySource() => throw null; + } + public sealed class ManagedIdentityApplicationBuilder : Microsoft.Identity.Client.BaseAbstractApplicationBuilder + { + public Microsoft.Identity.Client.IManagedIdentityApplication Build() => throw null; + public static Microsoft.Identity.Client.ManagedIdentityApplicationBuilder Create(Microsoft.Identity.Client.AppConfig.ManagedIdentityId managedIdentityId) => throw null; + public Microsoft.Identity.Client.ManagedIdentityApplicationBuilder WithTelemetryClient(params Microsoft.IdentityModel.Abstractions.ITelemetryClient[] telemetryClients) => throw null; + } + public class Metrics + { + public static long TotalAccessTokensFromBroker { get => throw null; } + public static long TotalAccessTokensFromCache { get => throw null; } + public static long TotalAccessTokensFromIdP { get => throw null; } + public static long TotalDurationInMs { get => throw null; } + } + public class MsalClaimsChallengeException : Microsoft.Identity.Client.MsalUiRequiredException + { + public MsalClaimsChallengeException(string errorCode, string errorMessage) : base(default(string), default(string)) => throw null; + public MsalClaimsChallengeException(string errorCode, string errorMessage, System.Exception innerException) : base(default(string), default(string)) => throw null; + public MsalClaimsChallengeException(string errorCode, string errorMessage, System.Exception innerException, Microsoft.Identity.Client.UiRequiredExceptionClassification classification) : base(default(string), default(string)) => throw null; + } + public class MsalClientException : Microsoft.Identity.Client.MsalException + { + public MsalClientException(string errorCode) => throw null; + public MsalClientException(string errorCode, string errorMessage) => throw null; + public MsalClientException(string errorCode, string errorMessage, System.Exception innerException) => throw null; + } + public static class MsalError + { + public const string AccessDenied = default; + public const string AccessingWsMetadataExchangeFailed = default; + public const string AccessTokenTypeMissing = default; + public const string ActivityRequired = default; + public const string AdfsNotSupportedWithBroker = default; + public const string AndroidBrokerOperationFailed = default; + public const string AndroidBrokerSignatureVerificationFailed = default; + public const string AuthenticationCanceledError = default; + public const string AuthenticationFailed = default; + public const string AuthenticationUiFailed = default; + public const string AuthenticationUiFailedError = default; + public const string AuthorityHostMismatch = default; + public const string AuthorityTenantSpecifiedTwice = default; + public const string AuthorityTypeMismatch = default; + public const string AuthorityValidationFailed = default; + public const string B2CAuthorityHostMismatch = default; + public const string BrokerApplicationRequired = default; + public const string BrokerDoesNotSupportPop = default; + public const string BrokerNonceMismatch = default; + public const string BrokerRequiredForPop = default; + public const string BrokerResponseHashMismatch = default; + public const string BrokerResponseReturnedError = default; + public const string CannotAccessUserInformationOrUserNotDomainJoined = default; + public const string CannotInvokeBroker = default; + public const string CertificateNotRsa = default; + public const string CertWithoutPrivateKey = default; + public const string ClientCredentialAuthenticationTypeMustBeDefined = default; + public const string ClientCredentialAuthenticationTypesAreMutuallyExclusive = default; + public const string CodeExpired = default; + public const string CombinedUserAppCacheNotSupported = default; + public const string CryptographicError = default; + public const string CurrentBrokerAccount = default; + public const string CustomMetadataInstanceOrUri = default; + public const string CustomWebUiRedirectUriMismatch = default; + public const string CustomWebUiReturnedInvalidUri = default; + public const string DefaultRedirectUriIsInvalid = default; + public const string DeviceCertificateNotFound = default; + public const string DuplicateQueryParameterError = default; + public const string EncodedTokenTooLong = default; + public const string ExactlyOneScopeExpected = default; + public const string ExperimentalFeature = default; + public const string FailedToAcquireTokenSilentlyFromBroker = default; + public const string FailedToGetBrokerResponse = default; + public const string FailedToRefreshToken = default; + public const string FederatedServiceReturnedError = default; + public const string GetUserNameFailed = default; + public const string HttpListenerError = default; + public const string HttpStatusCodeNotOk = default; + public const string HttpStatusNotFound = default; + public const string InitializeProcessSecurityError = default; + public const string IntegratedWindowsAuthenticationFailed = default; + public const string IntegratedWindowsAuthNotSupportedForManagedUser = default; + public const string InteractionRequired = default; + public const string InternalError = default; + public const string InvalidAdalCacheMultipleRTs = default; + public const string InvalidAuthority = default; + public const string InvalidAuthorityType = default; + public const string InvalidAuthorizationUri = default; + public const string InvalidClient = default; + public const string InvalidGrantError = default; + public const string InvalidInstance = default; + public const string InvalidJsonClaimsFormat = default; + public const string InvalidJwtError = default; + public const string InvalidManagedIdentityEndpoint = default; + public const string InvalidManagedIdentityResponse = default; + public const string InvalidOwnerWindowType = default; + public const string InvalidRequest = default; + public const string InvalidTokenProviderResponseValue = default; + public const string InvalidUserInstanceMetadata = default; + public const string JsonParseError = default; + public const string LinuxXdgOpen = default; + public const string LoopbackRedirectUri = default; + public const string LoopbackResponseUriMismatch = default; + public const string ManagedIdentityRequestFailed = default; + public const string ManagedIdentityUnreachableNetwork = default; + public const string MissingFederationMetadataUrl = default; + public const string MissingPassiveAuthEndpoint = default; + public const string MultipleAccountsForLoginHint = default; + public const string MultipleTokensMatchedError = default; + public const string NetworkNotAvailableError = default; + public const string NoAccountForLoginHint = default; + public const string NoAndroidBrokerAccountFound = default; + public const string NoAndroidBrokerInstalledOnDevice = default; + public const string NoClientId = default; + public const string NonceRequiredForPopOnPCA = default; + public const string NonHttpsRedirectNotSupported = default; + public const string NonParsableOAuthError = default; + public const string NoPromptFailedError = default; + public const string NoRedirectUri = default; + public const string NoTokensFoundError = default; + public const string NoUsernameOrAccountIDProvidedForSilentAndroidBrokerAuthentication = default; + public const string NullIntentReturnedFromAndroidBroker = default; + public const string OboCacheKeyNotInCacheError = default; + public const string ParsingWsMetadataExchangeFailed = default; + public const string ParsingWsTrustResponseFailed = default; + public const string PasswordRequiredForManagedUserError = default; + public const string PlatformNotSupported = default; + public const string RedirectUriValidationFailed = default; + public const string RegionalAndAuthorityOverride = default; + public const string RegionalAuthorityValidation = default; + public const string RegionDiscoveryFailed = default; + public const string RegionDiscoveryNotEnabled = default; + public const string RegionDiscoveryWithCustomInstanceMetadata = default; + public const string RequestThrottled = default; + public const string RequestTimeout = default; + public const string RopcDoesNotSupportMsaAccounts = default; + public const string ScopesRequired = default; + public const string ServiceNotAvailable = default; + public const string SetCiamAuthorityAtRequestLevelNotSupported = default; + public const string SSHCertUsedAsHttpHeader = default; + public const string StateMismatchError = default; + public const string StaticCacheWithExternalSerialization = default; + public const string SystemWebviewOptionsNotApplicable = default; + public const string TelemetryConfigOrTelemetryCallback = default; + public const string TenantDiscoveryFailedError = default; + public const string TenantOverrideNonAad = default; + public const string TokenCacheNullError = default; + public const string TokenTypeMismatch = default; + public const string UapCannotFindDomainUser = default; + public const string UapCannotFindUpn = default; + public const string UnableToParseAuthenticationHeader = default; + public const string UnauthorizedClient = default; + public const string UnknownBrokerError = default; + public const string UnknownError = default; + public const string UnknownManagedIdentityError = default; + public const string UnknownUser = default; + public const string UnknownUserType = default; + public const string UpnRequired = default; + public const string UserAssertionNullError = default; + public const string UserAssignedManagedIdentityNotConfigurableAtRuntime = default; + public const string UserAssignedManagedIdentityNotSupported = default; + public const string UserMismatch = default; + public const string UserNullError = default; + public const string UserRealmDiscoveryFailed = default; + public const string ValidateAuthorityOrCustomMetadata = default; + public const string WABError = default; + public const string WamFailedToSignout = default; + public const string WamInteractiveError = default; + public const string WamNoB2C = default; + public const string WamPickerError = default; + public const string WamScopesRequired = default; + public const string WamUiThread = default; + public const string WebView2LoaderNotFound = default; + public const string WebView2NotInstalled = default; + public const string WebviewUnavailable = default; + public const string WsTrustEndpointNotFoundInMetadataDocument = default; + } + public class MsalException : System.Exception + { + public System.Collections.Generic.IReadOnlyDictionary AdditionalExceptionData { get => throw null; set { } } + public const string BrokerErrorCode = default; + public const string BrokerErrorContext = default; + public const string BrokerErrorStatus = default; + public const string BrokerErrorTag = default; + public const string BrokerTelemetry = default; + public string CorrelationId { get => throw null; set { } } + public MsalException() => throw null; + public MsalException(string errorCode) => throw null; + public MsalException(string errorCode, string errorMessage) => throw null; + public MsalException(string errorCode, string errorMessage, System.Exception innerException) => throw null; + public string ErrorCode { get => throw null; } + public static Microsoft.Identity.Client.MsalException FromJsonString(string json) => throw null; + public bool IsRetryable { get => throw null; set { } } + public const string ManagedIdentitySource = default; + public string ToJsonString() => throw null; + public override string ToString() => throw null; + } + public class MsalManagedIdentityException : Microsoft.Identity.Client.MsalServiceException + { + public MsalManagedIdentityException(string errorCode, string errorMessage, Microsoft.Identity.Client.ManagedIdentity.ManagedIdentitySource source) : base(default(string), default(string)) => throw null; + public MsalManagedIdentityException(string errorCode, string errorMessage, Microsoft.Identity.Client.ManagedIdentity.ManagedIdentitySource source, int statusCode) : base(default(string), default(string)) => throw null; + public MsalManagedIdentityException(string errorCode, string errorMessage, System.Exception innerException, Microsoft.Identity.Client.ManagedIdentity.ManagedIdentitySource source, int statusCode) : base(default(string), default(string)) => throw null; + public MsalManagedIdentityException(string errorCode, string errorMessage, System.Exception innerException, Microsoft.Identity.Client.ManagedIdentity.ManagedIdentitySource source) : base(default(string), default(string)) => throw null; + public Microsoft.Identity.Client.ManagedIdentity.ManagedIdentitySource ManagedIdentitySource { get => throw null; } + protected override void UpdateIsRetryable() => throw null; + } + public class MsalServiceException : Microsoft.Identity.Client.MsalException + { + public string Claims { get => throw null; } + public MsalServiceException(string errorCode, string errorMessage) => throw null; + public MsalServiceException(string errorCode, string errorMessage, int statusCode) => throw null; + public MsalServiceException(string errorCode, string errorMessage, System.Exception innerException) => throw null; + public MsalServiceException(string errorCode, string errorMessage, int statusCode, System.Exception innerException) => throw null; + public MsalServiceException(string errorCode, string errorMessage, int statusCode, string claims, System.Exception innerException) => throw null; + public System.Net.Http.Headers.HttpResponseHeaders Headers { get => throw null; set { } } + public string ResponseBody { get => throw null; set { } } + public int StatusCode { get => throw null; } + public override string ToString() => throw null; + protected virtual void UpdateIsRetryable() => throw null; + } + public class MsalThrottledServiceException : Microsoft.Identity.Client.MsalServiceException + { + public MsalThrottledServiceException(Microsoft.Identity.Client.MsalServiceException originalException) : base(default(string), default(string)) => throw null; + public Microsoft.Identity.Client.MsalServiceException OriginalServiceException { get => throw null; } + } + public class MsalThrottledUiRequiredException : Microsoft.Identity.Client.MsalUiRequiredException + { + public MsalThrottledUiRequiredException(Microsoft.Identity.Client.MsalUiRequiredException originalException) : base(default(string), default(string)) => throw null; + public Microsoft.Identity.Client.MsalUiRequiredException OriginalServiceException { get => throw null; } + } + public class MsalUiRequiredException : Microsoft.Identity.Client.MsalServiceException + { + public Microsoft.Identity.Client.UiRequiredExceptionClassification Classification { get => throw null; } + public MsalUiRequiredException(string errorCode, string errorMessage) : base(default(string), default(string)) => throw null; + public MsalUiRequiredException(string errorCode, string errorMessage, System.Exception innerException) : base(default(string), default(string)) => throw null; + public MsalUiRequiredException(string errorCode, string errorMessage, System.Exception innerException, Microsoft.Identity.Client.UiRequiredExceptionClassification classification) : base(default(string), default(string)) => throw null; + } + public static partial class OsCapabilitiesExtensions + { + public static System.Security.Cryptography.X509Certificates.X509Certificate2 GetCertificate(this Microsoft.Identity.Client.IConfidentialClientApplication confidentialClientApplication) => throw null; + public static bool IsEmbeddedWebViewAvailable(this Microsoft.Identity.Client.IPublicClientApplication publicClientApplication) => throw null; + public static bool IsSystemWebViewAvailable(this Microsoft.Identity.Client.IPublicClientApplication publicClientApplication) => throw null; + public static bool IsUserInteractive(this Microsoft.Identity.Client.IPublicClientApplication publicClientApplication) => throw null; + } + namespace Platforms + { + namespace Features + { + namespace DesktopOs + { + namespace Kerberos + { + public abstract class Credential + { + protected Credential() => throw null; + public static Microsoft.Identity.Client.Platforms.Features.DesktopOs.Kerberos.Credential Current() => throw null; + } + } + } + } + } + public struct Prompt + { + public static readonly Microsoft.Identity.Client.Prompt Consent; + public static readonly Microsoft.Identity.Client.Prompt Create; + public override bool Equals(object obj) => throw null; + public static readonly Microsoft.Identity.Client.Prompt ForceLogin; + public override int GetHashCode() => throw null; + public static readonly Microsoft.Identity.Client.Prompt NoPrompt; + public static bool operator ==(Microsoft.Identity.Client.Prompt x, Microsoft.Identity.Client.Prompt y) => throw null; + public static bool operator !=(Microsoft.Identity.Client.Prompt x, Microsoft.Identity.Client.Prompt y) => throw null; + public static readonly Microsoft.Identity.Client.Prompt SelectAccount; + } + public sealed class PublicClientApplication : Microsoft.Identity.Client.ClientApplicationBase, Microsoft.Identity.Client.IApplicationBase, Microsoft.Identity.Client.IByRefreshToken, Microsoft.Identity.Client.IClientApplicationBase, Microsoft.Identity.Client.IPublicClientApplication + { + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.UIParent parent) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.UIParent parent) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.UIParent parent) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, Microsoft.Identity.Client.UIParent parent) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, Microsoft.Identity.Client.UIParent parent) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, string loginHint, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority, Microsoft.Identity.Client.UIParent parent) => throw null; + public System.Threading.Tasks.Task AcquireTokenAsync(System.Collections.Generic.IEnumerable scopes, Microsoft.Identity.Client.IAccount account, Microsoft.Identity.Client.Prompt prompt, string extraQueryParameters, System.Collections.Generic.IEnumerable extraScopesToConsent, string authority, Microsoft.Identity.Client.UIParent parent) => throw null; + public Microsoft.Identity.Client.AcquireTokenByIntegratedWindowsAuthParameterBuilder AcquireTokenByIntegratedWindowsAuth(System.Collections.Generic.IEnumerable scopes) => throw null; + public System.Threading.Tasks.Task AcquireTokenByIntegratedWindowsAuthAsync(System.Collections.Generic.IEnumerable scopes) => throw null; + public System.Threading.Tasks.Task AcquireTokenByIntegratedWindowsAuthAsync(System.Collections.Generic.IEnumerable scopes, string username) => throw null; + Microsoft.Identity.Client.AcquireTokenByRefreshTokenParameterBuilder Microsoft.Identity.Client.IByRefreshToken.AcquireTokenByRefreshToken(System.Collections.Generic.IEnumerable scopes, string refreshToken) => throw null; + System.Threading.Tasks.Task Microsoft.Identity.Client.IByRefreshToken.AcquireTokenByRefreshTokenAsync(System.Collections.Generic.IEnumerable scopes, string refreshToken) => throw null; + public Microsoft.Identity.Client.AcquireTokenByUsernamePasswordParameterBuilder AcquireTokenByUsernamePassword(System.Collections.Generic.IEnumerable scopes, string username, System.Security.SecureString password) => throw null; + public Microsoft.Identity.Client.AcquireTokenByUsernamePasswordParameterBuilder AcquireTokenByUsernamePassword(System.Collections.Generic.IEnumerable scopes, string username, string password) => throw null; + public System.Threading.Tasks.Task AcquireTokenByUsernamePasswordAsync(System.Collections.Generic.IEnumerable scopes, string username, System.Security.SecureString securePassword) => throw null; + public Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder AcquireTokenInteractive(System.Collections.Generic.IEnumerable scopes) => throw null; + public Microsoft.Identity.Client.AcquireTokenWithDeviceCodeParameterBuilder AcquireTokenWithDeviceCode(System.Collections.Generic.IEnumerable scopes, System.Func deviceCodeResultCallback) => throw null; + public System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, System.Func deviceCodeResultCallback) => throw null; + public System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, string extraQueryParameters, System.Func deviceCodeResultCallback) => throw null; + public System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, System.Func deviceCodeResultCallback, System.Threading.CancellationToken cancellationToken) => throw null; + public System.Threading.Tasks.Task AcquireTokenWithDeviceCodeAsync(System.Collections.Generic.IEnumerable scopes, string extraQueryParameters, System.Func deviceCodeResultCallback, System.Threading.CancellationToken cancellationToken) => throw null; + public PublicClientApplication(string clientId) => throw null; + public PublicClientApplication(string clientId, string authority) => throw null; + public PublicClientApplication(string clientId, string authority, Microsoft.Identity.Client.TokenCache userTokenCache) => throw null; + public bool IsBrokerAvailable() => throw null; + public bool IsEmbeddedWebViewAvailable() => throw null; + public bool IsProofOfPossessionSupportedByClient() => throw null; + public bool IsSystemWebViewAvailable { get => throw null; } + public bool IsUserInteractive() => throw null; + public static Microsoft.Identity.Client.IAccount OperatingSystemAccount { get => throw null; } + } + public sealed class PublicClientApplicationBuilder : Microsoft.Identity.Client.AbstractApplicationBuilder + { + public Microsoft.Identity.Client.IPublicClientApplication Build() => throw null; + public static Microsoft.Identity.Client.PublicClientApplicationBuilder Create(string clientId) => throw null; + public static Microsoft.Identity.Client.PublicClientApplicationBuilder CreateWithApplicationOptions(Microsoft.Identity.Client.PublicClientApplicationOptions options) => throw null; + public bool IsBrokerAvailable() => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithBroker(bool enableBroker = default(bool)) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithDefaultRedirectUri() => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithIosKeychainSecurityGroup(string keychainSecurityGroup) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithKerberosTicketClaim(string servicePrincipalName, Microsoft.Identity.Client.Kerberos.KerberosTicketContainer ticketContainer) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithMultiCloudSupport(bool enableMultiCloudSupport) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithOidcAuthority(string authorityUri) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithParentActivityOrWindow(System.Func parentActivityOrWindowFunc) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithParentActivityOrWindow(System.Func windowFunc) => throw null; + public Microsoft.Identity.Client.PublicClientApplicationBuilder WithWindowsBrokerOptions(Microsoft.Identity.Client.WindowsBrokerOptions options) => throw null; + } + public static partial class PublicClientApplicationExtensions + { + public static bool IsProofOfPossessionSupportedByClient(this Microsoft.Identity.Client.IPublicClientApplication app) => throw null; + } + public class PublicClientApplicationOptions : Microsoft.Identity.Client.ApplicationOptions + { + public PublicClientApplicationOptions() => throw null; + } + namespace Region + { + public enum RegionOutcome + { + None = 0, + UserProvidedValid = 1, + UserProvidedAutodetectionFailed = 2, + UserProvidedInvalid = 3, + AutodetectSuccess = 4, + FallbackToGlobal = 5, + } + } + public class RegionDetails + { + public string AutoDetectionError { get => throw null; } + public RegionDetails(Microsoft.Identity.Client.Region.RegionOutcome regionOutcome, string regionUsed, string autoDetectionError) => throw null; + public Microsoft.Identity.Client.Region.RegionOutcome RegionOutcome { get => throw null; } + public string RegionUsed { get => throw null; } + } + namespace SSHCertificates + { + public static partial class SSHExtensions + { + public static Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder WithSSHCertificateAuthenticationScheme(this Microsoft.Identity.Client.AcquireTokenInteractiveParameterBuilder builder, string publicKeyJwk, string keyId) => throw null; + public static Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder WithSSHCertificateAuthenticationScheme(this Microsoft.Identity.Client.AcquireTokenSilentParameterBuilder builder, string publicKeyJwk, string keyId) => throw null; + } + } + public class SystemWebViewOptions + { + public System.Uri BrowserRedirectError { get => throw null; set { } } + public System.Uri BrowserRedirectSuccess { get => throw null; set { } } + public SystemWebViewOptions() => throw null; + public string HtmlMessageError { get => throw null; set { } } + public string HtmlMessageSuccess { get => throw null; set { } } + public bool iOSHidePrivacyPrompt { get => throw null; set { } } + public System.Func OpenBrowserAsync { get => throw null; set { } } + public static System.Threading.Tasks.Task OpenWithChromeEdgeBrowserAsync(System.Uri uri) => throw null; + public static System.Threading.Tasks.Task OpenWithEdgeBrowserAsync(System.Uri uri) => throw null; + } + public class Telemetry + { + public Telemetry() => throw null; + public static Microsoft.Identity.Client.Telemetry GetInstance() => throw null; + public bool HasRegisteredReceiver() => throw null; + public delegate void Receiver(System.Collections.Generic.List> events); + public void RegisterReceiver(Microsoft.Identity.Client.Telemetry.Receiver r) => throw null; + public bool TelemetryOnFailureOnly { get => throw null; set { } } + } + public enum TelemetryAudienceType + { + PreProduction = 0, + Production = 1, + } + namespace TelemetryCore + { + namespace TelemetryClient + { + public class TelemetryData + { + public Microsoft.Identity.Client.Cache.CacheLevel CacheLevel { get => throw null; set { } } + public TelemetryData() => throw null; + } + } + } + public class TenantProfile + { + public System.Security.Claims.ClaimsPrincipal ClaimsPrincipal { get => throw null; } + public bool IsHomeTenant { get => throw null; } + public string Oid { get => throw null; } + public string TenantId { get => throw null; } + } + public sealed class TokenCache : Microsoft.Identity.Client.ITokenCache, Microsoft.Identity.Client.ITokenCacheSerializer + { + public TokenCache() => throw null; + public void Deserialize(byte[] msalV2State) => throw null; + public void DeserializeAdalV3(byte[] adalV3State) => throw null; + void Microsoft.Identity.Client.ITokenCacheSerializer.DeserializeAdalV3(byte[] adalV3State) => throw null; + public void DeserializeMsalV2(byte[] msalV2State) => throw null; + void Microsoft.Identity.Client.ITokenCacheSerializer.DeserializeMsalV2(byte[] msalV2State) => throw null; + public void DeserializeMsalV3(byte[] msalV3State, bool shouldClearExistingCache) => throw null; + void Microsoft.Identity.Client.ITokenCacheSerializer.DeserializeMsalV3(byte[] msalV3State, bool shouldClearExistingCache) => throw null; + public void DeserializeUnifiedAndAdalCache(Microsoft.Identity.Client.Cache.CacheData cacheData) => throw null; + public bool HasStateChanged { get => throw null; set { } } + public byte[] Serialize() => throw null; + public byte[] SerializeAdalV3() => throw null; + byte[] Microsoft.Identity.Client.ITokenCacheSerializer.SerializeAdalV3() => throw null; + public byte[] SerializeMsalV2() => throw null; + byte[] Microsoft.Identity.Client.ITokenCacheSerializer.SerializeMsalV2() => throw null; + public byte[] SerializeMsalV3() => throw null; + byte[] Microsoft.Identity.Client.ITokenCacheSerializer.SerializeMsalV3() => throw null; + public Microsoft.Identity.Client.Cache.CacheData SerializeUnifiedAndAdalCache() => throw null; + public void SetAfterAccess(Microsoft.Identity.Client.TokenCacheCallback afterAccess) => throw null; + public void SetAfterAccessAsync(System.Func afterAccess) => throw null; + public void SetBeforeAccess(Microsoft.Identity.Client.TokenCacheCallback beforeAccess) => throw null; + public void SetBeforeAccessAsync(System.Func beforeAccess) => throw null; + public void SetBeforeWrite(Microsoft.Identity.Client.TokenCacheCallback beforeWrite) => throw null; + public void SetBeforeWriteAsync(System.Func beforeWrite) => throw null; + public void SetIosKeychainSecurityGroup(string securityGroup) => throw null; + public delegate void TokenCacheNotification(Microsoft.Identity.Client.TokenCacheNotificationArgs args); + } + public delegate void TokenCacheCallback(Microsoft.Identity.Client.TokenCacheNotificationArgs args); + public static partial class TokenCacheExtensions + { + public static void SetCacheOptions(this Microsoft.Identity.Client.ITokenCache tokenCache, Microsoft.Identity.Client.CacheOptions options) => throw null; + } + public sealed class TokenCacheNotificationArgs + { + public Microsoft.Identity.Client.IAccount Account { get => throw null; } + public System.Threading.CancellationToken CancellationToken { get => throw null; } + public string ClientId { get => throw null; } + public System.Guid CorrelationId { get => throw null; } + public TokenCacheNotificationArgs(Microsoft.Identity.Client.ITokenCacheSerializer tokenCache, string clientId, Microsoft.Identity.Client.IAccount account, bool hasStateChanged, bool isApplicationCache, string suggestedCacheKey, bool hasTokens, System.DateTimeOffset? suggestedCacheExpiry, System.Threading.CancellationToken cancellationToken) => throw null; + public TokenCacheNotificationArgs(Microsoft.Identity.Client.ITokenCacheSerializer tokenCache, string clientId, Microsoft.Identity.Client.IAccount account, bool hasStateChanged, bool isApplicationCache, string suggestedCacheKey, bool hasTokens, System.DateTimeOffset? suggestedCacheExpiry, System.Threading.CancellationToken cancellationToken, System.Guid correlationId) => throw null; + public TokenCacheNotificationArgs(Microsoft.Identity.Client.ITokenCacheSerializer tokenCache, string clientId, Microsoft.Identity.Client.IAccount account, bool hasStateChanged, bool isApplicationCache, string suggestedCacheKey, bool hasTokens, System.DateTimeOffset? suggestedCacheExpiry, System.Threading.CancellationToken cancellationToken, System.Guid correlationId, System.Collections.Generic.IEnumerable requestScopes, string requestTenantId) => throw null; + public TokenCacheNotificationArgs(Microsoft.Identity.Client.ITokenCacheSerializer tokenCache, string clientId, Microsoft.Identity.Client.IAccount account, bool hasStateChanged, bool isApplicationCache, string suggestedCacheKey, bool hasTokens, System.DateTimeOffset? suggestedCacheExpiry, System.Threading.CancellationToken cancellationToken, System.Guid correlationId, System.Collections.Generic.IEnumerable requestScopes, string requestTenantId, Microsoft.IdentityModel.Abstractions.IIdentityLogger identityLogger, bool piiLoggingEnabled, Microsoft.Identity.Client.TelemetryCore.TelemetryClient.TelemetryData telemetryData = default(Microsoft.Identity.Client.TelemetryCore.TelemetryClient.TelemetryData)) => throw null; + public bool HasStateChanged { get => throw null; } + public bool HasTokens { get => throw null; } + public Microsoft.IdentityModel.Abstractions.IIdentityLogger IdentityLogger { get => throw null; } + public bool IsApplicationCache { get => throw null; } + public bool PiiLoggingEnabled { get => throw null; } + public System.Collections.Generic.IEnumerable RequestScopes { get => throw null; } + public string RequestTenantId { get => throw null; } + public System.DateTimeOffset? SuggestedCacheExpiry { get => throw null; } + public string SuggestedCacheKey { get => throw null; } + public Microsoft.Identity.Client.TelemetryCore.TelemetryClient.TelemetryData TelemetryData { get => throw null; } + public Microsoft.Identity.Client.ITokenCacheSerializer TokenCache { get => throw null; } + public Microsoft.Identity.Client.IUser User { get => throw null; } + } + public enum TokenSource + { + IdentityProvider = 0, + Cache = 1, + Broker = 2, + } + public class TraceTelemetryConfig : Microsoft.Identity.Client.ITelemetryConfig + { + public System.Collections.Generic.IEnumerable AllowedScopes { get => throw null; } + public Microsoft.Identity.Client.TelemetryAudienceType AudienceType { get => throw null; } + public TraceTelemetryConfig() => throw null; + public System.Action DispatchAction { get => throw null; } + public string SessionId { get => throw null; } + } + public struct UIBehavior + { + } + public sealed class UIParent + { + public UIParent() => throw null; + public UIParent(object parent, bool useEmbeddedWebView) => throw null; + public static bool IsSystemWebviewAvailable() => throw null; + } + public enum UiRequiredExceptionClassification + { + None = 0, + MessageOnly = 1, + BasicAction = 2, + AdditionalAction = 3, + ConsentRequired = 4, + UserPasswordExpired = 5, + PromptNeverFailed = 6, + AcquireTokenSilentFailed = 7, + } + public sealed class UserAssertion + { + public string Assertion { get => throw null; } + public string AssertionType { get => throw null; } + public UserAssertion(string jwtBearerToken) => throw null; + public UserAssertion(string assertion, string assertionType) => throw null; + } + namespace Utils + { + namespace Windows + { + public static class WindowsNativeUtils + { + public static void InitializeProcessSecurity() => throw null; + public static bool IsElevatedUser() => throw null; + } + } + } + public class WindowsBrokerOptions + { + public WindowsBrokerOptions() => throw null; + public string HeaderText { get => throw null; set { } } + public bool ListWindowsWorkAndSchoolAccounts { get => throw null; set { } } + public bool MsaPassthrough { get => throw null; set { } } + } + public class WwwAuthenticateParameters + { + public string AuthenticationScheme { get => throw null; } + public string Authority { get => throw null; set { } } + public string Claims { get => throw null; set { } } + public static Microsoft.Identity.Client.WwwAuthenticateParameters CreateFromAuthenticationHeaders(System.Net.Http.Headers.HttpResponseHeaders httpResponseHeaders, string scheme) => throw null; + public static System.Collections.Generic.IReadOnlyList CreateFromAuthenticationHeaders(System.Net.Http.Headers.HttpResponseHeaders httpResponseHeaders) => throw null; + public static System.Threading.Tasks.Task CreateFromAuthenticationResponseAsync(string resourceUri, string scheme, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task CreateFromAuthenticationResponseAsync(string resourceUri, string scheme, System.Net.Http.HttpClient httpClient, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> CreateFromAuthenticationResponseAsync(string resourceUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task> CreateFromAuthenticationResponseAsync(string resourceUri, System.Net.Http.HttpClient httpClient, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task CreateFromResourceResponseAsync(string resourceUri) => throw null; + public static System.Threading.Tasks.Task CreateFromResourceResponseAsync(string resourceUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.Threading.Tasks.Task CreateFromResourceResponseAsync(System.Net.Http.HttpClient httpClient, string resourceUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static Microsoft.Identity.Client.WwwAuthenticateParameters CreateFromResponseHeaders(System.Net.Http.Headers.HttpResponseHeaders httpResponseHeaders, string scheme = default(string)) => throw null; + public static Microsoft.Identity.Client.WwwAuthenticateParameters CreateFromWwwAuthenticateHeaderValue(string wwwAuthenticateValue) => throw null; + public WwwAuthenticateParameters() => throw null; + public string Error { get => throw null; set { } } + public static string GetClaimChallengeFromResponseHeaders(System.Net.Http.Headers.HttpResponseHeaders httpResponseHeaders, string scheme = default(string)) => throw null; + public string GetTenantId() => throw null; + public string Nonce { get => throw null; } + public string Resource { get => throw null; set { } } + public System.Collections.Generic.IEnumerable Scopes { get => throw null; set { } } + public string this[string key] { get => throw null; } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj new file mode 100644 index 000000000000..3951c0cd04ff --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.cs b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.cs new file mode 100644 index 000000000000..04ee4e6d957e --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.cs @@ -0,0 +1,77 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.IdentityModel.Abstractions, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace Microsoft +{ + namespace IdentityModel + { + namespace Abstractions + { + public enum EventLogLevel + { + LogAlways = 0, + Critical = 1, + Error = 2, + Warning = 3, + Informational = 4, + Verbose = 5, + } + public interface IIdentityLogger + { + bool IsEnabled(Microsoft.IdentityModel.Abstractions.EventLogLevel eventLogLevel); + void Log(Microsoft.IdentityModel.Abstractions.LogEntry entry); + } + public interface ITelemetryClient + { + string ClientId { get; set; } + void Initialize(); + bool IsEnabled(); + bool IsEnabled(string eventName); + void TrackEvent(Microsoft.IdentityModel.Abstractions.TelemetryEventDetails eventDetails); + void TrackEvent(string eventName, System.Collections.Generic.IDictionary stringProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary longProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary boolProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary dateTimeProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary doubleProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary guidProperties = default(System.Collections.Generic.IDictionary)); + } + public class LogEntry + { + public string CorrelationId { get => throw null; set { } } + public LogEntry() => throw null; + public Microsoft.IdentityModel.Abstractions.EventLogLevel EventLogLevel { get => throw null; set { } } + public string Message { get => throw null; set { } } + } + public sealed class NullIdentityModelLogger : Microsoft.IdentityModel.Abstractions.IIdentityLogger + { + public static Microsoft.IdentityModel.Abstractions.NullIdentityModelLogger Instance { get => throw null; } + public bool IsEnabled(Microsoft.IdentityModel.Abstractions.EventLogLevel eventLogLevel) => throw null; + public void Log(Microsoft.IdentityModel.Abstractions.LogEntry entry) => throw null; + } + public class NullTelemetryClient : Microsoft.IdentityModel.Abstractions.ITelemetryClient + { + public string ClientId { get => throw null; set { } } + public void Initialize() => throw null; + public static Microsoft.IdentityModel.Abstractions.NullTelemetryClient Instance { get => throw null; } + public bool IsEnabled() => throw null; + public bool IsEnabled(string eventName) => throw null; + public void TrackEvent(Microsoft.IdentityModel.Abstractions.TelemetryEventDetails eventDetails) => throw null; + public void TrackEvent(string eventName, System.Collections.Generic.IDictionary stringProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary longProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary boolProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary dateTimeProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary doubleProperties = default(System.Collections.Generic.IDictionary), System.Collections.Generic.IDictionary guidProperties = default(System.Collections.Generic.IDictionary)) => throw null; + } + public static class ObservabilityConstants + { + public const string ActivityId = default; + public const string ClientId = default; + public const string Duration = default; + public const string Succeeded = default; + } + public abstract class TelemetryEventDetails + { + protected TelemetryEventDetails() => throw null; + public virtual string Name { get => throw null; set { } } + public virtual System.Collections.Generic.IReadOnlyDictionary Properties { get => throw null; } + protected System.Collections.Generic.IDictionary PropertyValues { get => throw null; } + public virtual void SetProperty(string key, string value) => throw null; + public virtual void SetProperty(string key, long value) => throw null; + public virtual void SetProperty(string key, bool value) => throw null; + public virtual void SetProperty(string key, System.DateTime value) => throw null; + public virtual void SetProperty(string key, double value) => throw null; + public virtual void SetProperty(string key, System.Guid value) => throw null; + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.cs b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.cs new file mode 100644 index 000000000000..b5068997c2c6 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.cs @@ -0,0 +1,174 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.IdentityModel.JsonWebTokens, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace Microsoft +{ + namespace IdentityModel + { + namespace JsonWebTokens + { + public static class JsonClaimValueTypes + { + public const string Json = default; + public const string JsonArray = default; + public const string JsonNull = default; + } + public class JsonWebToken : Microsoft.IdentityModel.Tokens.SecurityToken + { + public string Actor { get => throw null; } + public string Alg { get => throw null; } + public System.Collections.Generic.IEnumerable Audiences { get => throw null; } + public string AuthenticationTag { get => throw null; } + public string Azp { get => throw null; } + public string Ciphertext { get => throw null; } + public virtual System.Collections.Generic.IEnumerable Claims { get => throw null; } + public JsonWebToken(string jwtEncodedString) => throw null; + public JsonWebToken(System.ReadOnlyMemory encodedTokenMemory) => throw null; + public JsonWebToken(string header, string payload) => throw null; + public string Cty { get => throw null; } + public string Enc { get => throw null; } + public string EncodedHeader { get => throw null; } + public string EncodedPayload { get => throw null; } + public string EncodedSignature { get => throw null; } + public string EncodedToken { get => throw null; } + public string EncryptedKey { get => throw null; } + public System.Security.Claims.Claim GetClaim(string key) => throw null; + public T GetHeaderValue(string key) => throw null; + public T GetPayloadValue(string key) => throw null; + public override string Id { get => throw null; } + public string InitializationVector { get => throw null; } + public Microsoft.IdentityModel.JsonWebTokens.JsonWebToken InnerToken { get => throw null; } + public bool IsEncrypted { get => throw null; } + public bool IsSigned { get => throw null; } + public System.DateTime IssuedAt { get => throw null; } + public override string Issuer { get => throw null; } + public string Kid { get => throw null; } + public override Microsoft.IdentityModel.Tokens.SecurityKey SecurityKey { get => throw null; } + public override Microsoft.IdentityModel.Tokens.SecurityKey SigningKey { get => throw null; set { } } + public string Subject { get => throw null; } + public override string ToString() => throw null; + public bool TryGetClaim(string key, out System.Security.Claims.Claim value) => throw null; + public bool TryGetHeaderValue(string key, out T value) => throw null; + public bool TryGetPayloadValue(string key, out T value) => throw null; + public bool TryGetValue(string key, out T value) => throw null; + public string Typ { get => throw null; } + public override string UnsafeToString() => throw null; + public override System.DateTime ValidFrom { get => throw null; } + public override System.DateTime ValidTo { get => throw null; } + public string X5t { get => throw null; } + public string Zip { get => throw null; } + } + public class JsonWebTokenHandler : Microsoft.IdentityModel.Tokens.TokenHandler + { + public const string Base64UrlEncodedUnsignedJWSHeader = default; + public virtual bool CanReadToken(string token) => throw null; + public virtual bool CanValidateToken { get => throw null; } + protected virtual System.Security.Claims.ClaimsIdentity CreateClaimsIdentity(Microsoft.IdentityModel.JsonWebTokens.JsonWebToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual System.Security.Claims.ClaimsIdentity CreateClaimsIdentity(Microsoft.IdentityModel.JsonWebTokens.JsonWebToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, string issuer) => throw null; + public virtual string CreateToken(string payload) => throw null; + public virtual string CreateToken(string payload, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public virtual string CreateToken(Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor tokenDescriptor) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, string compressionAlgorithm) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, string compressionAlgorithm) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, string compressionAlgorithm, System.Collections.Generic.IDictionary additionalHeaderClaims, System.Collections.Generic.IDictionary additionalInnerHeaderClaims) => throw null; + public virtual string CreateToken(string payload, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, string compressionAlgorithm, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public JsonWebTokenHandler() => throw null; + public string DecryptToken(Microsoft.IdentityModel.JsonWebTokens.JsonWebToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static System.Collections.Generic.IDictionary DefaultInboundClaimTypeMap; + public static bool DefaultMapInboundClaims; + public string EncryptToken(string innerJwt, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials) => throw null; + public string EncryptToken(string innerJwt, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public string EncryptToken(string innerJwt, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, string algorithm) => throw null; + public string EncryptToken(string innerJwt, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, string algorithm, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public System.Collections.Generic.IDictionary InboundClaimTypeMap { get => throw null; set { } } + public bool MapInboundClaims { get => throw null; set { } } + public virtual Microsoft.IdentityModel.JsonWebTokens.JsonWebToken ReadJsonWebToken(string token) => throw null; + public override Microsoft.IdentityModel.Tokens.SecurityToken ReadToken(string token) => throw null; + protected virtual Microsoft.IdentityModel.Tokens.SecurityKey ResolveTokenDecryptionKey(string token, Microsoft.IdentityModel.JsonWebTokens.JsonWebToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static string ShortClaimTypeProperty { get => throw null; set { } } + public System.Type TokenType { get => throw null; } + public virtual Microsoft.IdentityModel.Tokens.TokenValidationResult ValidateToken(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public override System.Threading.Tasks.Task ValidateTokenAsync(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public override System.Threading.Tasks.Task ValidateTokenAsync(Microsoft.IdentityModel.Tokens.SecurityToken token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + } + public static class JwtConstants + { + public const string DirectKeyUseAlg = default; + public const string HeaderType = default; + public const string HeaderTypeAlt = default; + public const string JsonCompactSerializationRegex = default; + public const string JweCompactSerializationRegex = default; + public const int JweSegmentCount = 5; + public const int JwsSegmentCount = 3; + public const int MaxJwtSegmentCount = 5; + public const string TokenType = default; + public const string TokenTypeAlt = default; + } + public struct JwtHeaderParameterNames + { + public const string Alg = default; + public const string Apu = default; + public const string Apv = default; + public const string Cty = default; + public const string Enc = default; + public const string Epk = default; + public const string IV = default; + public const string Jku = default; + public const string Jwk = default; + public const string Kid = default; + public const string Typ = default; + public const string X5c = default; + public const string X5t = default; + public const string X5u = default; + public const string Zip = default; + } + public struct JwtRegisteredClaimNames + { + public const string Acr = default; + public const string Actort = default; + public const string Amr = default; + public const string AtHash = default; + public const string Aud = default; + public const string AuthTime = default; + public const string Azp = default; + public const string Birthdate = default; + public const string CHash = default; + public const string Email = default; + public const string Exp = default; + public const string FamilyName = default; + public const string Gender = default; + public const string GivenName = default; + public const string Iat = default; + public const string Iss = default; + public const string Jti = default; + public const string Name = default; + public const string NameId = default; + public const string Nbf = default; + public const string Nonce = default; + public const string PhoneNumber = default; + public const string PhoneNumberVerified = default; + public const string Prn = default; + public const string Sid = default; + public const string Sub = default; + public const string Typ = default; + public const string UniqueName = default; + public const string Website = default; + } + public class JwtTokenUtilities + { + public static string CreateEncodedSignature(string input, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials) => throw null; + public static string CreateEncodedSignature(string input, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, bool cacheProvider) => throw null; + public JwtTokenUtilities() => throw null; + public static byte[] GenerateKeyBytes(int sizeInBits) => throw null; + public static System.Collections.Generic.IEnumerable GetAllDecryptionKeys(Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static System.Text.RegularExpressions.Regex RegexJwe; + public static System.Text.RegularExpressions.Regex RegexJws; + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj new file mode 100644 index 000000000000..3f7a9eeb43fa --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.cs b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.cs new file mode 100644 index 000000000000..0952b4a44244 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.cs @@ -0,0 +1,98 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.IdentityModel.Logging, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace Microsoft +{ + namespace IdentityModel + { + namespace Logging + { + public class IdentityModelEventSource : System.Diagnostics.Tracing.EventSource + { + public static bool HeaderWritten { get => throw null; set { } } + public static string HiddenPIIString { get => throw null; } + public static string HiddenSecurityArtifactString { get => throw null; } + public static bool LogCompleteSecurityArtifact { get => throw null; set { } } + public static Microsoft.IdentityModel.Logging.IdentityModelEventSource Logger { get => throw null; } + public System.Diagnostics.Tracing.EventLevel LogLevel { get => throw null; set { } } + public static bool ShowPII { get => throw null; set { } } + public void Write(System.Diagnostics.Tracing.EventLevel level, System.Exception innerException, string message) => throw null; + public void Write(System.Diagnostics.Tracing.EventLevel level, System.Exception innerException, string message, params object[] args) => throw null; + public void WriteAlways(string message) => throw null; + public void WriteAlways(string message, params object[] args) => throw null; + public void WriteCritical(string message) => throw null; + public void WriteCritical(string message, params object[] args) => throw null; + public void WriteError(string message) => throw null; + public void WriteError(string message, params object[] args) => throw null; + public void WriteInformation(string message) => throw null; + public void WriteInformation(string message, params object[] args) => throw null; + public void WriteVerbose(string message) => throw null; + public void WriteVerbose(string message, params object[] args) => throw null; + public void WriteWarning(string message) => throw null; + public void WriteWarning(string message, params object[] args) => throw null; + } + public static class IdentityModelTelemetryUtil + { + public static bool AddTelemetryData(string key, string value) => throw null; + public static string ClientSku { get => throw null; } + public static string ClientVer { get => throw null; } + public static bool RemoveTelemetryData(string key) => throw null; + } + public interface ISafeLogSecurityArtifact + { + string UnsafeToString(); + } + public class LoggerContext + { + public System.Guid ActivityId { get => throw null; set { } } + public bool CaptureLogs { get => throw null; set { } } + public LoggerContext() => throw null; + public LoggerContext(System.Guid activityId) => throw null; + public virtual string DebugId { get => throw null; set { } } + public System.Collections.Generic.ICollection Logs { get => throw null; } + public System.Collections.Generic.IDictionary PropertyBag { get => throw null; set { } } + } + public class LogHelper + { + public LogHelper() => throw null; + public static string FormatInvariant(string format, params object[] args) => throw null; + public static bool IsEnabled(Microsoft.IdentityModel.Abstractions.EventLogLevel level) => throw null; + public static T LogArgumentException(string argumentName, string message) where T : System.ArgumentException => throw null; + public static T LogArgumentException(string argumentName, string format, params object[] args) where T : System.ArgumentException => throw null; + public static T LogArgumentException(string argumentName, System.Exception innerException, string message) where T : System.ArgumentException => throw null; + public static T LogArgumentException(string argumentName, System.Exception innerException, string format, params object[] args) where T : System.ArgumentException => throw null; + public static T LogArgumentException(System.Diagnostics.Tracing.EventLevel eventLevel, string argumentName, string message) where T : System.ArgumentException => throw null; + public static T LogArgumentException(System.Diagnostics.Tracing.EventLevel eventLevel, string argumentName, string format, params object[] args) where T : System.ArgumentException => throw null; + public static T LogArgumentException(System.Diagnostics.Tracing.EventLevel eventLevel, string argumentName, System.Exception innerException, string message) where T : System.ArgumentException => throw null; + public static T LogArgumentException(System.Diagnostics.Tracing.EventLevel eventLevel, string argumentName, System.Exception innerException, string format, params object[] args) where T : System.ArgumentException => throw null; + public static System.ArgumentNullException LogArgumentNullException(string argument) => throw null; + public static T LogException(string message) where T : System.Exception => throw null; + public static T LogException(string format, params object[] args) where T : System.Exception => throw null; + public static T LogException(System.Exception innerException, string message) where T : System.Exception => throw null; + public static T LogException(System.Exception innerException, string format, params object[] args) where T : System.Exception => throw null; + public static T LogException(System.Diagnostics.Tracing.EventLevel eventLevel, string message) where T : System.Exception => throw null; + public static T LogException(System.Diagnostics.Tracing.EventLevel eventLevel, string format, params object[] args) where T : System.Exception => throw null; + public static T LogException(System.Diagnostics.Tracing.EventLevel eventLevel, System.Exception innerException, string message) where T : System.Exception => throw null; + public static T LogException(System.Diagnostics.Tracing.EventLevel eventLevel, System.Exception innerException, string format, params object[] args) where T : System.Exception => throw null; + public static System.Exception LogExceptionMessage(System.Exception exception) => throw null; + public static System.Exception LogExceptionMessage(System.Diagnostics.Tracing.EventLevel eventLevel, System.Exception exception) => throw null; + public static Microsoft.IdentityModel.Abstractions.IIdentityLogger Logger { get => throw null; set { } } + public static void LogInformation(string message, params object[] args) => throw null; + public static void LogVerbose(string message, params object[] args) => throw null; + public static void LogWarning(string message, params object[] args) => throw null; + public static object MarkAsNonPII(object arg) => throw null; + public static object MarkAsSecurityArtifact(object arg, System.Func callback) => throw null; + public static object MarkAsSecurityArtifact(object arg, System.Func callback, System.Func callbackUnsafe) => throw null; + public static object MarkAsUnsafeSecurityArtifact(object arg, System.Func callbackUnsafe) => throw null; + } + public class TextWriterEventListener : System.Diagnostics.Tracing.EventListener + { + public TextWriterEventListener() => throw null; + public TextWriterEventListener(string filePath) => throw null; + public TextWriterEventListener(System.IO.StreamWriter streamWriter) => throw null; + public static readonly string DefaultLogFileName; + public override void Dispose() => throw null; + protected override void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) => throw null; + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj new file mode 100644 index 000000000000..ccae125b498e --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.cs b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.cs new file mode 100644 index 000000000000..9d945dc9033c --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.cs @@ -0,0 +1,396 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.IdentityModel.Protocols.OpenIdConnect, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace Microsoft +{ + namespace IdentityModel + { + namespace Protocols + { + namespace OpenIdConnect + { + public static class ActiveDirectoryOpenIdConnectEndpoints + { + public const string Authorize = default; + public const string Logout = default; + public const string Token = default; + } + namespace Configuration + { + public class OpenIdConnectConfigurationValidator : Microsoft.IdentityModel.Protocols.IConfigurationValidator + { + public OpenIdConnectConfigurationValidator() => throw null; + public int MinimumNumberOfKeys { get => throw null; set { } } + public Microsoft.IdentityModel.Protocols.ConfigurationValidationResult Validate(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration openIdConnectConfiguration) => throw null; + } + } + public delegate void IdTokenValidator(System.IdentityModel.Tokens.Jwt.JwtSecurityToken idToken, Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext context); + public class OpenIdConnectConfiguration : Microsoft.IdentityModel.Tokens.BaseConfiguration + { + public System.Collections.Generic.ICollection AcrValuesSupported { get => throw null; } + public override string ActiveTokenEndpoint { get => throw null; set { } } + public System.Collections.Generic.IDictionary AdditionalData { get => throw null; } + public string AuthorizationEndpoint { get => throw null; set { } } + public string CheckSessionIframe { get => throw null; set { } } + public System.Collections.Generic.ICollection ClaimsLocalesSupported { get => throw null; } + public bool ClaimsParameterSupported { get => throw null; set { } } + public System.Collections.Generic.ICollection ClaimsSupported { get => throw null; } + public System.Collections.Generic.ICollection ClaimTypesSupported { get => throw null; } + public static Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration Create(string json) => throw null; + public OpenIdConnectConfiguration() => throw null; + public OpenIdConnectConfiguration(string json) => throw null; + public System.Collections.Generic.ICollection DisplayValuesSupported { get => throw null; } + public string EndSessionEndpoint { get => throw null; set { } } + public string FrontchannelLogoutSessionSupported { get => throw null; set { } } + public string FrontchannelLogoutSupported { get => throw null; set { } } + public System.Collections.Generic.ICollection GrantTypesSupported { get => throw null; } + public bool HttpLogoutSupported { get => throw null; set { } } + public System.Collections.Generic.ICollection IdTokenEncryptionAlgValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection IdTokenEncryptionEncValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection IdTokenSigningAlgValuesSupported { get => throw null; } + public string IntrospectionEndpoint { get => throw null; set { } } + public System.Collections.Generic.ICollection IntrospectionEndpointAuthMethodsSupported { get => throw null; } + public System.Collections.Generic.ICollection IntrospectionEndpointAuthSigningAlgValuesSupported { get => throw null; } + public override string Issuer { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.JsonWebKeySet JsonWebKeySet { get => throw null; set { } } + public string JwksUri { get => throw null; set { } } + public bool LogoutSessionSupported { get => throw null; set { } } + public string OpPolicyUri { get => throw null; set { } } + public string OpTosUri { get => throw null; set { } } + public string RegistrationEndpoint { get => throw null; set { } } + public System.Collections.Generic.ICollection RequestObjectEncryptionAlgValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection RequestObjectEncryptionEncValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection RequestObjectSigningAlgValuesSupported { get => throw null; } + public bool RequestParameterSupported { get => throw null; set { } } + public bool RequestUriParameterSupported { get => throw null; set { } } + public bool RequireRequestUriRegistration { get => throw null; set { } } + public System.Collections.Generic.ICollection ResponseModesSupported { get => throw null; } + public System.Collections.Generic.ICollection ResponseTypesSupported { get => throw null; } + public System.Collections.Generic.ICollection ScopesSupported { get => throw null; } + public string ServiceDocumentation { get => throw null; set { } } + public bool ShouldSerializeAcrValuesSupported() => throw null; + public bool ShouldSerializeClaimsLocalesSupported() => throw null; + public bool ShouldSerializeClaimsSupported() => throw null; + public bool ShouldSerializeClaimTypesSupported() => throw null; + public bool ShouldSerializeDisplayValuesSupported() => throw null; + public bool ShouldSerializeGrantTypesSupported() => throw null; + public bool ShouldSerializeIdTokenEncryptionAlgValuesSupported() => throw null; + public bool ShouldSerializeIdTokenEncryptionEncValuesSupported() => throw null; + public bool ShouldSerializeIdTokenSigningAlgValuesSupported() => throw null; + public bool ShouldSerializeIntrospectionEndpointAuthMethodsSupported() => throw null; + public bool ShouldSerializeIntrospectionEndpointAuthSigningAlgValuesSupported() => throw null; + public bool ShouldSerializeRequestObjectEncryptionAlgValuesSupported() => throw null; + public bool ShouldSerializeRequestObjectEncryptionEncValuesSupported() => throw null; + public bool ShouldSerializeRequestObjectSigningAlgValuesSupported() => throw null; + public bool ShouldSerializeResponseModesSupported() => throw null; + public bool ShouldSerializeResponseTypesSupported() => throw null; + public bool ShouldSerializeScopesSupported() => throw null; + public bool ShouldSerializeSigningKeys() => throw null; + public bool ShouldSerializeSubjectTypesSupported() => throw null; + public bool ShouldSerializeTokenEndpointAuthMethodsSupported() => throw null; + public bool ShouldSerializeTokenEndpointAuthSigningAlgValuesSupported() => throw null; + public bool ShouldSerializeUILocalesSupported() => throw null; + public bool ShouldSerializeUserInfoEndpointEncryptionAlgValuesSupported() => throw null; + public bool ShouldSerializeUserInfoEndpointEncryptionEncValuesSupported() => throw null; + public bool ShouldSerializeUserInfoEndpointSigningAlgValuesSupported() => throw null; + public override System.Collections.Generic.ICollection SigningKeys { get => throw null; } + public System.Collections.Generic.ICollection SubjectTypesSupported { get => throw null; } + public override string TokenEndpoint { get => throw null; set { } } + public System.Collections.Generic.ICollection TokenEndpointAuthMethodsSupported { get => throw null; } + public System.Collections.Generic.ICollection TokenEndpointAuthSigningAlgValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection UILocalesSupported { get => throw null; } + public string UserInfoEndpoint { get => throw null; set { } } + public System.Collections.Generic.ICollection UserInfoEndpointEncryptionAlgValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection UserInfoEndpointEncryptionEncValuesSupported { get => throw null; } + public System.Collections.Generic.ICollection UserInfoEndpointSigningAlgValuesSupported { get => throw null; } + public static string Write(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfiguration configuration) => throw null; + } + public class OpenIdConnectConfigurationRetriever : Microsoft.IdentityModel.Protocols.IConfigurationRetriever + { + public OpenIdConnectConfigurationRetriever() => throw null; + public static System.Threading.Tasks.Task GetAsync(string address, System.Threading.CancellationToken cancel) => throw null; + public static System.Threading.Tasks.Task GetAsync(string address, System.Net.Http.HttpClient httpClient, System.Threading.CancellationToken cancel) => throw null; + public static System.Threading.Tasks.Task GetAsync(string address, Microsoft.IdentityModel.Protocols.IDocumentRetriever retriever, System.Threading.CancellationToken cancel) => throw null; + System.Threading.Tasks.Task Microsoft.IdentityModel.Protocols.IConfigurationRetriever.GetConfigurationAsync(string address, Microsoft.IdentityModel.Protocols.IDocumentRetriever retriever, System.Threading.CancellationToken cancel) => throw null; + } + public static class OpenIdConnectGrantTypes + { + public const string AuthorizationCode = default; + public const string ClientCredentials = default; + public const string Password = default; + public const string RefreshToken = default; + } + public class OpenIdConnectMessage : Microsoft.IdentityModel.Protocols.AuthenticationProtocolMessage + { + public string AccessToken { get => throw null; set { } } + public string AcrValues { get => throw null; set { } } + public string AuthorizationEndpoint { get => throw null; set { } } + public string ClaimsLocales { get => throw null; set { } } + public string ClientAssertion { get => throw null; set { } } + public string ClientAssertionType { get => throw null; set { } } + public string ClientId { get => throw null; set { } } + public string ClientSecret { get => throw null; set { } } + public virtual Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage Clone() => throw null; + public string Code { get => throw null; set { } } + public virtual string CreateAuthenticationRequestUrl() => throw null; + public virtual string CreateLogoutRequestUrl() => throw null; + public OpenIdConnectMessage() => throw null; + public OpenIdConnectMessage(string json) => throw null; + protected OpenIdConnectMessage(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage other) => throw null; + public OpenIdConnectMessage(System.Collections.Specialized.NameValueCollection nameValueCollection) => throw null; + public OpenIdConnectMessage(System.Collections.Generic.IEnumerable> parameters) => throw null; + public string Display { get => throw null; set { } } + public string DomainHint { get => throw null; set { } } + public bool EnableTelemetryParameters { get => throw null; set { } } + public static bool EnableTelemetryParametersByDefault { get => throw null; set { } } + public string Error { get => throw null; set { } } + public string ErrorDescription { get => throw null; set { } } + public string ErrorUri { get => throw null; set { } } + public string ExpiresIn { get => throw null; set { } } + public string GrantType { get => throw null; set { } } + public string IdentityProvider { get => throw null; set { } } + public string IdToken { get => throw null; set { } } + public string IdTokenHint { get => throw null; set { } } + public string Iss { get => throw null; set { } } + public string LoginHint { get => throw null; set { } } + public string MaxAge { get => throw null; set { } } + public string Nonce { get => throw null; set { } } + public string Password { get => throw null; set { } } + public string PostLogoutRedirectUri { get => throw null; set { } } + public string Prompt { get => throw null; set { } } + public string RedirectUri { get => throw null; set { } } + public string RefreshToken { get => throw null; set { } } + public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectRequestType RequestType { get => throw null; set { } } + public string RequestUri { get => throw null; set { } } + public string Resource { get => throw null; set { } } + public string ResponseMode { get => throw null; set { } } + public string ResponseType { get => throw null; set { } } + public string Scope { get => throw null; set { } } + public string SessionState { get => throw null; set { } } + public string Sid { get => throw null; set { } } + public string SkuTelemetryValue { get => throw null; set { } } + public string State { get => throw null; set { } } + public string TargetLinkUri { get => throw null; set { } } + public string TokenEndpoint { get => throw null; set { } } + public string TokenType { get => throw null; set { } } + public string UiLocales { get => throw null; set { } } + public string UserId { get => throw null; set { } } + public string Username { get => throw null; set { } } + } + public static class OpenIdConnectParameterNames + { + public const string AccessToken = default; + public const string AcrValues = default; + public const string ClaimsLocales = default; + public const string ClientAssertion = default; + public const string ClientAssertionType = default; + public const string ClientId = default; + public const string ClientSecret = default; + public const string Code = default; + public const string Display = default; + public const string DomainHint = default; + public const string Error = default; + public const string ErrorDescription = default; + public const string ErrorUri = default; + public const string ExpiresIn = default; + public const string GrantType = default; + public const string IdentityProvider = default; + public const string IdToken = default; + public const string IdTokenHint = default; + public const string Iss = default; + public const string LoginHint = default; + public const string MaxAge = default; + public const string Nonce = default; + public const string Password = default; + public const string PostLogoutRedirectUri = default; + public const string Prompt = default; + public const string RedirectUri = default; + public const string RefreshToken = default; + public const string RequestUri = default; + public const string Resource = default; + public const string ResponseMode = default; + public const string ResponseType = default; + public const string Scope = default; + public const string SessionState = default; + public const string Sid = default; + public const string SkuTelemetry = default; + public const string State = default; + public const string TargetLinkUri = default; + public const string TokenType = default; + public const string UiLocales = default; + public const string UserId = default; + public const string Username = default; + public const string VersionTelemetry = default; + } + public static class OpenIdConnectPrompt + { + public const string Consent = default; + public const string Login = default; + public const string None = default; + public const string SelectAccount = default; + } + public class OpenIdConnectProtocolException : System.Exception + { + public OpenIdConnectProtocolException() => throw null; + public OpenIdConnectProtocolException(string message) => throw null; + public OpenIdConnectProtocolException(string message, System.Exception innerException) => throw null; + protected OpenIdConnectProtocolException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class OpenIdConnectProtocolInvalidAtHashException : Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException + { + public OpenIdConnectProtocolInvalidAtHashException() => throw null; + public OpenIdConnectProtocolInvalidAtHashException(string message) => throw null; + public OpenIdConnectProtocolInvalidAtHashException(string message, System.Exception innerException) => throw null; + protected OpenIdConnectProtocolInvalidAtHashException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class OpenIdConnectProtocolInvalidCHashException : Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException + { + public OpenIdConnectProtocolInvalidCHashException() => throw null; + public OpenIdConnectProtocolInvalidCHashException(string message) => throw null; + public OpenIdConnectProtocolInvalidCHashException(string message, System.Exception innerException) => throw null; + protected OpenIdConnectProtocolInvalidCHashException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class OpenIdConnectProtocolInvalidNonceException : Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException + { + public OpenIdConnectProtocolInvalidNonceException() => throw null; + public OpenIdConnectProtocolInvalidNonceException(string message) => throw null; + public OpenIdConnectProtocolInvalidNonceException(string message, System.Exception innerException) => throw null; + protected OpenIdConnectProtocolInvalidNonceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class OpenIdConnectProtocolInvalidStateException : Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException + { + public OpenIdConnectProtocolInvalidStateException() => throw null; + public OpenIdConnectProtocolInvalidStateException(string message) => throw null; + public OpenIdConnectProtocolInvalidStateException(string message, System.Exception innerException) => throw null; + protected OpenIdConnectProtocolInvalidStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class OpenIdConnectProtocolValidationContext + { + public string ClientId { get => throw null; set { } } + public OpenIdConnectProtocolValidationContext() => throw null; + public string Nonce { get => throw null; set { } } + public Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectMessage ProtocolMessage { get => throw null; set { } } + public string State { get => throw null; set { } } + public string UserInfoEndpointResponse { get => throw null; set { } } + public System.IdentityModel.Tokens.Jwt.JwtSecurityToken ValidatedIdToken { get => throw null; set { } } + } + public class OpenIdConnectProtocolValidator + { + public Microsoft.IdentityModel.Tokens.CryptoProviderFactory CryptoProviderFactory { get => throw null; set { } } + public OpenIdConnectProtocolValidator() => throw null; + public static readonly System.TimeSpan DefaultNonceLifetime; + public virtual string GenerateNonce() => throw null; + public virtual System.Security.Cryptography.HashAlgorithm GetHashAlgorithm(string algorithm) => throw null; + public System.Collections.Generic.IDictionary HashAlgorithmMap { get => throw null; } + public Microsoft.IdentityModel.Protocols.OpenIdConnect.IdTokenValidator IdTokenValidator { get => throw null; set { } } + public System.TimeSpan NonceLifetime { get => throw null; set { } } + public bool RequireAcr { get => throw null; set { } } + public bool RequireAmr { get => throw null; set { } } + public bool RequireAuthTime { get => throw null; set { } } + public bool RequireAzp { get => throw null; set { } } + public bool RequireNonce { get => throw null; set { } } + public bool RequireState { get => throw null; set { } } + public bool RequireStateValidation { get => throw null; set { } } + public bool RequireSub { get => throw null; set { } } + public static bool RequireSubByDefault { get => throw null; set { } } + public bool RequireTimeStampInNonce { get => throw null; set { } } + protected virtual void ValidateAtHash(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + public virtual void ValidateAuthenticationResponse(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + protected virtual void ValidateCHash(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + protected virtual void ValidateIdToken(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + protected virtual void ValidateNonce(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + protected virtual void ValidateState(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + public virtual void ValidateTokenResponse(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + public virtual void ValidateUserInfoResponse(Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidationContext validationContext) => throw null; + } + public enum OpenIdConnectRequestType + { + Authentication = 0, + Logout = 1, + Token = 2, + } + public static class OpenIdConnectResponseMode + { + public const string FormPost = default; + public const string Fragment = default; + public const string Query = default; + } + public static class OpenIdConnectResponseType + { + public const string Code = default; + public const string CodeIdToken = default; + public const string CodeIdTokenToken = default; + public const string CodeToken = default; + public const string IdToken = default; + public const string IdTokenToken = default; + public const string None = default; + public const string Token = default; + } + public static class OpenIdConnectScope + { + public const string Address = default; + public const string Email = default; + public const string OfflineAccess = default; + public const string OpenId = default; + public const string OpenIdProfile = default; + public const string Phone = default; + public const string UserImpersonation = default; + } + public static class OpenIdConnectSessionProperties + { + public const string CheckSessionIFrame = default; + public const string RedirectUri = default; + public const string SessionState = default; + } + public static class OpenIdProviderMetadataNames + { + public const string AcrValuesSupported = default; + public const string AuthorizationEndpoint = default; + public const string CheckSessionIframe = default; + public const string ClaimsLocalesSupported = default; + public const string ClaimsParameterSupported = default; + public const string ClaimsSupported = default; + public const string ClaimTypesSupported = default; + public const string Discovery = default; + public const string DisplayValuesSupported = default; + public const string EndSessionEndpoint = default; + public const string FrontchannelLogoutSessionSupported = default; + public const string FrontchannelLogoutSupported = default; + public const string GrantTypesSupported = default; + public const string HttpLogoutSupported = default; + public const string IdTokenEncryptionAlgValuesSupported = default; + public const string IdTokenEncryptionEncValuesSupported = default; + public const string IdTokenSigningAlgValuesSupported = default; + public const string IntrospectionEndpoint = default; + public const string IntrospectionEndpointAuthMethodsSupported = default; + public const string IntrospectionEndpointAuthSigningAlgValuesSupported = default; + public const string Issuer = default; + public const string JwksUri = default; + public const string LogoutSessionSupported = default; + public const string MicrosoftMultiRefreshToken = default; + public const string OpPolicyUri = default; + public const string OpTosUri = default; + public const string RegistrationEndpoint = default; + public const string RequestObjectEncryptionAlgValuesSupported = default; + public const string RequestObjectEncryptionEncValuesSupported = default; + public const string RequestObjectSigningAlgValuesSupported = default; + public const string RequestParameterSupported = default; + public const string RequestUriParameterSupported = default; + public const string RequireRequestUriRegistration = default; + public const string ResponseModesSupported = default; + public const string ResponseTypesSupported = default; + public const string ScopesSupported = default; + public const string ServiceDocumentation = default; + public const string SubjectTypesSupported = default; + public const string TokenEndpoint = default; + public const string TokenEndpointAuthMethodsSupported = default; + public const string TokenEndpointAuthSigningAlgValuesSupported = default; + public const string UILocalesSupported = default; + public const string UserInfoEncryptionAlgValuesSupported = default; + public const string UserInfoEncryptionEncValuesSupported = default; + public const string UserInfoEndpoint = default; + public const string UserInfoSigningAlgValuesSupported = default; + } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj new file mode 100644 index 000000000000..4fcb6a92ab72 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.cs b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.cs new file mode 100644 index 000000000000..d7d2fc40cd0f --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.cs @@ -0,0 +1,120 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.IdentityModel.Protocols, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace Microsoft +{ + namespace IdentityModel + { + namespace Protocols + { + public abstract class AuthenticationProtocolMessage + { + public virtual string BuildFormPost() => throw null; + public virtual string BuildRedirectUrl() => throw null; + protected AuthenticationProtocolMessage() => throw null; + public virtual string GetParameter(string parameter) => throw null; + public string IssuerAddress { get => throw null; set { } } + public System.Collections.Generic.IDictionary Parameters { get => throw null; } + public string PostTitle { get => throw null; set { } } + public virtual void RemoveParameter(string parameter) => throw null; + public string Script { get => throw null; set { } } + public string ScriptButtonText { get => throw null; set { } } + public string ScriptDisabledText { get => throw null; set { } } + public void SetParameter(string parameter, string value) => throw null; + public virtual void SetParameters(System.Collections.Specialized.NameValueCollection nameValueCollection) => throw null; + } + namespace Configuration + { + public class InvalidConfigurationException : System.Exception + { + public InvalidConfigurationException() => throw null; + public InvalidConfigurationException(string message) => throw null; + public InvalidConfigurationException(string message, System.Exception innerException) => throw null; + protected InvalidConfigurationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class LastKnownGoodConfigurationCacheOptions : Microsoft.IdentityModel.Tokens.Configuration.LKGConfigurationCacheOptions + { + public LastKnownGoodConfigurationCacheOptions() => throw null; + public static readonly int DefaultLastKnownGoodConfigurationSizeLimit; + } + } + public class ConfigurationManager : Microsoft.IdentityModel.Tokens.BaseConfigurationManager, Microsoft.IdentityModel.Protocols.IConfigurationManager where T : class + { + public ConfigurationManager(string metadataAddress, Microsoft.IdentityModel.Protocols.IConfigurationRetriever configRetriever) => throw null; + public ConfigurationManager(string metadataAddress, Microsoft.IdentityModel.Protocols.IConfigurationRetriever configRetriever, System.Net.Http.HttpClient httpClient) => throw null; + public ConfigurationManager(string metadataAddress, Microsoft.IdentityModel.Protocols.IConfigurationRetriever configRetriever, Microsoft.IdentityModel.Protocols.IDocumentRetriever docRetriever) => throw null; + public ConfigurationManager(string metadataAddress, Microsoft.IdentityModel.Protocols.IConfigurationRetriever configRetriever, Microsoft.IdentityModel.Protocols.IDocumentRetriever docRetriever, Microsoft.IdentityModel.Protocols.Configuration.LastKnownGoodConfigurationCacheOptions lkgCacheOptions) => throw null; + public ConfigurationManager(string metadataAddress, Microsoft.IdentityModel.Protocols.IConfigurationRetriever configRetriever, Microsoft.IdentityModel.Protocols.IDocumentRetriever docRetriever, Microsoft.IdentityModel.Protocols.IConfigurationValidator configValidator) => throw null; + public ConfigurationManager(string metadataAddress, Microsoft.IdentityModel.Protocols.IConfigurationRetriever configRetriever, Microsoft.IdentityModel.Protocols.IDocumentRetriever docRetriever, Microsoft.IdentityModel.Protocols.IConfigurationValidator configValidator, Microsoft.IdentityModel.Protocols.Configuration.LastKnownGoodConfigurationCacheOptions lkgCacheOptions) => throw null; + public static readonly System.TimeSpan DefaultAutomaticRefreshInterval; + public static readonly System.TimeSpan DefaultRefreshInterval; + public override System.Threading.Tasks.Task GetBaseConfigurationAsync(System.Threading.CancellationToken cancel) => throw null; + public System.Threading.Tasks.Task GetConfigurationAsync() => throw null; + public System.Threading.Tasks.Task GetConfigurationAsync(System.Threading.CancellationToken cancel) => throw null; + public static readonly System.TimeSpan MinimumAutomaticRefreshInterval; + public static readonly System.TimeSpan MinimumRefreshInterval; + public override void RequestRefresh() => throw null; + } + public class ConfigurationValidationResult + { + public ConfigurationValidationResult() => throw null; + public string ErrorMessage { get => throw null; set { } } + public bool Succeeded { get => throw null; set { } } + } + public class FileDocumentRetriever : Microsoft.IdentityModel.Protocols.IDocumentRetriever + { + public FileDocumentRetriever() => throw null; + public System.Threading.Tasks.Task GetDocumentAsync(string address, System.Threading.CancellationToken cancel) => throw null; + } + public class HttpDocumentRetriever : Microsoft.IdentityModel.Protocols.IDocumentRetriever + { + public HttpDocumentRetriever() => throw null; + public HttpDocumentRetriever(System.Net.Http.HttpClient httpClient) => throw null; + public static bool DefaultSendAdditionalHeaderData { get => throw null; set { } } + public System.Threading.Tasks.Task GetDocumentAsync(string address, System.Threading.CancellationToken cancel) => throw null; + public bool RequireHttps { get => throw null; set { } } + public const string ResponseContent = default; + public bool SendAdditionalHeaderData { get => throw null; set { } } + public const string StatusCode = default; + } + public class HttpRequestData + { + public void AppendHeaders(System.Net.Http.Headers.HttpHeaders headers) => throw null; + public byte[] Body { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509Certificate2Collection ClientCertificates { get => throw null; } + public HttpRequestData() => throw null; + public System.Collections.Generic.IDictionary> Headers { get => throw null; set { } } + public string Method { get => throw null; set { } } + public System.Collections.Generic.IDictionary PropertyBag { get => throw null; set { } } + public System.Uri Uri { get => throw null; set { } } + } + public interface IConfigurationManager where T : class + { + System.Threading.Tasks.Task GetConfigurationAsync(System.Threading.CancellationToken cancel); + void RequestRefresh(); + } + public interface IConfigurationRetriever + { + System.Threading.Tasks.Task GetConfigurationAsync(string address, Microsoft.IdentityModel.Protocols.IDocumentRetriever retriever, System.Threading.CancellationToken cancel); + } + public interface IConfigurationValidator + { + Microsoft.IdentityModel.Protocols.ConfigurationValidationResult Validate(T configuration); + } + public interface IDocumentRetriever + { + System.Threading.Tasks.Task GetDocumentAsync(string address, System.Threading.CancellationToken cancel); + } + public class StaticConfigurationManager : Microsoft.IdentityModel.Tokens.BaseConfigurationManager, Microsoft.IdentityModel.Protocols.IConfigurationManager where T : class + { + public StaticConfigurationManager(T configuration) => throw null; + public override System.Threading.Tasks.Task GetBaseConfigurationAsync(System.Threading.CancellationToken cancel) => throw null; + public System.Threading.Tasks.Task GetConfigurationAsync(System.Threading.CancellationToken cancel) => throw null; + public override void RequestRefresh() => throw null; + } + public class X509CertificateValidationMode + { + public X509CertificateValidationMode() => throw null; + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj new file mode 100644 index 000000000000..3f7a9eeb43fa --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.cs b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.cs new file mode 100644 index 000000000000..8cc98b2580c1 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.cs @@ -0,0 +1,959 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.IdentityModel.Tokens, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace Microsoft +{ + namespace IdentityModel + { + namespace Tokens + { + public delegate bool AlgorithmValidator(string algorithm, Microsoft.IdentityModel.Tokens.SecurityKey securityKey, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public abstract class AsymmetricSecurityKey : Microsoft.IdentityModel.Tokens.SecurityKey + { + public AsymmetricSecurityKey() => throw null; + public abstract bool HasPrivateKey { get; } + public abstract Microsoft.IdentityModel.Tokens.PrivateKeyStatus PrivateKeyStatus { get; } + } + public class AsymmetricSignatureProvider : Microsoft.IdentityModel.Tokens.SignatureProvider + { + public AsymmetricSignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) : base(default(Microsoft.IdentityModel.Tokens.SecurityKey), default(string)) => throw null; + public AsymmetricSignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, bool willCreateSignatures) : base(default(Microsoft.IdentityModel.Tokens.SecurityKey), default(string)) => throw null; + public static readonly System.Collections.Generic.Dictionary DefaultMinimumAsymmetricKeySizeInBitsForSigningMap; + public static readonly System.Collections.Generic.Dictionary DefaultMinimumAsymmetricKeySizeInBitsForVerifyingMap; + protected override void Dispose(bool disposing) => throw null; + protected virtual System.Security.Cryptography.HashAlgorithmName GetHashAlgorithmName(string algorithm) => throw null; + public System.Collections.Generic.IReadOnlyDictionary MinimumAsymmetricKeySizeInBitsForSigningMap { get => throw null; } + public System.Collections.Generic.IReadOnlyDictionary MinimumAsymmetricKeySizeInBitsForVerifyingMap { get => throw null; } + public override bool Sign(System.ReadOnlySpan input, System.Span signature, out int bytesWritten) => throw null; + public override byte[] Sign(byte[] input) => throw null; + public override byte[] Sign(byte[] input, int offset, int count) => throw null; + public virtual void ValidateAsymmetricSecurityKeySize(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, bool willCreateSignatures) => throw null; + public override bool Verify(byte[] input, byte[] signature) => throw null; + public override bool Verify(byte[] input, int inputOffset, int inputLength, byte[] signature, int signatureOffset, int signatureLength) => throw null; + } + public delegate bool AudienceValidator(System.Collections.Generic.IEnumerable audiences, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public class AuthenticatedEncryptionProvider : System.IDisposable + { + public string Algorithm { get => throw null; } + public string Context { get => throw null; set { } } + public AuthenticatedEncryptionProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public virtual byte[] Decrypt(byte[] ciphertext, byte[] authenticatedData, byte[] iv, byte[] authenticationTag) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + public virtual Microsoft.IdentityModel.Tokens.AuthenticatedEncryptionResult Encrypt(byte[] plaintext, byte[] authenticatedData) => throw null; + public virtual Microsoft.IdentityModel.Tokens.AuthenticatedEncryptionResult Encrypt(byte[] plaintext, byte[] authenticatedData, byte[] iv) => throw null; + protected virtual byte[] GetKeyBytes(Microsoft.IdentityModel.Tokens.SecurityKey key) => throw null; + protected virtual bool IsSupportedAlgorithm(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + protected virtual void ValidateKeySize(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + } + public class AuthenticatedEncryptionResult + { + public byte[] AuthenticationTag { get => throw null; } + public byte[] Ciphertext { get => throw null; } + public AuthenticatedEncryptionResult(Microsoft.IdentityModel.Tokens.SecurityKey key, byte[] ciphertext, byte[] iv, byte[] authenticationTag) => throw null; + public byte[] IV { get => throw null; } + public Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + } + public static class Base64UrlEncoder + { + public static string Decode(string arg) => throw null; + public static byte[] DecodeBytes(string str) => throw null; + public static string Encode(string arg) => throw null; + public static string Encode(byte[] inArray) => throw null; + public static string Encode(byte[] inArray, int offset, int length) => throw null; + public static int Encode(System.ReadOnlySpan inArray, System.Span output) => throw null; + } + public abstract class BaseConfiguration + { + public virtual string ActiveTokenEndpoint { get => throw null; set { } } + protected BaseConfiguration() => throw null; + public virtual string Issuer { get => throw null; set { } } + public virtual System.Collections.Generic.ICollection SigningKeys { get => throw null; } + public virtual System.Collections.Generic.ICollection TokenDecryptionKeys { get => throw null; } + public virtual string TokenEndpoint { get => throw null; set { } } + } + public abstract class BaseConfigurationManager + { + public System.TimeSpan AutomaticRefreshInterval { get => throw null; set { } } + public BaseConfigurationManager() => throw null; + public BaseConfigurationManager(Microsoft.IdentityModel.Tokens.Configuration.LKGConfigurationCacheOptions options) => throw null; + public static readonly System.TimeSpan DefaultAutomaticRefreshInterval; + public static readonly System.TimeSpan DefaultLastKnownGoodConfigurationLifetime; + public static readonly System.TimeSpan DefaultRefreshInterval; + public virtual System.Threading.Tasks.Task GetBaseConfigurationAsync(System.Threading.CancellationToken cancel) => throw null; + public bool IsLastKnownGoodValid { get => throw null; } + public Microsoft.IdentityModel.Tokens.BaseConfiguration LastKnownGoodConfiguration { get => throw null; set { } } + public System.TimeSpan LastKnownGoodLifetime { get => throw null; set { } } + public string MetadataAddress { get => throw null; set { } } + public static readonly System.TimeSpan MinimumAutomaticRefreshInterval; + public static readonly System.TimeSpan MinimumRefreshInterval; + public System.TimeSpan RefreshInterval { get => throw null; set { } } + public abstract void RequestRefresh(); + public bool UseLastKnownGoodConfiguration { get => throw null; set { } } + } + public class CallContext : Microsoft.IdentityModel.Logging.LoggerContext + { + public CallContext() => throw null; + public CallContext(System.Guid activityId) => throw null; + } + public static class CollectionUtilities + { + public static bool IsNullOrEmpty(this System.Collections.Generic.IEnumerable enumerable) => throw null; + } + public class CompressionAlgorithms + { + public CompressionAlgorithms() => throw null; + public const string Deflate = default; + } + public class CompressionProviderFactory + { + public Microsoft.IdentityModel.Tokens.ICompressionProvider CreateCompressionProvider(string algorithm) => throw null; + public Microsoft.IdentityModel.Tokens.ICompressionProvider CreateCompressionProvider(string algorithm, int maximumDeflateSize) => throw null; + public CompressionProviderFactory() => throw null; + public CompressionProviderFactory(Microsoft.IdentityModel.Tokens.CompressionProviderFactory other) => throw null; + public Microsoft.IdentityModel.Tokens.ICompressionProvider CustomCompressionProvider { get => throw null; set { } } + public static Microsoft.IdentityModel.Tokens.CompressionProviderFactory Default { get => throw null; set { } } + public virtual bool IsSupportedAlgorithm(string algorithm) => throw null; + } + namespace Configuration + { + public class LKGConfigurationCacheOptions + { + public System.Collections.Generic.IEqualityComparer BaseConfigurationComparer { get => throw null; set { } } + public LKGConfigurationCacheOptions() => throw null; + public static readonly int DefaultLKGConfigurationSizeLimit; + public int LastKnownGoodConfigurationSizeLimit { get => throw null; set { } } + public bool RemoveExpiredValues { get => throw null; set { } } + public System.Threading.Tasks.TaskCreationOptions TaskCreationOptions { get => throw null; set { } } + } + } + public abstract class CryptoProviderCache + { + protected CryptoProviderCache() => throw null; + protected abstract string GetCacheKey(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider); + protected abstract string GetCacheKey(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, string algorithm, string typeofProvider); + public abstract bool TryAdd(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider); + public abstract bool TryGetSignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, string algorithm, string typeofProvider, bool willCreateSignatures, out Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider); + public abstract bool TryRemove(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider); + } + public class CryptoProviderCacheOptions + { + public CryptoProviderCacheOptions() => throw null; + public static readonly int DefaultSizeLimit; + public int SizeLimit { get => throw null; set { } } + } + public class CryptoProviderFactory + { + public bool CacheSignatureProviders { get => throw null; set { } } + public virtual Microsoft.IdentityModel.Tokens.AuthenticatedEncryptionProvider CreateAuthenticatedEncryptionProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public virtual Microsoft.IdentityModel.Tokens.SignatureProvider CreateForSigning(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public virtual Microsoft.IdentityModel.Tokens.SignatureProvider CreateForSigning(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, bool cacheProvider) => throw null; + public virtual Microsoft.IdentityModel.Tokens.SignatureProvider CreateForVerifying(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public virtual Microsoft.IdentityModel.Tokens.SignatureProvider CreateForVerifying(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, bool cacheProvider) => throw null; + public virtual System.Security.Cryptography.HashAlgorithm CreateHashAlgorithm(System.Security.Cryptography.HashAlgorithmName algorithm) => throw null; + public virtual System.Security.Cryptography.HashAlgorithm CreateHashAlgorithm(string algorithm) => throw null; + public virtual System.Security.Cryptography.KeyedHashAlgorithm CreateKeyedHashAlgorithm(byte[] keyBytes, string algorithm) => throw null; + public virtual Microsoft.IdentityModel.Tokens.KeyWrapProvider CreateKeyWrapProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public virtual Microsoft.IdentityModel.Tokens.KeyWrapProvider CreateKeyWrapProviderForUnwrap(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public Microsoft.IdentityModel.Tokens.CryptoProviderCache CryptoProviderCache { get => throw null; } + public CryptoProviderFactory() => throw null; + public CryptoProviderFactory(Microsoft.IdentityModel.Tokens.CryptoProviderCache cache) => throw null; + public CryptoProviderFactory(Microsoft.IdentityModel.Tokens.CryptoProviderFactory other) => throw null; + public Microsoft.IdentityModel.Tokens.ICryptoProvider CustomCryptoProvider { get => throw null; set { } } + public static Microsoft.IdentityModel.Tokens.CryptoProviderFactory Default { get => throw null; set { } } + public static bool DefaultCacheSignatureProviders { get => throw null; set { } } + public static int DefaultSignatureProviderObjectPoolCacheSize { get => throw null; set { } } + public virtual bool IsSupportedAlgorithm(string algorithm) => throw null; + public virtual bool IsSupportedAlgorithm(string algorithm, Microsoft.IdentityModel.Tokens.SecurityKey key) => throw null; + public virtual void ReleaseHashAlgorithm(System.Security.Cryptography.HashAlgorithm hashAlgorithm) => throw null; + public virtual void ReleaseKeyWrapProvider(Microsoft.IdentityModel.Tokens.KeyWrapProvider provider) => throw null; + public virtual void ReleaseRsaKeyWrapProvider(Microsoft.IdentityModel.Tokens.RsaKeyWrapProvider provider) => throw null; + public virtual void ReleaseSignatureProvider(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider) => throw null; + public int SignatureProviderObjectPoolCacheSize { get => throw null; set { } } + } + public static class DateTimeUtil + { + public static System.DateTime Add(System.DateTime time, System.TimeSpan timespan) => throw null; + public static System.DateTime GetMaxValue(System.DateTimeKind kind) => throw null; + public static System.DateTime GetMinValue(System.DateTimeKind kind) => throw null; + public static System.DateTime? ToUniversalTime(System.DateTime? value) => throw null; + public static System.DateTime ToUniversalTime(System.DateTime value) => throw null; + } + public class DeflateCompressionProvider : Microsoft.IdentityModel.Tokens.ICompressionProvider + { + public string Algorithm { get => throw null; } + public byte[] Compress(byte[] value) => throw null; + public System.IO.Compression.CompressionLevel CompressionLevel { get => throw null; } + public DeflateCompressionProvider() => throw null; + public DeflateCompressionProvider(System.IO.Compression.CompressionLevel compressionLevel) => throw null; + public byte[] Decompress(byte[] value) => throw null; + public bool IsSupportedAlgorithm(string algorithm) => throw null; + public int MaximumDeflateSize { get => throw null; set { } } + } + public class EcdhKeyExchangeProvider + { + public EcdhKeyExchangeProvider(Microsoft.IdentityModel.Tokens.SecurityKey privateKey, Microsoft.IdentityModel.Tokens.SecurityKey publicKey, string alg, string enc) => throw null; + public Microsoft.IdentityModel.Tokens.SecurityKey GenerateKdf(string apu = default(string), string apv = default(string)) => throw null; + public int KeyDataLen { get => throw null; set { } } + } + public class ECDsaSecurityKey : Microsoft.IdentityModel.Tokens.AsymmetricSecurityKey + { + public override bool CanComputeJwkThumbprint() => throw null; + public override byte[] ComputeJwkThumbprint() => throw null; + public ECDsaSecurityKey(System.Security.Cryptography.ECDsa ecdsa) => throw null; + public System.Security.Cryptography.ECDsa ECDsa { get => throw null; } + public override bool HasPrivateKey { get => throw null; } + public override int KeySize { get => throw null; } + public override Microsoft.IdentityModel.Tokens.PrivateKeyStatus PrivateKeyStatus { get => throw null; } + } + public class EncryptingCredentials + { + public string Alg { get => throw null; } + public Microsoft.IdentityModel.Tokens.CryptoProviderFactory CryptoProviderFactory { get => throw null; set { } } + protected EncryptingCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, string alg, string enc) => throw null; + public EncryptingCredentials(Microsoft.IdentityModel.Tokens.SecurityKey key, string alg, string enc) => throw null; + public EncryptingCredentials(Microsoft.IdentityModel.Tokens.SymmetricSecurityKey key, string enc) => throw null; + public string Enc { get => throw null; } + public Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + public Microsoft.IdentityModel.Tokens.SecurityKey KeyExchangePublicKey { get => throw null; set { } } + public bool SetDefaultCtyClaim { get => throw null; set { } } + } + public static class EpochTime + { + public static System.DateTime DateTime(long secondsSinceUnixEpoch) => throw null; + public static long GetIntDate(System.DateTime datetime) => throw null; + public static readonly System.DateTime UnixEpoch; + } + public interface ICompressionProvider + { + string Algorithm { get; } + byte[] Compress(byte[] value); + byte[] Decompress(byte[] value); + bool IsSupportedAlgorithm(string algorithm); + } + public interface ICryptoProvider + { + object Create(string algorithm, params object[] args); + bool IsSupportedAlgorithm(string algorithm, params object[] args); + void Release(object cryptoInstance); + } + public class InMemoryCryptoProviderCache : Microsoft.IdentityModel.Tokens.CryptoProviderCache, System.IDisposable + { + public InMemoryCryptoProviderCache() => throw null; + public InMemoryCryptoProviderCache(Microsoft.IdentityModel.Tokens.CryptoProviderCacheOptions cryptoProviderCacheOptions) => throw null; + public void Dispose() => throw null; + protected virtual void Dispose(bool disposing) => throw null; + protected override string GetCacheKey(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider) => throw null; + protected override string GetCacheKey(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, string algorithm, string typeofProvider) => throw null; + public override bool TryAdd(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider) => throw null; + public override bool TryGetSignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, string algorithm, string typeofProvider, bool willCreateSignatures, out Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider) => throw null; + public override bool TryRemove(Microsoft.IdentityModel.Tokens.SignatureProvider signatureProvider) => throw null; + } + public interface ISecurityTokenValidator + { + bool CanReadToken(string securityToken); + bool CanValidateToken { get; } + int MaximumTokenSizeInBytes { get; set; } + System.Security.Claims.ClaimsPrincipal ValidateToken(string securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, out Microsoft.IdentityModel.Tokens.SecurityToken validatedToken); + } + public delegate System.Collections.Generic.IEnumerable IssuerSigningKeyResolver(string token, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string kid, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public delegate System.Collections.Generic.IEnumerable IssuerSigningKeyResolverUsingConfiguration(string token, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string kid, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, Microsoft.IdentityModel.Tokens.BaseConfiguration configuration); + public delegate bool IssuerSigningKeyValidator(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public delegate bool IssuerSigningKeyValidatorUsingConfiguration(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, Microsoft.IdentityModel.Tokens.BaseConfiguration configuration); + public delegate string IssuerValidator(string issuer, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public delegate string IssuerValidatorUsingConfiguration(string issuer, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, Microsoft.IdentityModel.Tokens.BaseConfiguration configuration); + public interface ITokenReplayCache + { + bool TryAdd(string securityToken, System.DateTime expiresOn); + bool TryFind(string securityToken); + } + public static class JsonWebAlgorithmsKeyTypes + { + public const string EllipticCurve = default; + public const string Octet = default; + public const string RSA = default; + } + public class JsonWebKey : Microsoft.IdentityModel.Tokens.SecurityKey + { + public System.Collections.Generic.IDictionary AdditionalData { get => throw null; } + public string Alg { get => throw null; set { } } + public override bool CanComputeJwkThumbprint() => throw null; + public override byte[] ComputeJwkThumbprint() => throw null; + public static Microsoft.IdentityModel.Tokens.JsonWebKey Create(string json) => throw null; + public string Crv { get => throw null; set { } } + public JsonWebKey() => throw null; + public JsonWebKey(string json) => throw null; + public string D { get => throw null; set { } } + public string DP { get => throw null; set { } } + public string DQ { get => throw null; set { } } + public string E { get => throw null; set { } } + public bool HasPrivateKey { get => throw null; } + public string K { get => throw null; set { } } + public override string KeyId { get => throw null; set { } } + public System.Collections.Generic.IList KeyOps { get => throw null; } + public override int KeySize { get => throw null; } + public string Kid { get => throw null; set { } } + public string Kty { get => throw null; set { } } + public string N { get => throw null; set { } } + public System.Collections.Generic.IList Oth { get => throw null; } + public string P { get => throw null; set { } } + public string Q { get => throw null; set { } } + public string QI { get => throw null; set { } } + public override string ToString() => throw null; + public string Use { get => throw null; set { } } + public string X { get => throw null; set { } } + public System.Collections.Generic.IList X5c { get => throw null; } + public string X5t { get => throw null; set { } } + public string X5tS256 { get => throw null; set { } } + public string X5u { get => throw null; set { } } + public string Y { get => throw null; set { } } + } + public class JsonWebKeyConverter + { + public static Microsoft.IdentityModel.Tokens.JsonWebKey ConvertFromECDsaSecurityKey(Microsoft.IdentityModel.Tokens.ECDsaSecurityKey key) => throw null; + public static Microsoft.IdentityModel.Tokens.JsonWebKey ConvertFromRSASecurityKey(Microsoft.IdentityModel.Tokens.RsaSecurityKey key) => throw null; + public static Microsoft.IdentityModel.Tokens.JsonWebKey ConvertFromSecurityKey(Microsoft.IdentityModel.Tokens.SecurityKey key) => throw null; + public static Microsoft.IdentityModel.Tokens.JsonWebKey ConvertFromSymmetricSecurityKey(Microsoft.IdentityModel.Tokens.SymmetricSecurityKey key) => throw null; + public static Microsoft.IdentityModel.Tokens.JsonWebKey ConvertFromX509SecurityKey(Microsoft.IdentityModel.Tokens.X509SecurityKey key) => throw null; + public static Microsoft.IdentityModel.Tokens.JsonWebKey ConvertFromX509SecurityKey(Microsoft.IdentityModel.Tokens.X509SecurityKey key, bool representAsRsaKey) => throw null; + public JsonWebKeyConverter() => throw null; + } + public static class JsonWebKeyECTypes + { + public const string P256 = default; + public const string P384 = default; + public const string P512 = default; + public const string P521 = default; + } + public static class JsonWebKeyParameterNames + { + public const string Alg = default; + public const string Crv = default; + public const string D = default; + public const string DP = default; + public const string DQ = default; + public const string E = default; + public const string K = default; + public const string KeyOps = default; + public const string Keys = default; + public const string Kid = default; + public const string Kty = default; + public const string N = default; + public const string Oth = default; + public const string P = default; + public const string Q = default; + public const string QI = default; + public const string Use = default; + public const string X = default; + public const string X5c = default; + public const string X5t = default; + public const string X5tS256 = default; + public const string X5u = default; + public const string Y = default; + } + public class JsonWebKeySet + { + public System.Collections.Generic.IDictionary AdditionalData { get => throw null; } + public static Microsoft.IdentityModel.Tokens.JsonWebKeySet Create(string json) => throw null; + public JsonWebKeySet() => throw null; + public JsonWebKeySet(string json) => throw null; + public static bool DefaultSkipUnresolvedJsonWebKeys; + public System.Collections.Generic.IList GetSigningKeys() => throw null; + public System.Collections.Generic.IList Keys { get => throw null; } + public bool SkipUnresolvedJsonWebKeys { get => throw null; set { } } + } + public static class JsonWebKeySetParameterNames + { + public const string Keys = default; + } + public static class JsonWebKeyUseNames + { + public const string Enc = default; + public const string Sig = default; + } + public abstract class KeyWrapProvider : System.IDisposable + { + public abstract string Algorithm { get; } + public abstract string Context { get; set; } + protected KeyWrapProvider() => throw null; + public void Dispose() => throw null; + protected abstract void Dispose(bool disposing); + public abstract Microsoft.IdentityModel.Tokens.SecurityKey Key { get; } + public abstract byte[] UnwrapKey(byte[] keyBytes); + public abstract byte[] WrapKey(byte[] keyBytes); + } + public delegate bool LifetimeValidator(System.DateTime? notBefore, System.DateTime? expires, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public enum PrivateKeyStatus + { + Exists = 0, + DoesNotExist = 1, + Unknown = 2, + } + public class RsaKeyWrapProvider : Microsoft.IdentityModel.Tokens.KeyWrapProvider + { + public override string Algorithm { get => throw null; } + public override string Context { get => throw null; set { } } + public RsaKeyWrapProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, bool willUnwrap) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected virtual bool IsSupportedAlgorithm(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public override Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + public override byte[] UnwrapKey(byte[] keyBytes) => throw null; + public override byte[] WrapKey(byte[] keyBytes) => throw null; + } + public class RsaSecurityKey : Microsoft.IdentityModel.Tokens.AsymmetricSecurityKey + { + public override bool CanComputeJwkThumbprint() => throw null; + public override byte[] ComputeJwkThumbprint() => throw null; + public RsaSecurityKey(System.Security.Cryptography.RSAParameters rsaParameters) => throw null; + public RsaSecurityKey(System.Security.Cryptography.RSA rsa) => throw null; + public override bool HasPrivateKey { get => throw null; } + public override int KeySize { get => throw null; } + public System.Security.Cryptography.RSAParameters Parameters { get => throw null; } + public override Microsoft.IdentityModel.Tokens.PrivateKeyStatus PrivateKeyStatus { get => throw null; } + public System.Security.Cryptography.RSA Rsa { get => throw null; } + } + public static class SecurityAlgorithms + { + public const string Aes128CbcHmacSha256 = default; + public const string Aes128Encryption = default; + public const string Aes128Gcm = default; + public const string Aes128KeyWrap = default; + public const string Aes128KW = default; + public const string Aes192CbcHmacSha384 = default; + public const string Aes192Encryption = default; + public const string Aes192Gcm = default; + public const string Aes192KeyWrap = default; + public const string Aes192KW = default; + public const string Aes256CbcHmacSha512 = default; + public const string Aes256Encryption = default; + public const string Aes256Gcm = default; + public const string Aes256KeyWrap = default; + public const string Aes256KW = default; + public const string DesEncryption = default; + public const string EcdhEs = default; + public const string EcdhEsA128kw = default; + public const string EcdhEsA192kw = default; + public const string EcdhEsA256kw = default; + public const string EcdsaSha256 = default; + public const string EcdsaSha256Signature = default; + public const string EcdsaSha384 = default; + public const string EcdsaSha384Signature = default; + public const string EcdsaSha512 = default; + public const string EcdsaSha512Signature = default; + public const string EnvelopedSignature = default; + public const string ExclusiveC14n = default; + public const string ExclusiveC14nWithComments = default; + public const string HmacSha256 = default; + public const string HmacSha256Signature = default; + public const string HmacSha384 = default; + public const string HmacSha384Signature = default; + public const string HmacSha512 = default; + public const string HmacSha512Signature = default; + public const string None = default; + public const string Ripemd160Digest = default; + public const string RsaOAEP = default; + public const string RsaOaepKeyWrap = default; + public const string RsaPKCS1 = default; + public const string RsaSha256 = default; + public const string RsaSha256Signature = default; + public const string RsaSha384 = default; + public const string RsaSha384Signature = default; + public const string RsaSha512 = default; + public const string RsaSha512Signature = default; + public const string RsaSsaPssSha256 = default; + public const string RsaSsaPssSha256Signature = default; + public const string RsaSsaPssSha384 = default; + public const string RsaSsaPssSha384Signature = default; + public const string RsaSsaPssSha512 = default; + public const string RsaSsaPssSha512Signature = default; + public const string RsaV15KeyWrap = default; + public const string Sha256 = default; + public const string Sha256Digest = default; + public const string Sha384 = default; + public const string Sha384Digest = default; + public const string Sha512 = default; + public const string Sha512Digest = default; + } + public abstract class SecurityKey + { + public virtual bool CanComputeJwkThumbprint() => throw null; + public virtual byte[] ComputeJwkThumbprint() => throw null; + public Microsoft.IdentityModel.Tokens.CryptoProviderFactory CryptoProviderFactory { get => throw null; set { } } + public SecurityKey() => throw null; + public virtual bool IsSupportedAlgorithm(string algorithm) => throw null; + public virtual string KeyId { get => throw null; set { } } + public abstract int KeySize { get; } + public override string ToString() => throw null; + } + public class SecurityKeyIdentifierClause + { + public SecurityKeyIdentifierClause() => throw null; + } + public abstract class SecurityToken : Microsoft.IdentityModel.Logging.ISafeLogSecurityArtifact + { + protected SecurityToken() => throw null; + public abstract string Id { get; } + public abstract string Issuer { get; } + public abstract Microsoft.IdentityModel.Tokens.SecurityKey SecurityKey { get; } + public abstract Microsoft.IdentityModel.Tokens.SecurityKey SigningKey { get; set; } + public virtual string UnsafeToString() => throw null; + public abstract System.DateTime ValidFrom { get; } + public abstract System.DateTime ValidTo { get; } + } + public class SecurityTokenArgumentException : System.ArgumentException + { + public SecurityTokenArgumentException() => throw null; + public SecurityTokenArgumentException(string message) => throw null; + public SecurityTokenArgumentException(string message, System.Exception innerException) => throw null; + protected SecurityTokenArgumentException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenCompressionFailedException : Microsoft.IdentityModel.Tokens.SecurityTokenException + { + public SecurityTokenCompressionFailedException() => throw null; + public SecurityTokenCompressionFailedException(string message) => throw null; + public SecurityTokenCompressionFailedException(string message, System.Exception inner) => throw null; + protected SecurityTokenCompressionFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenDecompressionFailedException : Microsoft.IdentityModel.Tokens.SecurityTokenException + { + public SecurityTokenDecompressionFailedException() => throw null; + public SecurityTokenDecompressionFailedException(string message) => throw null; + public SecurityTokenDecompressionFailedException(string message, System.Exception inner) => throw null; + protected SecurityTokenDecompressionFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenDecryptionFailedException : Microsoft.IdentityModel.Tokens.SecurityTokenException + { + public SecurityTokenDecryptionFailedException() => throw null; + public SecurityTokenDecryptionFailedException(string message) => throw null; + public SecurityTokenDecryptionFailedException(string message, System.Exception innerException) => throw null; + protected SecurityTokenDecryptionFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenDescriptor + { + public System.Collections.Generic.IDictionary AdditionalHeaderClaims { get => throw null; set { } } + public System.Collections.Generic.IDictionary AdditionalInnerHeaderClaims { get => throw null; set { } } + public string Audience { get => throw null; set { } } + public System.Collections.Generic.IDictionary Claims { get => throw null; set { } } + public string CompressionAlgorithm { get => throw null; set { } } + public SecurityTokenDescriptor() => throw null; + public Microsoft.IdentityModel.Tokens.EncryptingCredentials EncryptingCredentials { get => throw null; set { } } + public System.DateTime? Expires { get => throw null; set { } } + public System.DateTime? IssuedAt { get => throw null; set { } } + public string Issuer { get => throw null; set { } } + public System.DateTime? NotBefore { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.SigningCredentials SigningCredentials { get => throw null; set { } } + public System.Security.Claims.ClaimsIdentity Subject { get => throw null; set { } } + public string TokenType { get => throw null; set { } } + } + public class SecurityTokenEncryptionFailedException : Microsoft.IdentityModel.Tokens.SecurityTokenException + { + public SecurityTokenEncryptionFailedException() => throw null; + public SecurityTokenEncryptionFailedException(string message) => throw null; + public SecurityTokenEncryptionFailedException(string message, System.Exception innerException) => throw null; + protected SecurityTokenEncryptionFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenEncryptionKeyNotFoundException : Microsoft.IdentityModel.Tokens.SecurityTokenDecryptionFailedException + { + public SecurityTokenEncryptionKeyNotFoundException() => throw null; + public SecurityTokenEncryptionKeyNotFoundException(string message) => throw null; + public SecurityTokenEncryptionKeyNotFoundException(string message, System.Exception innerException) => throw null; + protected SecurityTokenEncryptionKeyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenException : System.Exception + { + public SecurityTokenException() => throw null; + public SecurityTokenException(string message) => throw null; + public SecurityTokenException(string message, System.Exception innerException) => throw null; + protected SecurityTokenException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenExpiredException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenExpiredException() => throw null; + public SecurityTokenExpiredException(string message) => throw null; + public SecurityTokenExpiredException(string message, System.Exception inner) => throw null; + protected SecurityTokenExpiredException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.DateTime Expires { get => throw null; set { } } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public abstract class SecurityTokenHandler : Microsoft.IdentityModel.Tokens.TokenHandler, Microsoft.IdentityModel.Tokens.ISecurityTokenValidator + { + public virtual bool CanReadToken(System.Xml.XmlReader reader) => throw null; + public virtual bool CanReadToken(string tokenString) => throw null; + public virtual bool CanValidateToken { get => throw null; } + public virtual bool CanWriteToken { get => throw null; } + public virtual Microsoft.IdentityModel.Tokens.SecurityKeyIdentifierClause CreateSecurityTokenReference(Microsoft.IdentityModel.Tokens.SecurityToken token, bool attached) => throw null; + public virtual Microsoft.IdentityModel.Tokens.SecurityToken CreateToken(Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor tokenDescriptor) => throw null; + protected SecurityTokenHandler() => throw null; + public virtual Microsoft.IdentityModel.Tokens.SecurityToken ReadToken(System.Xml.XmlReader reader) => throw null; + public abstract Microsoft.IdentityModel.Tokens.SecurityToken ReadToken(System.Xml.XmlReader reader, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public abstract System.Type TokenType { get; } + public virtual System.Security.Claims.ClaimsPrincipal ValidateToken(string securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, out Microsoft.IdentityModel.Tokens.SecurityToken validatedToken) => throw null; + public virtual System.Security.Claims.ClaimsPrincipal ValidateToken(System.Xml.XmlReader reader, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, out Microsoft.IdentityModel.Tokens.SecurityToken validatedToken) => throw null; + public virtual string WriteToken(Microsoft.IdentityModel.Tokens.SecurityToken token) => throw null; + public abstract void WriteToken(System.Xml.XmlWriter writer, Microsoft.IdentityModel.Tokens.SecurityToken token); + } + public class SecurityTokenInvalidAlgorithmException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidAlgorithmException() => throw null; + public SecurityTokenInvalidAlgorithmException(string message) => throw null; + public SecurityTokenInvalidAlgorithmException(string message, System.Exception innerException) => throw null; + protected SecurityTokenInvalidAlgorithmException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string InvalidAlgorithm { get => throw null; set { } } + } + public class SecurityTokenInvalidAudienceException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidAudienceException() => throw null; + public SecurityTokenInvalidAudienceException(string message) => throw null; + public SecurityTokenInvalidAudienceException(string message, System.Exception innerException) => throw null; + protected SecurityTokenInvalidAudienceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string InvalidAudience { get => throw null; set { } } + } + public class SecurityTokenInvalidIssuerException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidIssuerException() => throw null; + public SecurityTokenInvalidIssuerException(string message) => throw null; + public SecurityTokenInvalidIssuerException(string message, System.Exception innerException) => throw null; + protected SecurityTokenInvalidIssuerException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string InvalidIssuer { get => throw null; set { } } + } + public class SecurityTokenInvalidLifetimeException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidLifetimeException() => throw null; + public SecurityTokenInvalidLifetimeException(string message) => throw null; + public SecurityTokenInvalidLifetimeException(string message, System.Exception innerException) => throw null; + protected SecurityTokenInvalidLifetimeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.DateTime? Expires { get => throw null; set { } } + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.DateTime? NotBefore { get => throw null; set { } } + } + public class SecurityTokenInvalidSignatureException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidSignatureException() => throw null; + public SecurityTokenInvalidSignatureException(string message) => throw null; + public SecurityTokenInvalidSignatureException(string message, System.Exception innerException) => throw null; + protected SecurityTokenInvalidSignatureException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenInvalidSigningKeyException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidSigningKeyException() => throw null; + public SecurityTokenInvalidSigningKeyException(string message) => throw null; + public SecurityTokenInvalidSigningKeyException(string message, System.Exception inner) => throw null; + protected SecurityTokenInvalidSigningKeyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public Microsoft.IdentityModel.Tokens.SecurityKey SigningKey { get => throw null; set { } } + } + public class SecurityTokenInvalidTypeException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenInvalidTypeException() => throw null; + public SecurityTokenInvalidTypeException(string message) => throw null; + public SecurityTokenInvalidTypeException(string message, System.Exception innerException) => throw null; + protected SecurityTokenInvalidTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public string InvalidType { get => throw null; set { } } + } + public class SecurityTokenKeyWrapException : Microsoft.IdentityModel.Tokens.SecurityTokenException + { + public SecurityTokenKeyWrapException() => throw null; + public SecurityTokenKeyWrapException(string message) => throw null; + public SecurityTokenKeyWrapException(string message, System.Exception innerException) => throw null; + protected SecurityTokenKeyWrapException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenMalformedException : Microsoft.IdentityModel.Tokens.SecurityTokenArgumentException + { + public SecurityTokenMalformedException() => throw null; + public SecurityTokenMalformedException(string message) => throw null; + public SecurityTokenMalformedException(string message, System.Exception innerException) => throw null; + protected SecurityTokenMalformedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenNoExpirationException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenNoExpirationException() => throw null; + public SecurityTokenNoExpirationException(string message) => throw null; + public SecurityTokenNoExpirationException(string message, System.Exception innerException) => throw null; + protected SecurityTokenNoExpirationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenNotYetValidException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenNotYetValidException() => throw null; + public SecurityTokenNotYetValidException(string message) => throw null; + public SecurityTokenNotYetValidException(string message, System.Exception inner) => throw null; + protected SecurityTokenNotYetValidException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public System.DateTime NotBefore { get => throw null; set { } } + } + public class SecurityTokenReplayAddFailedException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenReplayAddFailedException() => throw null; + public SecurityTokenReplayAddFailedException(string message) => throw null; + public SecurityTokenReplayAddFailedException(string message, System.Exception innerException) => throw null; + protected SecurityTokenReplayAddFailedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenReplayDetectedException : Microsoft.IdentityModel.Tokens.SecurityTokenValidationException + { + public SecurityTokenReplayDetectedException() => throw null; + public SecurityTokenReplayDetectedException(string message) => throw null; + public SecurityTokenReplayDetectedException(string message, System.Exception inner) => throw null; + protected SecurityTokenReplayDetectedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenSignatureKeyNotFoundException : Microsoft.IdentityModel.Tokens.SecurityTokenInvalidSignatureException + { + public SecurityTokenSignatureKeyNotFoundException() => throw null; + public SecurityTokenSignatureKeyNotFoundException(string message) => throw null; + public SecurityTokenSignatureKeyNotFoundException(string message, System.Exception innerException) => throw null; + protected SecurityTokenSignatureKeyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public class SecurityTokenUnableToValidateException : Microsoft.IdentityModel.Tokens.SecurityTokenInvalidSignatureException + { + public SecurityTokenUnableToValidateException() => throw null; + public SecurityTokenUnableToValidateException(Microsoft.IdentityModel.Tokens.ValidationFailure validationFailure, string message) => throw null; + public SecurityTokenUnableToValidateException(string message) => throw null; + public SecurityTokenUnableToValidateException(string message, System.Exception innerException) => throw null; + protected SecurityTokenUnableToValidateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + public Microsoft.IdentityModel.Tokens.ValidationFailure ValidationFailure { get => throw null; set { } } + } + public class SecurityTokenValidationException : Microsoft.IdentityModel.Tokens.SecurityTokenException + { + public SecurityTokenValidationException() => throw null; + public SecurityTokenValidationException(string message) => throw null; + public SecurityTokenValidationException(string message, System.Exception innerException) => throw null; + protected SecurityTokenValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null; + } + public abstract class SignatureProvider : System.IDisposable + { + public string Algorithm { get => throw null; } + public string Context { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.CryptoProviderCache CryptoProviderCache { get => throw null; set { } } + protected SignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public void Dispose() => throw null; + protected abstract void Dispose(bool disposing); + public Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + public abstract byte[] Sign(byte[] input); + public virtual byte[] Sign(byte[] input, int offset, int count) => throw null; + public virtual bool Sign(System.ReadOnlySpan data, System.Span destination, out int bytesWritten) => throw null; + public abstract bool Verify(byte[] input, byte[] signature); + public virtual bool Verify(byte[] input, int inputOffset, int inputLength, byte[] signature, int signatureOffset, int signatureLength) => throw null; + public bool WillCreateSignatures { get => throw null; set { } } + } + public delegate Microsoft.IdentityModel.Tokens.SecurityToken SignatureValidator(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public delegate Microsoft.IdentityModel.Tokens.SecurityToken SignatureValidatorUsingConfiguration(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, Microsoft.IdentityModel.Tokens.BaseConfiguration configuration); + public class SigningCredentials + { + public string Algorithm { get => throw null; } + public Microsoft.IdentityModel.Tokens.CryptoProviderFactory CryptoProviderFactory { get => throw null; set { } } + protected SigningCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + protected SigningCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, string algorithm) => throw null; + public SigningCredentials(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public SigningCredentials(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, string digest) => throw null; + public string Digest { get => throw null; } + public Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + public string Kid { get => throw null; } + } + public class SymmetricKeyWrapProvider : Microsoft.IdentityModel.Tokens.KeyWrapProvider + { + public override string Algorithm { get => throw null; } + public override string Context { get => throw null; set { } } + public SymmetricKeyWrapProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + protected override void Dispose(bool disposing) => throw null; + protected virtual System.Security.Cryptography.SymmetricAlgorithm GetSymmetricAlgorithm(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + protected virtual bool IsSupportedAlgorithm(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) => throw null; + public override Microsoft.IdentityModel.Tokens.SecurityKey Key { get => throw null; } + public override byte[] UnwrapKey(byte[] keyBytes) => throw null; + public override byte[] WrapKey(byte[] keyBytes) => throw null; + } + public class SymmetricSecurityKey : Microsoft.IdentityModel.Tokens.SecurityKey + { + public override bool CanComputeJwkThumbprint() => throw null; + public override byte[] ComputeJwkThumbprint() => throw null; + public SymmetricSecurityKey(byte[] key) => throw null; + public virtual byte[] Key { get => throw null; } + public override int KeySize { get => throw null; } + } + public class SymmetricSignatureProvider : Microsoft.IdentityModel.Tokens.SignatureProvider + { + public SymmetricSignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm) : base(default(Microsoft.IdentityModel.Tokens.SecurityKey), default(string)) => throw null; + public SymmetricSignatureProvider(Microsoft.IdentityModel.Tokens.SecurityKey key, string algorithm, bool willCreateSignatures) : base(default(Microsoft.IdentityModel.Tokens.SecurityKey), default(string)) => throw null; + public static readonly int DefaultMinimumSymmetricKeySizeInBits; + protected override void Dispose(bool disposing) => throw null; + protected virtual byte[] GetKeyBytes(Microsoft.IdentityModel.Tokens.SecurityKey key) => throw null; + protected virtual System.Security.Cryptography.KeyedHashAlgorithm GetKeyedHashAlgorithm(byte[] keyBytes, string algorithm) => throw null; + public int MinimumSymmetricKeySizeInBits { get => throw null; set { } } + protected virtual void ReleaseKeyedHashAlgorithm(System.Security.Cryptography.KeyedHashAlgorithm keyedHashAlgorithm) => throw null; + public override byte[] Sign(byte[] input) => throw null; + public override bool Sign(System.ReadOnlySpan input, System.Span signature, out int bytesWritten) => throw null; + public override byte[] Sign(byte[] input, int offset, int count) => throw null; + public override bool Verify(byte[] input, byte[] signature) => throw null; + public bool Verify(byte[] input, byte[] signature, int length) => throw null; + public override bool Verify(byte[] input, int inputOffset, int inputLength, byte[] signature, int signatureOffset, int signatureLength) => throw null; + } + public class TokenContext : Microsoft.IdentityModel.Tokens.CallContext + { + public TokenContext() => throw null; + public TokenContext(System.Guid activityId) => throw null; + } + public delegate System.Collections.Generic.IEnumerable TokenDecryptionKeyResolver(string token, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string kid, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public abstract class TokenHandler + { + protected TokenHandler() => throw null; + public static readonly int DefaultTokenLifetimeInMinutes; + public virtual int MaximumTokenSizeInBytes { get => throw null; set { } } + public virtual Microsoft.IdentityModel.Tokens.SecurityToken ReadToken(string token) => throw null; + public bool SetDefaultTimesOnTokenCreation { get => throw null; set { } } + public int TokenLifetimeInMinutes { get => throw null; set { } } + public virtual System.Threading.Tasks.Task ValidateTokenAsync(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public virtual System.Threading.Tasks.Task ValidateTokenAsync(Microsoft.IdentityModel.Tokens.SecurityToken token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + } + public delegate Microsoft.IdentityModel.Tokens.SecurityToken TokenReader(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public delegate bool TokenReplayValidator(System.DateTime? expirationTime, string securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public class TokenValidationParameters + { + public Microsoft.IdentityModel.Tokens.TokenValidationParameters ActorValidationParameters { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.AlgorithmValidator AlgorithmValidator { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.AudienceValidator AudienceValidator { get => throw null; set { } } + public string AuthenticationType { get => throw null; set { } } + public System.TimeSpan ClockSkew { get => throw null; set { } } + public virtual Microsoft.IdentityModel.Tokens.TokenValidationParameters Clone() => throw null; + public Microsoft.IdentityModel.Tokens.BaseConfigurationManager ConfigurationManager { get => throw null; set { } } + public virtual System.Security.Claims.ClaimsIdentity CreateClaimsIdentity(Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string issuer) => throw null; + public Microsoft.IdentityModel.Tokens.CryptoProviderFactory CryptoProviderFactory { get => throw null; set { } } + protected TokenValidationParameters(Microsoft.IdentityModel.Tokens.TokenValidationParameters other) => throw null; + public TokenValidationParameters() => throw null; + public string DebugId { get => throw null; set { } } + public static readonly string DefaultAuthenticationType; + public static readonly System.TimeSpan DefaultClockSkew; + public const int DefaultMaximumTokenSizeInBytes = 256000; + public bool IgnoreTrailingSlashWhenValidatingAudience { get => throw null; set { } } + public bool IncludeTokenOnFailedValidation { get => throw null; set { } } + public System.Collections.Generic.IDictionary InstancePropertyBag { get => throw null; } + public bool IsClone { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.SecurityKey IssuerSigningKey { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.IssuerSigningKeyResolver IssuerSigningKeyResolver { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.IssuerSigningKeyResolverUsingConfiguration IssuerSigningKeyResolverUsingConfiguration { get => throw null; set { } } + public System.Collections.Generic.IEnumerable IssuerSigningKeys { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.IssuerSigningKeyValidator IssuerSigningKeyValidator { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.IssuerSigningKeyValidatorUsingConfiguration IssuerSigningKeyValidatorUsingConfiguration { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.IssuerValidator IssuerValidator { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.IssuerValidatorUsingConfiguration IssuerValidatorUsingConfiguration { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.LifetimeValidator LifetimeValidator { get => throw null; set { } } + public bool LogTokenId { get => throw null; set { } } + public bool LogValidationExceptions { get => throw null; set { } } + public string NameClaimType { get => throw null; set { } } + public System.Func NameClaimTypeRetriever { get => throw null; set { } } + public System.Collections.Generic.IDictionary PropertyBag { get => throw null; set { } } + public bool RefreshBeforeValidation { get => throw null; set { } } + public bool RequireAudience { get => throw null; set { } } + public bool RequireExpirationTime { get => throw null; set { } } + public bool RequireSignedTokens { get => throw null; set { } } + public string RoleClaimType { get => throw null; set { } } + public System.Func RoleClaimTypeRetriever { get => throw null; set { } } + public bool SaveSigninToken { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.SignatureValidator SignatureValidator { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.SignatureValidatorUsingConfiguration SignatureValidatorUsingConfiguration { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.SecurityKey TokenDecryptionKey { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.TokenDecryptionKeyResolver TokenDecryptionKeyResolver { get => throw null; set { } } + public System.Collections.Generic.IEnumerable TokenDecryptionKeys { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.TokenReader TokenReader { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.ITokenReplayCache TokenReplayCache { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.TokenReplayValidator TokenReplayValidator { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.TransformBeforeSignatureValidation TransformBeforeSignatureValidation { get => throw null; set { } } + public bool TryAllIssuerSigningKeys { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.TypeValidator TypeValidator { get => throw null; set { } } + public System.Collections.Generic.IEnumerable ValidAlgorithms { get => throw null; set { } } + public bool ValidateActor { get => throw null; set { } } + public bool ValidateAudience { get => throw null; set { } } + public bool ValidateIssuer { get => throw null; set { } } + public bool ValidateIssuerSigningKey { get => throw null; set { } } + public bool ValidateLifetime { get => throw null; set { } } + public bool ValidateSignatureLast { get => throw null; set { } } + public bool ValidateTokenReplay { get => throw null; set { } } + public bool ValidateWithLKG { get => throw null; set { } } + public string ValidAudience { get => throw null; set { } } + public System.Collections.Generic.IEnumerable ValidAudiences { get => throw null; set { } } + public string ValidIssuer { get => throw null; set { } } + public System.Collections.Generic.IEnumerable ValidIssuers { get => throw null; set { } } + public System.Collections.Generic.IEnumerable ValidTypes { get => throw null; set { } } + } + public class TokenValidationResult + { + public System.Collections.Generic.IDictionary Claims { get => throw null; } + public System.Security.Claims.ClaimsIdentity ClaimsIdentity { get => throw null; set { } } + public TokenValidationResult() => throw null; + public System.Exception Exception { get => throw null; set { } } + public string Issuer { get => throw null; set { } } + public bool IsValid { get => throw null; set { } } + public System.Collections.Generic.IDictionary PropertyBag { get => throw null; } + public Microsoft.IdentityModel.Tokens.SecurityToken SecurityToken { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.CallContext TokenContext { get => throw null; set { } } + public Microsoft.IdentityModel.Tokens.SecurityToken TokenOnFailedValidation { get => throw null; } + public string TokenType { get => throw null; set { } } + } + public delegate Microsoft.IdentityModel.Tokens.SecurityToken TransformBeforeSignatureValidation(Microsoft.IdentityModel.Tokens.SecurityToken token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public delegate string TypeValidator(string type, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters); + public static class UniqueId + { + public static string CreateRandomId() => throw null; + public static string CreateRandomId(string prefix) => throw null; + public static System.Uri CreateRandomUri() => throw null; + public static string CreateUniqueId() => throw null; + public static string CreateUniqueId(string prefix) => throw null; + } + public static class Utility + { + public static bool AreEqual(byte[] a, byte[] b) => throw null; + public static byte[] CloneByteArray(this byte[] src) => throw null; + public const string Empty = default; + public static bool IsHttps(string address) => throw null; + public static bool IsHttps(System.Uri uri) => throw null; + public const string Null = default; + } + public enum ValidationFailure + { + None = 0, + InvalidLifetime = 1, + InvalidIssuer = 2, + } + public static class Validators + { + public static void ValidateAlgorithm(string algorithm, Microsoft.IdentityModel.Tokens.SecurityKey securityKey, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static void ValidateAudience(System.Collections.Generic.IEnumerable audiences, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static string ValidateIssuer(string issuer, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static void ValidateIssuerSecurityKey(Microsoft.IdentityModel.Tokens.SecurityKey securityKey, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static void ValidateLifetime(System.DateTime? notBefore, System.DateTime? expires, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static void ValidateTokenReplay(System.DateTime? expirationTime, string securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static void ValidateTokenReplay(string securityToken, System.DateTime? expirationTime, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static string ValidateTokenType(string type, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + } + public class X509EncryptingCredentials : Microsoft.IdentityModel.Tokens.EncryptingCredentials + { + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public X509EncryptingCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) : base(default(Microsoft.IdentityModel.Tokens.SymmetricSecurityKey), default(string)) => throw null; + public X509EncryptingCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, string keyWrapAlgorithm, string dataEncryptionAlgorithm) : base(default(Microsoft.IdentityModel.Tokens.SymmetricSecurityKey), default(string)) => throw null; + } + public class X509SecurityKey : Microsoft.IdentityModel.Tokens.AsymmetricSecurityKey + { + public override bool CanComputeJwkThumbprint() => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public override byte[] ComputeJwkThumbprint() => throw null; + public X509SecurityKey(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public X509SecurityKey(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, string keyId) => throw null; + public override bool Equals(object obj) => throw null; + public override int GetHashCode() => throw null; + public override bool HasPrivateKey { get => throw null; } + public override int KeySize { get => throw null; } + public System.Security.Cryptography.AsymmetricAlgorithm PrivateKey { get => throw null; } + public override Microsoft.IdentityModel.Tokens.PrivateKeyStatus PrivateKeyStatus { get => throw null; } + public System.Security.Cryptography.AsymmetricAlgorithm PublicKey { get => throw null; } + public string X5t { get => throw null; } + } + public class X509SigningCredentials : Microsoft.IdentityModel.Tokens.SigningCredentials + { + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public X509SigningCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) : base(default(System.Security.Cryptography.X509Certificates.X509Certificate2)) => throw null; + public X509SigningCredentials(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, string algorithm) : base(default(System.Security.Cryptography.X509Certificates.X509Certificate2)) => throw null; + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj new file mode 100644 index 000000000000..524740979fa2 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.cs b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.cs new file mode 100644 index 000000000000..8c197a3d6824 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.cs @@ -0,0 +1,91 @@ +// This file contains auto-generated code. +// Generated from `Microsoft.SqlServer.Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5`. +namespace Microsoft +{ + namespace SqlServer + { + namespace Server + { + public enum DataAccessKind + { + None = 0, + Read = 1, + } + public enum Format + { + Unknown = 0, + Native = 1, + UserDefined = 2, + } + public interface IBinarySerialize + { + void Read(System.IO.BinaryReader r); + void Write(System.IO.BinaryWriter w); + } + public sealed class InvalidUdtException : System.SystemException + { + public static Microsoft.SqlServer.Server.InvalidUdtException Create(System.Type udtType, string resourceReason = default(string)) => throw null; + public override void GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) => throw null; + } + [System.AttributeUsage((System.AttributeTargets)10624, AllowMultiple = false, Inherited = false)] + public class SqlFacetAttribute : System.Attribute + { + public SqlFacetAttribute() => throw null; + public bool IsFixedLength { get => throw null; set { } } + public bool IsNullable { get => throw null; set { } } + public int MaxSize { get => throw null; set { } } + public int Precision { get => throw null; set { } } + public int Scale { get => throw null; set { } } + } + [System.AttributeUsage((System.AttributeTargets)64, AllowMultiple = false, Inherited = false)] + public class SqlFunctionAttribute : System.Attribute + { + public SqlFunctionAttribute() => throw null; + public Microsoft.SqlServer.Server.DataAccessKind DataAccess { get => throw null; set { } } + public string FillRowMethodName { get => throw null; set { } } + public bool IsDeterministic { get => throw null; set { } } + public bool IsPrecise { get => throw null; set { } } + public string Name { get => throw null; set { } } + public Microsoft.SqlServer.Server.SystemDataAccessKind SystemDataAccess { get => throw null; set { } } + public string TableDefinition { get => throw null; set { } } + } + [System.AttributeUsage((System.AttributeTargets)64, AllowMultiple = false, Inherited = false)] + public sealed class SqlMethodAttribute : Microsoft.SqlServer.Server.SqlFunctionAttribute + { + public SqlMethodAttribute() => throw null; + public bool InvokeIfReceiverIsNull { get => throw null; set { } } + public bool IsMutator { get => throw null; set { } } + public bool OnNullCall { get => throw null; set { } } + } + [System.AttributeUsage((System.AttributeTargets)12, AllowMultiple = false, Inherited = false)] + public sealed class SqlUserDefinedAggregateAttribute : System.Attribute + { + public SqlUserDefinedAggregateAttribute(Microsoft.SqlServer.Server.Format format) => throw null; + public Microsoft.SqlServer.Server.Format Format { get => throw null; } + public bool IsInvariantToDuplicates { get => throw null; set { } } + public bool IsInvariantToNulls { get => throw null; set { } } + public bool IsInvariantToOrder { get => throw null; set { } } + public bool IsNullIfEmpty { get => throw null; set { } } + public int MaxByteSize { get => throw null; set { } } + public const int MaxByteSizeValue = 8000; + public string Name { get => throw null; set { } } + } + [System.AttributeUsage((System.AttributeTargets)12, AllowMultiple = false, Inherited = true)] + public sealed class SqlUserDefinedTypeAttribute : System.Attribute + { + public SqlUserDefinedTypeAttribute(Microsoft.SqlServer.Server.Format format) => throw null; + public Microsoft.SqlServer.Server.Format Format { get => throw null; } + public bool IsByteOrdered { get => throw null; set { } } + public bool IsFixedLength { get => throw null; set { } } + public int MaxByteSize { get => throw null; set { } } + public string Name { get => throw null; set { } } + public string ValidationMethodName { get => throw null; set { } } + } + public enum SystemDataAccessKind + { + None = 0, + Read = 1, + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.cs b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.cs new file mode 100644 index 000000000000..964fecb626d4 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.cs @@ -0,0 +1,42 @@ +// This file contains auto-generated code. +// Generated from `System.ClientModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8`. +namespace System +{ + namespace ClientModel + { + namespace Primitives + { + public interface IJsonModel : System.ClientModel.Primitives.IPersistableModel + { + T Create(ref System.Text.Json.Utf8JsonReader reader, System.ClientModel.Primitives.ModelReaderWriterOptions options); + void Write(System.Text.Json.Utf8JsonWriter writer, System.ClientModel.Primitives.ModelReaderWriterOptions options); + } + public interface IPersistableModel + { + T Create(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options); + string GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options); + System.BinaryData Write(System.ClientModel.Primitives.ModelReaderWriterOptions options); + } + public static class ModelReaderWriter + { + public static T Read(System.BinaryData data, System.ClientModel.Primitives.ModelReaderWriterOptions options = default(System.ClientModel.Primitives.ModelReaderWriterOptions)) where T : System.ClientModel.Primitives.IPersistableModel => throw null; + public static object Read(System.BinaryData data, System.Type returnType, System.ClientModel.Primitives.ModelReaderWriterOptions options = default(System.ClientModel.Primitives.ModelReaderWriterOptions)) => throw null; + public static System.BinaryData Write(T model, System.ClientModel.Primitives.ModelReaderWriterOptions options = default(System.ClientModel.Primitives.ModelReaderWriterOptions)) where T : System.ClientModel.Primitives.IPersistableModel => throw null; + public static System.BinaryData Write(object model, System.ClientModel.Primitives.ModelReaderWriterOptions options = default(System.ClientModel.Primitives.ModelReaderWriterOptions)) => throw null; + } + public class ModelReaderWriterOptions + { + public ModelReaderWriterOptions(string format) => throw null; + public string Format { get => throw null; } + public static System.ClientModel.Primitives.ModelReaderWriterOptions Json { get => throw null; } + public static System.ClientModel.Primitives.ModelReaderWriterOptions Xml { get => throw null; } + } + [System.AttributeUsage((System.AttributeTargets)4)] + public sealed class PersistableModelProxyAttribute : System.Attribute + { + public PersistableModelProxyAttribute(System.Type proxyType) => throw null; + public System.Type ProxyType { get => throw null; } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj new file mode 100644 index 000000000000..af9830f6d13d --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj new file mode 100644 index 000000000000..8017e89ccf27 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj new file mode 100644 index 000000000000..44f3b6c98d18 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj @@ -0,0 +1,13 @@ + + + net9.0 + true + bin\ + false + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.cs b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.cs new file mode 100644 index 000000000000..ad97899809de --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.cs @@ -0,0 +1,227 @@ +// This file contains auto-generated code. +// Generated from `System.IdentityModel.Tokens.Jwt, Version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35`. +namespace System +{ + namespace IdentityModel + { + namespace Tokens + { + namespace Jwt + { + public static class JsonClaimValueTypes + { + public const string Json = default; + public const string JsonArray = default; + public const string JsonNull = default; + } + public static class JwtConstants + { + public const string DirectKeyUseAlg = default; + public const string HeaderType = default; + public const string HeaderTypeAlt = default; + public const string JsonCompactSerializationRegex = default; + public const string JweCompactSerializationRegex = default; + public const string TokenType = default; + public const string TokenTypeAlt = default; + } + public class JwtHeader : System.Collections.Generic.Dictionary + { + public string Alg { get => throw null; } + public static System.IdentityModel.Tokens.Jwt.JwtHeader Base64UrlDeserialize(string base64UrlEncodedJsonString) => throw null; + public virtual string Base64UrlEncode() => throw null; + public JwtHeader() => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, System.Collections.Generic.IDictionary outboundAlgorithmMap) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, System.Collections.Generic.IDictionary outboundAlgorithmMap, string tokenType) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, System.Collections.Generic.IDictionary outboundAlgorithmMap, string tokenType, System.Collections.Generic.IDictionary additionalInnerHeaderClaims) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary outboundAlgorithmMap) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary outboundAlgorithmMap, string tokenType) => throw null; + public JwtHeader(Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary outboundAlgorithmMap, string tokenType, System.Collections.Generic.IDictionary additionalHeaderClaims) => throw null; + public string Cty { get => throw null; } + public string Enc { get => throw null; } + public Microsoft.IdentityModel.Tokens.EncryptingCredentials EncryptingCredentials { get => throw null; } + public string IV { get => throw null; } + public string Kid { get => throw null; } + public virtual string SerializeToJson() => throw null; + public Microsoft.IdentityModel.Tokens.SigningCredentials SigningCredentials { get => throw null; } + public string Typ { get => throw null; } + public string X5c { get => throw null; } + public string X5t { get => throw null; } + public string Zip { get => throw null; } + } + public struct JwtHeaderParameterNames + { + public const string Alg = default; + public const string Apu = default; + public const string Apv = default; + public const string Cty = default; + public const string Enc = default; + public const string Epk = default; + public const string IV = default; + public const string Jku = default; + public const string Jwk = default; + public const string Kid = default; + public const string Typ = default; + public const string X5c = default; + public const string X5t = default; + public const string X5u = default; + public const string Zip = default; + } + public class JwtPayload : System.Collections.Generic.Dictionary + { + public string Acr { get => throw null; } + public string Actort { get => throw null; } + public void AddClaim(System.Security.Claims.Claim claim) => throw null; + public void AddClaims(System.Collections.Generic.IEnumerable claims) => throw null; + public System.Collections.Generic.IList Amr { get => throw null; } + public System.Collections.Generic.IList Aud { get => throw null; } + public int? AuthTime { get => throw null; } + public string Azp { get => throw null; } + public static System.IdentityModel.Tokens.Jwt.JwtPayload Base64UrlDeserialize(string base64UrlEncodedJsonString) => throw null; + public virtual string Base64UrlEncode() => throw null; + public string CHash { get => throw null; } + public virtual System.Collections.Generic.IEnumerable Claims { get => throw null; } + public JwtPayload() => throw null; + public JwtPayload(System.Collections.Generic.IEnumerable claims) => throw null; + public JwtPayload(string issuer, string audience, System.Collections.Generic.IEnumerable claims, System.DateTime? notBefore, System.DateTime? expires) => throw null; + public JwtPayload(string issuer, string audience, System.Collections.Generic.IEnumerable claims, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt) => throw null; + public JwtPayload(string issuer, string audience, System.Collections.Generic.IEnumerable claims, System.Collections.Generic.IDictionary claimsCollection, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt) => throw null; + public static System.IdentityModel.Tokens.Jwt.JwtPayload Deserialize(string jsonString) => throw null; + public int? Exp { get => throw null; } + public long? Expiration { get => throw null; } + public int? Iat { get => throw null; } + public string Iss { get => throw null; } + public System.DateTime IssuedAt { get => throw null; } + public string Jti { get => throw null; } + public int? Nbf { get => throw null; } + public string Nonce { get => throw null; } + public long? NotBefore { get => throw null; } + public virtual string SerializeToJson() => throw null; + public string Sub { get => throw null; } + public System.DateTime ValidFrom { get => throw null; } + public System.DateTime ValidTo { get => throw null; } + } + public struct JwtRegisteredClaimNames + { + public const string Acr = default; + public const string Actort = default; + public const string Amr = default; + public const string AtHash = default; + public const string Aud = default; + public const string AuthTime = default; + public const string Azp = default; + public const string Birthdate = default; + public const string CHash = default; + public const string Email = default; + public const string Exp = default; + public const string FamilyName = default; + public const string Gender = default; + public const string GivenName = default; + public const string Iat = default; + public const string Iss = default; + public const string Jti = default; + public const string Name = default; + public const string NameId = default; + public const string Nbf = default; + public const string Nonce = default; + public const string Prn = default; + public const string Sid = default; + public const string Sub = default; + public const string Typ = default; + public const string UniqueName = default; + public const string Website = default; + } + public class JwtSecurityToken : Microsoft.IdentityModel.Tokens.SecurityToken + { + public string Actor { get => throw null; } + public System.Collections.Generic.IEnumerable Audiences { get => throw null; } + public System.Collections.Generic.IEnumerable Claims { get => throw null; } + public JwtSecurityToken(string jwtEncodedString) => throw null; + public JwtSecurityToken(System.IdentityModel.Tokens.Jwt.JwtHeader header, System.IdentityModel.Tokens.Jwt.JwtPayload payload, string rawHeader, string rawPayload, string rawSignature) => throw null; + public JwtSecurityToken(System.IdentityModel.Tokens.Jwt.JwtHeader header, System.IdentityModel.Tokens.Jwt.JwtSecurityToken innerToken, string rawHeader, string rawEncryptedKey, string rawInitializationVector, string rawCiphertext, string rawAuthenticationTag) => throw null; + public JwtSecurityToken(System.IdentityModel.Tokens.Jwt.JwtHeader header, System.IdentityModel.Tokens.Jwt.JwtPayload payload) => throw null; + public JwtSecurityToken(string issuer = default(string), string audience = default(string), System.Collections.Generic.IEnumerable claims = default(System.Collections.Generic.IEnumerable), System.DateTime? notBefore = default(System.DateTime?), System.DateTime? expires = default(System.DateTime?), Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials = default(Microsoft.IdentityModel.Tokens.SigningCredentials)) => throw null; + public virtual string EncodedHeader { get => throw null; } + public virtual string EncodedPayload { get => throw null; } + public Microsoft.IdentityModel.Tokens.EncryptingCredentials EncryptingCredentials { get => throw null; } + public System.IdentityModel.Tokens.Jwt.JwtHeader Header { get => throw null; } + public override string Id { get => throw null; } + public System.IdentityModel.Tokens.Jwt.JwtSecurityToken InnerToken { get => throw null; } + public virtual System.DateTime IssuedAt { get => throw null; } + public override string Issuer { get => throw null; } + public System.IdentityModel.Tokens.Jwt.JwtPayload Payload { get => throw null; } + public string RawAuthenticationTag { get => throw null; } + public string RawCiphertext { get => throw null; } + public string RawData { get => throw null; } + public string RawEncryptedKey { get => throw null; } + public string RawHeader { get => throw null; } + public string RawInitializationVector { get => throw null; } + public string RawPayload { get => throw null; } + public string RawSignature { get => throw null; } + public override Microsoft.IdentityModel.Tokens.SecurityKey SecurityKey { get => throw null; } + public string SignatureAlgorithm { get => throw null; } + public Microsoft.IdentityModel.Tokens.SigningCredentials SigningCredentials { get => throw null; } + public override Microsoft.IdentityModel.Tokens.SecurityKey SigningKey { get => throw null; set { } } + public string Subject { get => throw null; } + public override string ToString() => throw null; + public override string UnsafeToString() => throw null; + public override System.DateTime ValidFrom { get => throw null; } + public override System.DateTime ValidTo { get => throw null; } + } + public static class JwtSecurityTokenConverter + { + public static System.IdentityModel.Tokens.Jwt.JwtSecurityToken Convert(Microsoft.IdentityModel.JsonWebTokens.JsonWebToken token) => throw null; + } + public class JwtSecurityTokenHandler : Microsoft.IdentityModel.Tokens.SecurityTokenHandler + { + public override bool CanReadToken(string token) => throw null; + public override bool CanValidateToken { get => throw null; } + public override bool CanWriteToken { get => throw null; } + protected virtual string CreateActorValue(System.Security.Claims.ClaimsIdentity actor) => throw null; + protected virtual System.Security.Claims.ClaimsIdentity CreateClaimsIdentity(System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, string issuer, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public virtual string CreateEncodedJwt(Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor tokenDescriptor) => throw null; + public virtual string CreateEncodedJwt(string issuer, string audience, System.Security.Claims.ClaimsIdentity subject, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials) => throw null; + public virtual string CreateEncodedJwt(string issuer, string audience, System.Security.Claims.ClaimsIdentity subject, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials) => throw null; + public virtual string CreateEncodedJwt(string issuer, string audience, System.Security.Claims.ClaimsIdentity subject, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary claimCollection) => throw null; + public virtual System.IdentityModel.Tokens.Jwt.JwtSecurityToken CreateJwtSecurityToken(Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor tokenDescriptor) => throw null; + public virtual System.IdentityModel.Tokens.Jwt.JwtSecurityToken CreateJwtSecurityToken(string issuer, string audience, System.Security.Claims.ClaimsIdentity subject, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials) => throw null; + public virtual System.IdentityModel.Tokens.Jwt.JwtSecurityToken CreateJwtSecurityToken(string issuer, string audience, System.Security.Claims.ClaimsIdentity subject, System.DateTime? notBefore, System.DateTime? expires, System.DateTime? issuedAt, Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials, Microsoft.IdentityModel.Tokens.EncryptingCredentials encryptingCredentials, System.Collections.Generic.IDictionary claimCollection) => throw null; + public virtual System.IdentityModel.Tokens.Jwt.JwtSecurityToken CreateJwtSecurityToken(string issuer = default(string), string audience = default(string), System.Security.Claims.ClaimsIdentity subject = default(System.Security.Claims.ClaimsIdentity), System.DateTime? notBefore = default(System.DateTime?), System.DateTime? expires = default(System.DateTime?), System.DateTime? issuedAt = default(System.DateTime?), Microsoft.IdentityModel.Tokens.SigningCredentials signingCredentials = default(Microsoft.IdentityModel.Tokens.SigningCredentials)) => throw null; + public override Microsoft.IdentityModel.Tokens.SecurityToken CreateToken(Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor tokenDescriptor) => throw null; + public JwtSecurityTokenHandler() => throw null; + protected string DecryptToken(System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static System.Collections.Generic.ISet DefaultInboundClaimFilter; + public static System.Collections.Generic.IDictionary DefaultInboundClaimTypeMap; + public static bool DefaultMapInboundClaims; + public static System.Collections.Generic.IDictionary DefaultOutboundAlgorithmMap; + public static System.Collections.Generic.IDictionary DefaultOutboundClaimTypeMap; + public System.Collections.Generic.ISet InboundClaimFilter { get => throw null; set { } } + public System.Collections.Generic.IDictionary InboundClaimTypeMap { get => throw null; set { } } + public static string JsonClaimTypeProperty { get => throw null; set { } } + public bool MapInboundClaims { get => throw null; set { } } + public System.Collections.Generic.IDictionary OutboundAlgorithmMap { get => throw null; } + public System.Collections.Generic.IDictionary OutboundClaimTypeMap { get => throw null; set { } } + public System.IdentityModel.Tokens.Jwt.JwtSecurityToken ReadJwtToken(string token) => throw null; + public override Microsoft.IdentityModel.Tokens.SecurityToken ReadToken(string token) => throw null; + public override Microsoft.IdentityModel.Tokens.SecurityToken ReadToken(System.Xml.XmlReader reader, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual Microsoft.IdentityModel.Tokens.SecurityKey ResolveIssuerSigningKey(string token, System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual Microsoft.IdentityModel.Tokens.SecurityKey ResolveTokenDecryptionKey(string token, System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public static string ShortClaimTypeProperty { get => throw null; set { } } + public override System.Type TokenType { get => throw null; } + protected virtual void ValidateAudience(System.Collections.Generic.IEnumerable audiences, System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual string ValidateIssuer(string issuer, System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual void ValidateIssuerSecurityKey(Microsoft.IdentityModel.Tokens.SecurityKey key, System.IdentityModel.Tokens.Jwt.JwtSecurityToken securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual void ValidateLifetime(System.DateTime? notBefore, System.DateTime? expires, System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual System.IdentityModel.Tokens.Jwt.JwtSecurityToken ValidateSignature(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public override System.Security.Claims.ClaimsPrincipal ValidateToken(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters, out Microsoft.IdentityModel.Tokens.SecurityToken validatedToken) => throw null; + public override System.Threading.Tasks.Task ValidateTokenAsync(string token, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected System.Security.Claims.ClaimsPrincipal ValidateTokenPayload(System.IdentityModel.Tokens.Jwt.JwtSecurityToken jwtToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + protected virtual void ValidateTokenReplay(System.DateTime? expires, string securityToken, Microsoft.IdentityModel.Tokens.TokenValidationParameters validationParameters) => throw null; + public override string WriteToken(Microsoft.IdentityModel.Tokens.SecurityToken token) => throw null; + public override void WriteToken(System.Xml.XmlWriter writer, Microsoft.IdentityModel.Tokens.SecurityToken token) => throw null; + } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj new file mode 100644 index 000000000000..2f5d2330dc95 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.cs b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.cs new file mode 100644 index 000000000000..123c87b4e1c6 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.cs @@ -0,0 +1,27 @@ +// This file contains auto-generated code. +// Generated from `System.Memory.Data, Version=1.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`. +namespace System +{ + public class BinaryData + { + public BinaryData(byte[] data) => throw null; + public BinaryData(object jsonSerializable, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions), System.Type type = default(System.Type)) => throw null; + public BinaryData(System.ReadOnlyMemory data) => throw null; + public BinaryData(string data) => throw null; + public override bool Equals(object obj) => throw null; + public static System.BinaryData FromBytes(System.ReadOnlyMemory data) => throw null; + public static System.BinaryData FromBytes(byte[] data) => throw null; + public static System.BinaryData FromObjectAsJson(T jsonSerializable, System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public static System.BinaryData FromStream(System.IO.Stream stream) => throw null; + public static System.Threading.Tasks.Task FromStreamAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null; + public static System.BinaryData FromString(string data) => throw null; + public override int GetHashCode() => throw null; + public static implicit operator System.ReadOnlyMemory(System.BinaryData data) => throw null; + public static implicit operator System.ReadOnlySpan(System.BinaryData data) => throw null; + public byte[] ToArray() => throw null; + public System.ReadOnlyMemory ToMemory() => throw null; + public T ToObjectFromJson(System.Text.Json.JsonSerializerOptions options = default(System.Text.Json.JsonSerializerOptions)) => throw null; + public System.IO.Stream ToStream() => throw null; + public override string ToString() => throw null; + } +} diff --git a/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj new file mode 100644 index 000000000000..c444f79ac6f3 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj @@ -0,0 +1,14 @@ + + + net9.0 + true + bin\ + false + + + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj b/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.cs b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.cs new file mode 100644 index 000000000000..4dcb51a937f6 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.cs @@ -0,0 +1,503 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. +namespace System +{ + namespace Security + { + namespace Cryptography + { + public sealed class CryptographicAttributeObject + { + public CryptographicAttributeObject(System.Security.Cryptography.Oid oid) => throw null; + public CryptographicAttributeObject(System.Security.Cryptography.Oid oid, System.Security.Cryptography.AsnEncodedDataCollection values) => throw null; + public System.Security.Cryptography.Oid Oid { get => throw null; } + public System.Security.Cryptography.AsnEncodedDataCollection Values { get => throw null; } + } + public sealed class CryptographicAttributeObjectCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public int Add(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public int Add(System.Security.Cryptography.CryptographicAttributeObject attribute) => throw null; + void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Security.Cryptography.CryptographicAttributeObject[] array, int index) => throw null; + public int Count { get => throw null; } + public CryptographicAttributeObjectCollection() => throw null; + public CryptographicAttributeObjectCollection(System.Security.Cryptography.CryptographicAttributeObject attribute) => throw null; + public System.Security.Cryptography.CryptographicAttributeObjectEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool IsSynchronized { get => throw null; } + public void Remove(System.Security.Cryptography.CryptographicAttributeObject attribute) => throw null; + public object SyncRoot { get => throw null; } + public System.Security.Cryptography.CryptographicAttributeObject this[int index] { get => throw null; } + } + public sealed class CryptographicAttributeObjectEnumerator : System.Collections.IEnumerator + { + public System.Security.Cryptography.CryptographicAttributeObject Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + namespace Pkcs + { + public sealed class AlgorithmIdentifier + { + public AlgorithmIdentifier() => throw null; + public AlgorithmIdentifier(System.Security.Cryptography.Oid oid) => throw null; + public AlgorithmIdentifier(System.Security.Cryptography.Oid oid, int keyLength) => throw null; + public int KeyLength { get => throw null; set { } } + public System.Security.Cryptography.Oid Oid { get => throw null; set { } } + public byte[] Parameters { get => throw null; set { } } + } + public sealed class CmsRecipient + { + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public CmsRecipient(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public CmsRecipient(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.RSAEncryptionPadding rsaEncryptionPadding) => throw null; + public CmsRecipient(System.Security.Cryptography.Pkcs.SubjectIdentifierType recipientIdentifierType, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.RSAEncryptionPadding rsaEncryptionPadding) => throw null; + public CmsRecipient(System.Security.Cryptography.Pkcs.SubjectIdentifierType recipientIdentifierType, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public System.Security.Cryptography.Pkcs.SubjectIdentifierType RecipientIdentifierType { get => throw null; } + public System.Security.Cryptography.RSAEncryptionPadding RSAEncryptionPadding { get => throw null; } + } + public sealed class CmsRecipientCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public int Add(System.Security.Cryptography.Pkcs.CmsRecipient recipient) => throw null; + public void CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[] array, int index) => throw null; + public int Count { get => throw null; } + public CmsRecipientCollection() => throw null; + public CmsRecipientCollection(System.Security.Cryptography.Pkcs.CmsRecipient recipient) => throw null; + public CmsRecipientCollection(System.Security.Cryptography.Pkcs.SubjectIdentifierType recipientIdentifierType, System.Security.Cryptography.X509Certificates.X509Certificate2Collection certificates) => throw null; + public System.Security.Cryptography.Pkcs.CmsRecipientEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool IsSynchronized { get => throw null; } + public void Remove(System.Security.Cryptography.Pkcs.CmsRecipient recipient) => throw null; + public object SyncRoot { get => throw null; } + public System.Security.Cryptography.Pkcs.CmsRecipient this[int index] { get => throw null; } + } + public sealed class CmsRecipientEnumerator : System.Collections.IEnumerator + { + public System.Security.Cryptography.Pkcs.CmsRecipient Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + public sealed class CmsSigner + { + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509Certificate2Collection Certificates { get => throw null; } + public CmsSigner() => throw null; + public CmsSigner(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType) => throw null; + public CmsSigner(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public CmsSigner(System.Security.Cryptography.CspParameters parameters) => throw null; + public CmsSigner(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public CmsSigner(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.AsymmetricAlgorithm privateKey) => throw null; + public CmsSigner(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType, System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.RSA privateKey, System.Security.Cryptography.RSASignaturePadding signaturePadding) => throw null; + public System.Security.Cryptography.Oid DigestAlgorithm { get => throw null; set { } } + public System.Security.Cryptography.X509Certificates.X509IncludeOption IncludeOption { get => throw null; set { } } + public System.Security.Cryptography.AsymmetricAlgorithm PrivateKey { get => throw null; set { } } + public System.Security.Cryptography.RSASignaturePadding SignaturePadding { get => throw null; set { } } + public System.Security.Cryptography.CryptographicAttributeObjectCollection SignedAttributes { get => throw null; } + public System.Security.Cryptography.Pkcs.SubjectIdentifierType SignerIdentifierType { get => throw null; set { } } + public System.Security.Cryptography.CryptographicAttributeObjectCollection UnsignedAttributes { get => throw null; } + } + public sealed class ContentInfo + { + public byte[] Content { get => throw null; } + public System.Security.Cryptography.Oid ContentType { get => throw null; } + public ContentInfo(byte[] content) => throw null; + public ContentInfo(System.Security.Cryptography.Oid contentType, byte[] content) => throw null; + public static System.Security.Cryptography.Oid GetContentType(byte[] encodedMessage) => throw null; + public static System.Security.Cryptography.Oid GetContentType(System.ReadOnlySpan encodedMessage) => throw null; + } + public sealed class EnvelopedCms + { + public System.Security.Cryptography.X509Certificates.X509Certificate2Collection Certificates { get => throw null; } + public System.Security.Cryptography.Pkcs.AlgorithmIdentifier ContentEncryptionAlgorithm { get => throw null; } + public System.Security.Cryptography.Pkcs.ContentInfo ContentInfo { get => throw null; } + public EnvelopedCms() => throw null; + public EnvelopedCms(System.Security.Cryptography.Pkcs.ContentInfo contentInfo) => throw null; + public EnvelopedCms(System.Security.Cryptography.Pkcs.ContentInfo contentInfo, System.Security.Cryptography.Pkcs.AlgorithmIdentifier encryptionAlgorithm) => throw null; + public void Decode(byte[] encodedMessage) => throw null; + public void Decode(System.ReadOnlySpan encodedMessage) => throw null; + public void Decrypt() => throw null; + public void Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo recipientInfo) => throw null; + public void Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo recipientInfo, System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraStore) => throw null; + public void Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraStore) => throw null; + public void Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo recipientInfo, System.Security.Cryptography.AsymmetricAlgorithm privateKey) => throw null; + public byte[] Encode() => throw null; + public void Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient recipient) => throw null; + public void Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection recipients) => throw null; + public System.Security.Cryptography.Pkcs.RecipientInfoCollection RecipientInfos { get => throw null; } + public System.Security.Cryptography.CryptographicAttributeObjectCollection UnprotectedAttributes { get => throw null; } + public int Version { get => throw null; } + } + public sealed class KeyAgreeRecipientInfo : System.Security.Cryptography.Pkcs.RecipientInfo + { + public System.DateTime Date { get => throw null; } + public override byte[] EncryptedKey { get => throw null; } + public override System.Security.Cryptography.Pkcs.AlgorithmIdentifier KeyEncryptionAlgorithm { get => throw null; } + public System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey OriginatorIdentifierOrKey { get => throw null; } + public System.Security.Cryptography.CryptographicAttributeObject OtherKeyAttribute { get => throw null; } + public override System.Security.Cryptography.Pkcs.SubjectIdentifier RecipientIdentifier { get => throw null; } + public override int Version { get => throw null; } + } + public sealed class KeyTransRecipientInfo : System.Security.Cryptography.Pkcs.RecipientInfo + { + public override byte[] EncryptedKey { get => throw null; } + public override System.Security.Cryptography.Pkcs.AlgorithmIdentifier KeyEncryptionAlgorithm { get => throw null; } + public override System.Security.Cryptography.Pkcs.SubjectIdentifier RecipientIdentifier { get => throw null; } + public override int Version { get => throw null; } + } + public sealed class Pkcs12Builder + { + public void AddSafeContentsEncrypted(System.Security.Cryptography.Pkcs.Pkcs12SafeContents safeContents, byte[] passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public void AddSafeContentsEncrypted(System.Security.Cryptography.Pkcs.Pkcs12SafeContents safeContents, System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public void AddSafeContentsEncrypted(System.Security.Cryptography.Pkcs.Pkcs12SafeContents safeContents, string password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public void AddSafeContentsEncrypted(System.Security.Cryptography.Pkcs.Pkcs12SafeContents safeContents, System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public void AddSafeContentsUnencrypted(System.Security.Cryptography.Pkcs.Pkcs12SafeContents safeContents) => throw null; + public Pkcs12Builder() => throw null; + public byte[] Encode() => throw null; + public bool IsSealed { get => throw null; } + public void SealWithMac(string password, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int iterationCount) => throw null; + public void SealWithMac(System.ReadOnlySpan password, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, int iterationCount) => throw null; + public void SealWithoutIntegrity() => throw null; + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + } + public sealed class Pkcs12CertBag : System.Security.Cryptography.Pkcs.Pkcs12SafeBag + { + public Pkcs12CertBag(System.Security.Cryptography.Oid certificateType, System.ReadOnlyMemory encodedCertificate) : base(default(string), default(System.ReadOnlyMemory), default(bool)) => throw null; + public System.ReadOnlyMemory EncodedCertificate { get => throw null; } + public System.Security.Cryptography.X509Certificates.X509Certificate2 GetCertificate() => throw null; + public System.Security.Cryptography.Oid GetCertificateType() => throw null; + public bool IsX509Certificate { get => throw null; } + } + public enum Pkcs12ConfidentialityMode + { + Unknown = 0, + None = 1, + Password = 2, + PublicKey = 3, + } + public sealed class Pkcs12Info + { + public System.Collections.ObjectModel.ReadOnlyCollection AuthenticatedSafe { get => throw null; } + public static System.Security.Cryptography.Pkcs.Pkcs12Info Decode(System.ReadOnlyMemory encodedBytes, out int bytesConsumed, bool skipCopy = default(bool)) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12IntegrityMode IntegrityMode { get => throw null; } + public bool VerifyMac(string password) => throw null; + public bool VerifyMac(System.ReadOnlySpan password) => throw null; + } + public enum Pkcs12IntegrityMode + { + Unknown = 0, + None = 1, + Password = 2, + PublicKey = 3, + } + public sealed class Pkcs12KeyBag : System.Security.Cryptography.Pkcs.Pkcs12SafeBag + { + public Pkcs12KeyBag(System.ReadOnlyMemory pkcs8PrivateKey, bool skipCopy = default(bool)) : base(default(string), default(System.ReadOnlyMemory), default(bool)) => throw null; + public System.ReadOnlyMemory Pkcs8PrivateKey { get => throw null; } + } + public abstract class Pkcs12SafeBag + { + public System.Security.Cryptography.CryptographicAttributeObjectCollection Attributes { get => throw null; } + protected Pkcs12SafeBag(string bagIdValue, System.ReadOnlyMemory encodedBagValue, bool skipCopy = default(bool)) => throw null; + public byte[] Encode() => throw null; + public System.ReadOnlyMemory EncodedBagValue { get => throw null; } + public System.Security.Cryptography.Oid GetBagId() => throw null; + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + } + public sealed class Pkcs12SafeContents + { + public System.Security.Cryptography.Pkcs.Pkcs12CertBag AddCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12KeyBag AddKeyUnencrypted(System.Security.Cryptography.AsymmetricAlgorithm key) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12SafeContentsBag AddNestedContents(System.Security.Cryptography.Pkcs.Pkcs12SafeContents safeContents) => throw null; + public void AddSafeBag(System.Security.Cryptography.Pkcs.Pkcs12SafeBag safeBag) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12SecretBag AddSecret(System.Security.Cryptography.Oid secretType, System.ReadOnlyMemory secretValue) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12ShroudedKeyBag AddShroudedKey(System.Security.Cryptography.AsymmetricAlgorithm key, byte[] passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12ShroudedKeyBag AddShroudedKey(System.Security.Cryptography.AsymmetricAlgorithm key, System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12ShroudedKeyBag AddShroudedKey(System.Security.Cryptography.AsymmetricAlgorithm key, string password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12ShroudedKeyBag AddShroudedKey(System.Security.Cryptography.AsymmetricAlgorithm key, System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public System.Security.Cryptography.Pkcs.Pkcs12ConfidentialityMode ConfidentialityMode { get => throw null; } + public Pkcs12SafeContents() => throw null; + public void Decrypt(byte[] passwordBytes) => throw null; + public void Decrypt(System.ReadOnlySpan passwordBytes) => throw null; + public void Decrypt(string password) => throw null; + public void Decrypt(System.ReadOnlySpan password) => throw null; + public System.Collections.Generic.IEnumerable GetBags() => throw null; + public bool IsReadOnly { get => throw null; } + } + public sealed class Pkcs12SafeContentsBag : System.Security.Cryptography.Pkcs.Pkcs12SafeBag + { + public System.Security.Cryptography.Pkcs.Pkcs12SafeContents SafeContents { get => throw null; } + internal Pkcs12SafeContentsBag() : base(default(string), default(System.ReadOnlyMemory), default(bool)) { } + } + public sealed class Pkcs12SecretBag : System.Security.Cryptography.Pkcs.Pkcs12SafeBag + { + public System.Security.Cryptography.Oid GetSecretType() => throw null; + public System.ReadOnlyMemory SecretValue { get => throw null; } + internal Pkcs12SecretBag() : base(default(string), default(System.ReadOnlyMemory), default(bool)) { } + } + public sealed class Pkcs12ShroudedKeyBag : System.Security.Cryptography.Pkcs.Pkcs12SafeBag + { + public Pkcs12ShroudedKeyBag(System.ReadOnlyMemory encryptedPkcs8PrivateKey, bool skipCopy = default(bool)) : base(default(string), default(System.ReadOnlyMemory), default(bool)) => throw null; + public System.ReadOnlyMemory EncryptedPkcs8PrivateKey { get => throw null; } + } + public sealed class Pkcs8PrivateKeyInfo + { + public System.Security.Cryptography.Oid AlgorithmId { get => throw null; } + public System.ReadOnlyMemory? AlgorithmParameters { get => throw null; } + public System.Security.Cryptography.CryptographicAttributeObjectCollection Attributes { get => throw null; } + public static System.Security.Cryptography.Pkcs.Pkcs8PrivateKeyInfo Create(System.Security.Cryptography.AsymmetricAlgorithm privateKey) => throw null; + public Pkcs8PrivateKeyInfo(System.Security.Cryptography.Oid algorithmId, System.ReadOnlyMemory? algorithmParameters, System.ReadOnlyMemory privateKey, bool skipCopies = default(bool)) => throw null; + public static System.Security.Cryptography.Pkcs.Pkcs8PrivateKeyInfo Decode(System.ReadOnlyMemory source, out int bytesRead, bool skipCopy = default(bool)) => throw null; + public static System.Security.Cryptography.Pkcs.Pkcs8PrivateKeyInfo DecryptAndDecode(System.ReadOnlySpan password, System.ReadOnlyMemory source, out int bytesRead) => throw null; + public static System.Security.Cryptography.Pkcs.Pkcs8PrivateKeyInfo DecryptAndDecode(System.ReadOnlySpan passwordBytes, System.ReadOnlyMemory source, out int bytesRead) => throw null; + public byte[] Encode() => throw null; + public byte[] Encrypt(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public byte[] Encrypt(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters) => throw null; + public System.ReadOnlyMemory PrivateKeyBytes { get => throw null; } + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + public bool TryEncrypt(System.ReadOnlySpan password, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + public bool TryEncrypt(System.ReadOnlySpan passwordBytes, System.Security.Cryptography.PbeParameters pbeParameters, System.Span destination, out int bytesWritten) => throw null; + } + public class Pkcs9AttributeObject : System.Security.Cryptography.AsnEncodedData + { + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9AttributeObject() => throw null; + public Pkcs9AttributeObject(string oid, byte[] encodedData) => throw null; + public Pkcs9AttributeObject(System.Security.Cryptography.Oid oid, byte[] encodedData) => throw null; + public Pkcs9AttributeObject(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public System.Security.Cryptography.Oid Oid { get => throw null; } + } + public sealed class Pkcs9ContentType : System.Security.Cryptography.Pkcs.Pkcs9AttributeObject + { + public System.Security.Cryptography.Oid ContentType { get => throw null; } + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9ContentType() => throw null; + } + public sealed class Pkcs9DocumentDescription : System.Security.Cryptography.Pkcs.Pkcs9AttributeObject + { + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9DocumentDescription() => throw null; + public Pkcs9DocumentDescription(string documentDescription) => throw null; + public Pkcs9DocumentDescription(byte[] encodedDocumentDescription) => throw null; + public string DocumentDescription { get => throw null; } + } + public sealed class Pkcs9DocumentName : System.Security.Cryptography.Pkcs.Pkcs9AttributeObject + { + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9DocumentName() => throw null; + public Pkcs9DocumentName(string documentName) => throw null; + public Pkcs9DocumentName(byte[] encodedDocumentName) => throw null; + public string DocumentName { get => throw null; } + } + public sealed class Pkcs9LocalKeyId : System.Security.Cryptography.Pkcs.Pkcs9AttributeObject + { + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9LocalKeyId() => throw null; + public Pkcs9LocalKeyId(byte[] keyId) => throw null; + public Pkcs9LocalKeyId(System.ReadOnlySpan keyId) => throw null; + public System.ReadOnlyMemory KeyId { get => throw null; } + } + public sealed class Pkcs9MessageDigest : System.Security.Cryptography.Pkcs.Pkcs9AttributeObject + { + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9MessageDigest() => throw null; + public byte[] MessageDigest { get => throw null; } + } + public sealed class Pkcs9SigningTime : System.Security.Cryptography.Pkcs.Pkcs9AttributeObject + { + public override void CopyFrom(System.Security.Cryptography.AsnEncodedData asnEncodedData) => throw null; + public Pkcs9SigningTime() => throw null; + public Pkcs9SigningTime(System.DateTime signingTime) => throw null; + public Pkcs9SigningTime(byte[] encodedSigningTime) => throw null; + public System.DateTime SigningTime { get => throw null; } + } + public sealed class PublicKeyInfo + { + public System.Security.Cryptography.Pkcs.AlgorithmIdentifier Algorithm { get => throw null; } + public byte[] KeyValue { get => throw null; } + } + public abstract class RecipientInfo + { + public abstract byte[] EncryptedKey { get; } + public abstract System.Security.Cryptography.Pkcs.AlgorithmIdentifier KeyEncryptionAlgorithm { get; } + public abstract System.Security.Cryptography.Pkcs.SubjectIdentifier RecipientIdentifier { get; } + public System.Security.Cryptography.Pkcs.RecipientInfoType Type { get => throw null; } + public abstract int Version { get; } + } + public sealed class RecipientInfoCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public void CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[] array, int index) => throw null; + public int Count { get => throw null; } + public System.Security.Cryptography.Pkcs.RecipientInfoEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool IsSynchronized { get => throw null; } + public object SyncRoot { get => throw null; } + public System.Security.Cryptography.Pkcs.RecipientInfo this[int index] { get => throw null; } + } + public sealed class RecipientInfoEnumerator : System.Collections.IEnumerator + { + public System.Security.Cryptography.Pkcs.RecipientInfo Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + public enum RecipientInfoType + { + Unknown = 0, + KeyTransport = 1, + KeyAgreement = 2, + } + public sealed class Rfc3161TimestampRequest + { + public static System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest CreateFromData(System.ReadOnlySpan data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.Oid requestedPolicyId = default(System.Security.Cryptography.Oid), System.ReadOnlyMemory? nonce = default(System.ReadOnlyMemory?), bool requestSignerCertificates = default(bool), System.Security.Cryptography.X509Certificates.X509ExtensionCollection extensions = default(System.Security.Cryptography.X509Certificates.X509ExtensionCollection)) => throw null; + public static System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest CreateFromHash(System.ReadOnlyMemory hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.Oid requestedPolicyId = default(System.Security.Cryptography.Oid), System.ReadOnlyMemory? nonce = default(System.ReadOnlyMemory?), bool requestSignerCertificates = default(bool), System.Security.Cryptography.X509Certificates.X509ExtensionCollection extensions = default(System.Security.Cryptography.X509Certificates.X509ExtensionCollection)) => throw null; + public static System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest CreateFromHash(System.ReadOnlyMemory hash, System.Security.Cryptography.Oid hashAlgorithmId, System.Security.Cryptography.Oid requestedPolicyId = default(System.Security.Cryptography.Oid), System.ReadOnlyMemory? nonce = default(System.ReadOnlyMemory?), bool requestSignerCertificates = default(bool), System.Security.Cryptography.X509Certificates.X509ExtensionCollection extensions = default(System.Security.Cryptography.X509Certificates.X509ExtensionCollection)) => throw null; + public static System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest CreateFromSignerInfo(System.Security.Cryptography.Pkcs.SignerInfo signerInfo, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.Oid requestedPolicyId = default(System.Security.Cryptography.Oid), System.ReadOnlyMemory? nonce = default(System.ReadOnlyMemory?), bool requestSignerCertificates = default(bool), System.Security.Cryptography.X509Certificates.X509ExtensionCollection extensions = default(System.Security.Cryptography.X509Certificates.X509ExtensionCollection)) => throw null; + public byte[] Encode() => throw null; + public System.Security.Cryptography.X509Certificates.X509ExtensionCollection GetExtensions() => throw null; + public System.ReadOnlyMemory GetMessageHash() => throw null; + public System.ReadOnlyMemory? GetNonce() => throw null; + public bool HasExtensions { get => throw null; } + public System.Security.Cryptography.Oid HashAlgorithmId { get => throw null; } + public System.Security.Cryptography.Pkcs.Rfc3161TimestampToken ProcessResponse(System.ReadOnlyMemory responseBytes, out int bytesConsumed) => throw null; + public System.Security.Cryptography.Oid RequestedPolicyId { get => throw null; } + public bool RequestSignerCertificate { get => throw null; } + public static bool TryDecode(System.ReadOnlyMemory encodedBytes, out System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest request, out int bytesConsumed) => throw null; + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + public int Version { get => throw null; } + } + public sealed class Rfc3161TimestampToken + { + public System.Security.Cryptography.Pkcs.SignedCms AsSignedCms() => throw null; + public System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo TokenInfo { get => throw null; } + public static bool TryDecode(System.ReadOnlyMemory encodedBytes, out System.Security.Cryptography.Pkcs.Rfc3161TimestampToken token, out int bytesConsumed) => throw null; + public bool VerifySignatureForData(System.ReadOnlySpan data, out System.Security.Cryptography.X509Certificates.X509Certificate2 signerCertificate, System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraCandidates = default(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)) => throw null; + public bool VerifySignatureForHash(System.ReadOnlySpan hash, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, out System.Security.Cryptography.X509Certificates.X509Certificate2 signerCertificate, System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraCandidates = default(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)) => throw null; + public bool VerifySignatureForHash(System.ReadOnlySpan hash, System.Security.Cryptography.Oid hashAlgorithmId, out System.Security.Cryptography.X509Certificates.X509Certificate2 signerCertificate, System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraCandidates = default(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)) => throw null; + public bool VerifySignatureForSignerInfo(System.Security.Cryptography.Pkcs.SignerInfo signerInfo, out System.Security.Cryptography.X509Certificates.X509Certificate2 signerCertificate, System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraCandidates = default(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)) => throw null; + } + public sealed class Rfc3161TimestampTokenInfo + { + public long? AccuracyInMicroseconds { get => throw null; } + public Rfc3161TimestampTokenInfo(System.Security.Cryptography.Oid policyId, System.Security.Cryptography.Oid hashAlgorithmId, System.ReadOnlyMemory messageHash, System.ReadOnlyMemory serialNumber, System.DateTimeOffset timestamp, long? accuracyInMicroseconds = default(long?), bool isOrdering = default(bool), System.ReadOnlyMemory? nonce = default(System.ReadOnlyMemory?), System.ReadOnlyMemory? timestampAuthorityName = default(System.ReadOnlyMemory?), System.Security.Cryptography.X509Certificates.X509ExtensionCollection extensions = default(System.Security.Cryptography.X509Certificates.X509ExtensionCollection)) => throw null; + public byte[] Encode() => throw null; + public System.Security.Cryptography.X509Certificates.X509ExtensionCollection GetExtensions() => throw null; + public System.ReadOnlyMemory GetMessageHash() => throw null; + public System.ReadOnlyMemory? GetNonce() => throw null; + public System.ReadOnlyMemory GetSerialNumber() => throw null; + public System.ReadOnlyMemory? GetTimestampAuthorityName() => throw null; + public bool HasExtensions { get => throw null; } + public System.Security.Cryptography.Oid HashAlgorithmId { get => throw null; } + public bool IsOrdering { get => throw null; } + public System.Security.Cryptography.Oid PolicyId { get => throw null; } + public System.DateTimeOffset Timestamp { get => throw null; } + public static bool TryDecode(System.ReadOnlyMemory encodedBytes, out System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo timestampTokenInfo, out int bytesConsumed) => throw null; + public bool TryEncode(System.Span destination, out int bytesWritten) => throw null; + public int Version { get => throw null; } + } + public sealed class SignedCms + { + public void AddCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2Collection Certificates { get => throw null; } + public void CheckHash() => throw null; + public void CheckSignature(bool verifySignatureOnly) => throw null; + public void CheckSignature(System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraStore, bool verifySignatureOnly) => throw null; + public void ComputeSignature() => throw null; + public void ComputeSignature(System.Security.Cryptography.Pkcs.CmsSigner signer) => throw null; + public void ComputeSignature(System.Security.Cryptography.Pkcs.CmsSigner signer, bool silent) => throw null; + public System.Security.Cryptography.Pkcs.ContentInfo ContentInfo { get => throw null; } + public SignedCms(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType, System.Security.Cryptography.Pkcs.ContentInfo contentInfo, bool detached) => throw null; + public SignedCms() => throw null; + public SignedCms(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType) => throw null; + public SignedCms(System.Security.Cryptography.Pkcs.ContentInfo contentInfo) => throw null; + public SignedCms(System.Security.Cryptography.Pkcs.SubjectIdentifierType signerIdentifierType, System.Security.Cryptography.Pkcs.ContentInfo contentInfo) => throw null; + public SignedCms(System.Security.Cryptography.Pkcs.ContentInfo contentInfo, bool detached) => throw null; + public void Decode(byte[] encodedMessage) => throw null; + public void Decode(System.ReadOnlySpan encodedMessage) => throw null; + public bool Detached { get => throw null; } + public byte[] Encode() => throw null; + public void RemoveCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public void RemoveSignature(int index) => throw null; + public void RemoveSignature(System.Security.Cryptography.Pkcs.SignerInfo signerInfo) => throw null; + public System.Security.Cryptography.Pkcs.SignerInfoCollection SignerInfos { get => throw null; } + public int Version { get => throw null; } + } + public sealed class SignerInfo + { + public void AddUnsignedAttribute(System.Security.Cryptography.AsnEncodedData unsignedAttribute) => throw null; + public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get => throw null; } + public void CheckHash() => throw null; + public void CheckSignature(bool verifySignatureOnly) => throw null; + public void CheckSignature(System.Security.Cryptography.X509Certificates.X509Certificate2Collection extraStore, bool verifySignatureOnly) => throw null; + public void ComputeCounterSignature() => throw null; + public void ComputeCounterSignature(System.Security.Cryptography.Pkcs.CmsSigner signer) => throw null; + public System.Security.Cryptography.Pkcs.SignerInfoCollection CounterSignerInfos { get => throw null; } + public System.Security.Cryptography.Oid DigestAlgorithm { get => throw null; } + public byte[] GetSignature() => throw null; + public void RemoveCounterSignature(int index) => throw null; + public void RemoveCounterSignature(System.Security.Cryptography.Pkcs.SignerInfo counterSignerInfo) => throw null; + public void RemoveUnsignedAttribute(System.Security.Cryptography.AsnEncodedData unsignedAttribute) => throw null; + public System.Security.Cryptography.Oid SignatureAlgorithm { get => throw null; } + public System.Security.Cryptography.CryptographicAttributeObjectCollection SignedAttributes { get => throw null; } + public System.Security.Cryptography.Pkcs.SubjectIdentifier SignerIdentifier { get => throw null; } + public System.Security.Cryptography.CryptographicAttributeObjectCollection UnsignedAttributes { get => throw null; } + public int Version { get => throw null; } + } + public sealed class SignerInfoCollection : System.Collections.ICollection, System.Collections.IEnumerable + { + public void CopyTo(System.Array array, int index) => throw null; + public void CopyTo(System.Security.Cryptography.Pkcs.SignerInfo[] array, int index) => throw null; + public int Count { get => throw null; } + public System.Security.Cryptography.Pkcs.SignerInfoEnumerator GetEnumerator() => throw null; + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null; + public bool IsSynchronized { get => throw null; } + public object SyncRoot { get => throw null; } + public System.Security.Cryptography.Pkcs.SignerInfo this[int index] { get => throw null; } + } + public sealed class SignerInfoEnumerator : System.Collections.IEnumerator + { + public System.Security.Cryptography.Pkcs.SignerInfo Current { get => throw null; } + object System.Collections.IEnumerator.Current { get => throw null; } + public bool MoveNext() => throw null; + public void Reset() => throw null; + } + public sealed class SubjectIdentifier + { + public bool MatchesCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) => throw null; + public System.Security.Cryptography.Pkcs.SubjectIdentifierType Type { get => throw null; } + public object Value { get => throw null; } + } + public sealed class SubjectIdentifierOrKey + { + public System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType Type { get => throw null; } + public object Value { get => throw null; } + } + public enum SubjectIdentifierOrKeyType + { + Unknown = 0, + IssuerAndSerialNumber = 1, + SubjectKeyIdentifier = 2, + PublicKeyInfo = 3, + } + public enum SubjectIdentifierType + { + Unknown = 0, + IssuerAndSerialNumber = 1, + SubjectKeyIdentifier = 2, + NoSignature = 3, + } + } + namespace Xml + { + public struct X509IssuerSerial + { + public string IssuerName { get => throw null; set { } } + public string SerialNumber { get => throw null; set { } } + } + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.cs b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.cs new file mode 100644 index 000000000000..112088cf6b5d --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.cs @@ -0,0 +1,21 @@ +// This file contains auto-generated code. +// Generated from `System.Security.Cryptography.ProtectedData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`. +namespace System +{ + namespace Security + { + namespace Cryptography + { + public enum DataProtectionScope + { + CurrentUser = 0, + LocalMachine = 1, + } + public static class ProtectedData + { + public static byte[] Protect(byte[] userData, byte[] optionalEntropy, System.Security.Cryptography.DataProtectionScope scope) => throw null; + public static byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, System.Security.Cryptography.DataProtectionScope scope) => throw null; + } + } + } +} diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj b/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj b/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj new file mode 100644 index 000000000000..c7646fbae204 --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj @@ -0,0 +1,12 @@ + + + net9.0 + true + bin\ + false + + + + + + diff --git a/csharp/scripts/stubs/make_stubs_all.py b/csharp/scripts/stubs/make_stubs_all.py index 5204d9ceb725..51d3dd894a73 100644 --- a/csharp/scripts/stubs/make_stubs_all.py +++ b/csharp/scripts/stubs/make_stubs_all.py @@ -14,6 +14,7 @@ "Amazon.Lambda.APIGatewayEvents", "Dapper", "EntityFramework", + "Microsoft.Data.SqlClient", "Newtonsoft.Json", "NHibernate", "System.Data.OleDb", diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst new file mode 100644 index 000000000000..c1b1bb4b0a27 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst @@ -0,0 +1,202 @@ +.. _codeql-cli-2.22.1: + +========================== +CodeQL 2.22.1 (2025-06-26) +========================== + +.. 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.22.1 runs a total of 449 security queries when configured with the Default suite (covering 165 CWE). The Extended suite enables an additional 129 queries (covering 33 more CWE). + +CodeQL CLI +---------- + +New Features +~~~~~~~~~~~~ + +* Rust language support is now in public preview. + +Miscellaneous +~~~~~~~~~~~~~ + +* The version of :code:`jgit` used by the CodeQL CLI has been updated to :code:`6.10.1.202505221210-r`. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* Added flow model for the following libraries: :code:`madler/zlib`, :code:`google/brotli`, :code:`libidn/libidn2`, :code:`libssh2/libssh2/`, :code:`nghttp2/nghttp2`, :code:`libuv/libuv/`, and :code:`curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. + +C# +"" + +* The queries :code:`cs/dereferenced-value-is-always-null` and :code:`cs/dereferenced-value-may-be-null` have been improved to reduce false positives. The queries no longer assume that expressions are dereferenced when passed as the receiver (:code:`this` parameter) to extension methods where that parameter is a nullable type. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The :code:`js/loop-iteration-skipped-due-to-shifting` query now has the :code:`reliability` tag. +* Fixed false positives in the :code:`js/loop-iteration-skipped-due-to-shifting` query when the return value of :code:`splice` is used to decide whether to adjust the loop counter. +* Fixed false positives in the :code:`js/template-syntax-in-string-literal` query where template syntax in string concatenation and "manual string interpolation" patterns were incorrectly flagged. +* The :code:`js/useless-expression` query now correctly flags only the innermost expressions with no effect, avoiding duplicate alerts on compound expressions. + +Python +"""""" + +* The :code:`py/iter-returns-non-self` query has been modernized, and no longer alerts for certain cases where an equivalent iterator is returned. + +New Queries +~~~~~~~~~~~ + +Rust +"""" + +* Initial public preview release. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Query metadata tags have been systematically updated for many C# queries. Primary categorization as either :code:`reliability` or :code:`maintainability`, and relevant sub-category tags such as :code:`readability`, :code:`useless-code`, :code:`complexity`, :code:`performance`, :code:`correctness`, :code:`error-handling`, and :code:`concurrency`. Aligns with the established `Query file metadata and alert message style guide `__. +* Adjusts the :code:`@security-severity` from 9.3 to 7.3 for :code:`cs/uncontrolled-format-string` to align :code:`CWE-134` severity for memory safe languages to better reflect their impact. + +Golang +"""""" + +* The tag :code:`quality` has been added to multiple Go quality queries for consistency. They have all been given a tag for one of the two top-level categories :code:`reliability` or :code:`maintainability`, and a tag for a sub-category. See `Query file metadata and alert message style guide `__ for more information about these categories. +* The tag :code:`external/cwe/cwe-129` has been added to :code:`go/constant-length-comparison`. +* The tag :code:`external/cwe/cwe-193` has been added to :code:`go/index-out-of-bounds`. +* The tag :code:`external/cwe/cwe-197` has been added to :code:`go/shift-out-of-range`. +* The tag :code:`external/cwe/cwe-248` has been added to :code:`go/redundant-recover`. +* The tag :code:`external/cwe/cwe-252` has been added to :code:`go/missing-error-check` and :code:`go/unhandled-writable-file-close`. +* The tag :code:`external/cwe/cwe-480` has been added to :code:`go/mistyped-exponentiation`. +* The tag :code:`external/cwe/cwe-570` has been added to :code:`go/impossible-interface-nil-check` and :code:`go/comparison-of-identical-expressions`. +* The tag :code:`external/cwe/cwe-571` has been added to :code:`go/negative-length-check` and :code:`go/comparison-of-identical-expressions`. +* The tag :code:`external/cwe/cwe-783` has been added to :code:`go/whitespace-contradicts-precedence`. +* The tag :code:`external/cwe/cwe-835` has been added to :code:`go/inconsistent-loop-direction`. +* The tag :code:`error-handling` has been added to :code:`go/missing-error-check`, :code:`go/unhandled-writable-file-close`, and :code:`go/unexpected-nil-value`. +* The tag :code:`useless-code` has been added to :code:`go/useless-assignment-to-field`, :code:`go/useless-assignment-to-local`, :code:`go/useless-expression`, and :code:`go/unreachable-statement`. +* The tag :code:`logic` has been removed from :code:`go/index-out-of-bounds` and :code:`go/unexpected-nil-value`. +* The tags :code:`call` and :code:`defer` have been removed from :code:`go/unhandled-writable-file-close`. +* The tags :code:`correctness` and :code:`quality` have been reordered in :code:`go/missing-error-check` and :code:`go/unhandled-writable-file-close`. +* The tag :code:`maintainability` has been changed to :code:`reliability` for :code:`go/unhandled-writable-file-close`. +* The tag order has been standardized to have :code:`quality` first, followed by the top-level category (:code:`reliability` or :code:`maintainability`), then sub-category tags, and finally CWE tags. +* The description text has been updated in :code:`go/whitespace-contradicts-precedence` to change "may even indicate" to "may indicate". + +Java/Kotlin +""""""""""" + +* The tag :code:`quality` has been added to multiple Java quality queries for consistency. They have all been given a tag for one of the two top-level categories :code:`reliability` or :code:`maintainability`, and a tag for a sub-category. See `Query file metadata and alert message style guide `__ for more information about these categories. +* The tag :code:`external/cwe/cwe-571` has been added to :code:`java/equals-on-unrelated-types`. +* The tag :code:`readability` has been added to :code:`java/missing-override-annotation`, :code:`java/deprecated-call`, :code:`java/inconsistent-javadoc-throws`, :code:`java/unknown-javadoc-parameter`, :code:`java/jdk-internal-api-access`, :code:`java/underscore-identifier`, :code:`java/misleading-indentation`, :code:`java/inefficient-empty-string-test`, :code:`java/non-static-nested-class`, :code:`inefficient-string-constructor`, and :code:`java/constants-only-interface`. +* The tag :code:`useless-code` has been added to :code:`java/useless-type-test`, and :code:`java/useless-tostring-call`. +* The tag :code:`complexity` has been added to :code:`java/chained-type-tests`, and :code:`java/abstract-to-concrete-cast`. +* The tag :code:`error-handling` has been added to :code:`java/ignored-error-status-of-call`, and :code:`java/uncaught-number-format-exception`. +* The tag :code:`correctness` has been added to :code:`java/evaluation-to-constant`, :code:`java/whitespace-contradicts-precedence`, :code:`java/empty-container`, :code:`java/string-buffer-char-init`, :code:`java/call-to-object-tostring`, :code:`java/print-array` and :code:`java/internal-representation-exposure`. +* The tag :code:`performance` has been added to :code:`java/input-resource-leak`, :code:`java/database-resource-leak`, :code:`java/output-resource-leak`, :code:`java/inefficient-key-set-iterator`, :code:`java/inefficient-output-stream`, and :code:`java/inefficient-boxed-constructor`. +* The tag :code:`correctness` has been removed from :code:`java/call-to-thread-run`, :code:`java/unsafe-double-checked-locking`, :code:`java/unsafe-double-checked-locking-init-order`, :code:`java/non-sync-override`, :code:`java/sync-on-boxed-types`, :code:`java/unsynchronized-getter`, :code:`java/input-resource-leak`, :code:`java/output-resource-leak`, :code:`java/database-resource-leak`, and :code:`java/ignored-error-status-of-call`. +* The tags :code:`maintainability` has been removed from :code:`java/string-buffer-char-init`, :code:`java/inefficient-key-set-iterator`, :code:`java/inefficient-boxed-constructor`, and :code:`java/internal-representation-exposure`. +* The tags :code:`reliability` has been removed from :code:`java/subtle-inherited-call`, :code:`java/print-array`, and :code:`java/call-to-object-tostring`. +* The tags :code:`maintainability` and :code:`useless-code` have been removed from :code:`java/evaluation-to-constant`. +* The tags :code:`maintainability` and :code:`readability` have been removed from :code:`java/whitespace-contradicts-precedence`. +* The tags :code:`maintainability` and :code:`useless-code` have been removed from :code:`java/empty-container`. +* Adjusts the :code:`@precision` from high to medium for :code:`java/concatenated-command-line` because it is producing false positive alerts when the concatenated strings are hard-coded. +* Adjusts the :code:`@security-severity` from 9.3 to 7.3 for :code:`java/tainted-format-string` to align :code:`CWE-134` severity for memory safe languages to better reflect their impact. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The :code:`quality` tag has been added to multiple JavaScript quality queries, with tags for :code:`reliability` or :code:`maintainability` categories and their sub-categories. See `Query file metadata and alert message style guide `__ for more information about these categories. +* Added :code:`reliability` tag to the :code:`js/suspicious-method-name-declaration` query. +* Added :code:`reliability` and :code:`language-features` tags to the :code:`js/template-syntax-in-string-literal` query. + +Python +"""""" + +* The tag :code:`quality` has been added to multiple Python quality queries for consistency. They have all been given a tag for one of the two top-level categories :code:`reliability` or :code:`maintainability`, and a tag for a sub-category. See `Query file metadata and alert message style guide `__ for more information about these categories. + +Ruby +"""" + +* Update query metadata tags for :code:`rb/database-query-in-loop` and :code:`rb/useless-assignment-to-local` to align with the established + \ `Query file metadata and alert message style guide `__. + +Swift +""""" + +* Adjusts the :code:`@security-severity` from 9.3 to 7.3 for :code:`swift/uncontrolled-format-string` to align :code:`CWE-134` severity for memory safe languages to better reflect their impact. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +C/C++ +""""" + +* :code:`resolveTypedefs` now properly resolves typedefs for :code:`ArrayType`\ s. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Java/Kotlin +""""""""""" + +* Java :code:`assert` statements are now assumed to be executed for the purpose of analysing control flow. This improves precision for a number of queries. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Calls to :code:`sinon.match()` are no longer incorrectly identified as regular expression operations. +* Improved data flow tracking through middleware to handle default value and similar patterns. +* Added :code:`req._parsedUrl` as a remote input source. +* Improved taint tracking through calls to :code:`serialize-javascript`. +* Removed :code:`encodeURI` and :code:`escape` functions from the sanitizer list for request forgery. +* The JavaScript extractor now skips generated JavaScript files if the original TypeScript files are already present. It also skips any files in the output directory specified in the :code:`compilerOptions` part of the :code:`tsconfig.json` file. +* Added support for Axios instances in the :code:`axios` module. + +GitHub Actions +"""""""""""""" + +* Fixed performance issues in the parsing of Bash scripts in workflow files, + which led to out-of-disk errors when analysing certain workflow files with complex interpolations of shell commands or quoted strings. + +Deprecated APIs +~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`ThrowingFunction` class (:code:`semmle.code.cpp.models.interfaces.Throwing`) has been deprecated. Please use the :code:`AlwaysSehThrowingFunction` class instead. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Added a predicate :code:`getAnAttribute` to :code:`Namespace` to retrieve a namespace attribute. +* The Microsoft-specific :code:`__leave` statement is now supported. +* A new class :code:`LeaveStmt` extending :code:`JumpStmt` was added to represent :code:`__leave` statements. +* Added a predicate :code:`hasParameterList` to :code:`LambdaExpression` to capture whether a lambda has an explicitly specified parameter list. + +Rust +"""" + +* Initial public preview release. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index af427fd69150..53603bb44a34 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 + diff --git a/docs/codeql/reusables/download-github-database.rst b/docs/codeql/reusables/download-github-database.rst index e416d3cd8ecf..e2b2303c2fa8 100644 --- a/docs/codeql/reusables/download-github-database.rst +++ b/docs/codeql/reusables/download-github-database.rst @@ -3,12 +3,12 @@ GitHub stores CodeQL databases for over 200,000 repos on GitHub.com, which you c You can check if a repository has any CodeQL databases available for download using the ``/repos///code-scanning/codeql/databases`` endpoint. For example, to check for CodeQL databases using the `GitHub CLI `__ you would run:: - gh api /repos///code-scanning/codeql/databases + gh api repos///code-scanning/codeql/databases This command returns information about any CodeQL databases that are available for a repository, including the language the database represents, and when the database was last updated. If no CodeQL databases are available, the response is empty. When you have confirmed that a CodeQL database exists for the language you are interested in, you can download it using the following command:: - gh api /repos///code-scanning/codeql/databases/ -H 'Accept: application/zip' > path/to/local/database.zip + gh api repos///code-scanning/codeql/databases/ -H 'Accept: application/zip' > path/to/local/database.zip For more information, see the documentation for the `Get CodeQL database `__ endpoint in the GitHub REST API documentation. diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 904a60b71cbd..78641764660b 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -21,7 +21,7 @@ Java,"Java 7 to 24 [6]_","javac (OpenJDK and Oracle JDK), Eclipse compiler for Java (ECJ) [7]_",``.java`` - Kotlin,"Kotlin 1.6.0 to 2.2.0\ *x*","kotlinc",``.kt`` + Kotlin,"Kotlin 1.6.0 to 2.2.2\ *x*","kotlinc",``.kt`` JavaScript,ECMAScript 2022 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [8]_" Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" diff --git a/docs/query-metadata-style-guide.md b/docs/query-metadata-style-guide.md index 18fa5d1880f5..f6cc6f883fc1 100644 --- a/docs/query-metadata-style-guide.md +++ b/docs/query-metadata-style-guide.md @@ -157,7 +157,7 @@ Each code quality related query should have **one** of these two "top-level" cat * `@tags maintainability`–for queries that detect patterns that make it harder for developers to make changes to the code. * `@tags reliability`–for queries that detect issues that affect whether the code will perform as expected during execution. -In addition to the "top-level" categories, we will also add sub-categories to further group code quality related queries: +In addition to the "top-level" categories, we may also add sub-categories to further group code quality related queries: * `@tags maintainability`–for queries that detect patterns that make it harder for developers to make changes to the code. * `@tags readability`–for queries that detect confusing patterns that make it harder for developers to read the code. @@ -171,6 +171,7 @@ In addition to the "top-level" categories, we will also add sub-categories to fu * `@tags concurrency`-for queries that detect concurrency related issues such as race conditions, deadlocks, thread safety, etc * `@tags error-handling`-for queries that detect issues related to unsafe error handling such as uncaught exceptions, etc +You may use sub-categories from both top-level categories on the same query. However, if you only use sub-categories from a single top-level category, then you must also tag the query with that top-level category. There are also more specific `@tags` that can be added. See, the following pages for examples of the low-level tags: diff --git a/go/actions/test/action.yml b/go/actions/test/action.yml index 667ee4751ba9..f777535fec17 100644 --- a/go/actions/test/action.yml +++ b/go/actions/test/action.yml @@ -9,10 +9,6 @@ inputs: description: Whether to run formatting, code and qhelp generation checks required: false default: false - dynamic-join-order-mode: - description: Value of the --dynamic-join-order-mode flag to pass to the codeql test command - required: false - default: "none" runs: using: composite steps: @@ -67,15 +63,3 @@ runs: with: name: qhelp-markdown path: go/qhelp-out/**/*.md - - - name: Cache compilation cache - id: query-cache - uses: ./.github/actions/cache-query-compilation - with: - key: go-qltest - - - name: Test - shell: bash - run: | - cd go - make test cache="${{ steps.query-cache.outputs.cache-dir }}" rtjo=${{ inputs.dynamic-join-order-mode }} diff --git a/go/extractor/go.mod b/go/extractor/go.mod index 8dce8565a58a..927cf8e05123 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -9,8 +9,8 @@ toolchain go1.24.0 // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.25.0 - golang.org/x/tools v0.34.0 + golang.org/x/mod v0.26.0 + golang.org/x/tools v0.35.0 ) -require golang.org/x/sync v0.15.0 // indirect +require golang.org/x/sync v0.16.0 // indirect diff --git a/go/extractor/go.sum b/go/extractor/go.sum index c6a97825c8a1..58f0d0b933bb 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -1,8 +1,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= -golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= -golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= -golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= +golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= +golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 0d814dec385b..6e50e04a5141 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.28 + +No user-facing changes. + +## 1.0.27 + +No user-facing changes. + ## 1.0.26 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.27.md b/go/ql/consistency-queries/change-notes/released/1.0.27.md new file mode 100644 index 000000000000..a16f9fe5eebb --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.27.md @@ -0,0 +1,3 @@ +## 1.0.27 + +No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.28.md b/go/ql/consistency-queries/change-notes/released/1.0.28.md new file mode 100644 index 000000000000..d851ee200cbe --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.28.md @@ -0,0 +1,3 @@ +## 1.0.28 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index 125d169e44f8..328402fb34f0 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.26 +lastReleaseVersion: 1.0.28 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 1dc60b720290..f3a029e2eef5 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.26 +version: 1.0.28 groups: - go - queries diff --git a/go/ql/integration-tests/bazel-sample-1/src/go.mod b/go/ql/integration-tests/bazel-sample-1/src/go.mod index ecaae99ba560..babe05def2b2 100644 --- a/go/ql/integration-tests/bazel-sample-1/src/go.mod +++ b/go/ql/integration-tests/bazel-sample-1/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module bazelsample diff --git a/go/ql/integration-tests/bazel-sample-1/src/go.sum b/go/ql/integration-tests/bazel-sample-1/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/bazel-sample-1/src/go.sum +++ b/go/ql/integration-tests/bazel-sample-1/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/bazel-sample-2/src/go.mod b/go/ql/integration-tests/bazel-sample-2/src/go.mod index ecaae99ba560..babe05def2b2 100644 --- a/go/ql/integration-tests/bazel-sample-2/src/go.mod +++ b/go/ql/integration-tests/bazel-sample-2/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module bazelsample diff --git a/go/ql/integration-tests/bazel-sample-2/src/go.sum b/go/ql/integration-tests/bazel-sample-2/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/bazel-sample-2/src/go.sum +++ b/go/ql/integration-tests/bazel-sample-2/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/go-mod-sample/src/go.mod b/go/ql/integration-tests/go-mod-sample/src/go.mod index 35b1caa17f4a..8d994ee3c125 100644 --- a/go/ql/integration-tests/go-mod-sample/src/go.mod +++ b/go/ql/integration-tests/go-mod-sample/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module makesample diff --git a/go/ql/integration-tests/go-mod-sample/src/go.sum b/go/ql/integration-tests/go-mod-sample/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/go-mod-sample/src/go.sum +++ b/go/ql/integration-tests/go-mod-sample/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/make-sample/src/go.mod b/go/ql/integration-tests/make-sample/src/go.mod index 35b1caa17f4a..8d994ee3c125 100644 --- a/go/ql/integration-tests/make-sample/src/go.mod +++ b/go/ql/integration-tests/make-sample/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module makesample diff --git a/go/ql/integration-tests/make-sample/src/go.sum b/go/ql/integration-tests/make-sample/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/make-sample/src/go.sum +++ b/go/ql/integration-tests/make-sample/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/mixed-layout/src/workspace/go.work b/go/ql/integration-tests/mixed-layout/src/workspace/go.work index 434b740cd224..e7e866fbe27d 100644 --- a/go/ql/integration-tests/mixed-layout/src/workspace/go.work +++ b/go/ql/integration-tests/mixed-layout/src/workspace/go.work @@ -1,5 +1,3 @@ -go 1.23.0 - -toolchain go1.23.2 +go 1.22.0 use ./subdir diff --git a/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.mod b/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.mod index f0fcd633bc30..b4ed08ff30be 100644 --- a/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.mod +++ b/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.mod @@ -1,9 +1,7 @@ -go 1.23.0 +go 1.22.0 -toolchain go1.23.2 +require golang.org/x/net v0.23.0 -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/sys v0.18.0 // indirect module subdir diff --git a/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.sum b/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.sum index c60ab41465e2..98d0ad505a69 100644 --- a/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.sum +++ b/go/ql/integration-tests/mixed-layout/src/workspace/subdir/go.sum @@ -1,4 +1,4 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/go/ql/integration-tests/ninja-sample/src/go.mod b/go/ql/integration-tests/ninja-sample/src/go.mod index 35b1caa17f4a..8d994ee3c125 100644 --- a/go/ql/integration-tests/ninja-sample/src/go.mod +++ b/go/ql/integration-tests/ninja-sample/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module makesample diff --git a/go/ql/integration-tests/ninja-sample/src/go.sum b/go/ql/integration-tests/ninja-sample/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/ninja-sample/src/go.sum +++ b/go/ql/integration-tests/ninja-sample/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.mod b/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.mod index f0fcd633bc30..c7060dfa0de9 100644 --- a/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.mod +++ b/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module subdir diff --git a/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.sum b/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.sum +++ b/go/ql/integration-tests/single-go-mod-and-go-files-not-under-it/src/subdir/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/single-go-mod-in-root/src/go.mod b/go/ql/integration-tests/single-go-mod-in-root/src/go.mod index 7c062bcacf8b..b6d7e456852b 100644 --- a/go/ql/integration-tests/single-go-mod-in-root/src/go.mod +++ b/go/ql/integration-tests/single-go-mod-in-root/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module test diff --git a/go/ql/integration-tests/single-go-mod-in-root/src/go.sum b/go/ql/integration-tests/single-go-mod-in-root/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/single-go-mod-in-root/src/go.sum +++ b/go/ql/integration-tests/single-go-mod-in-root/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.mod b/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.mod index f0fcd633bc30..c7060dfa0de9 100644 --- a/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.mod +++ b/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module subdir diff --git a/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.sum b/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.sum +++ b/go/ql/integration-tests/single-go-mod-not-in-root/src/subdir/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/go.work b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/go.work index 58590722fe3c..6610d43e9c0e 100644 --- a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/go.work +++ b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/go.work @@ -1,6 +1,4 @@ -go 1.23.0 - -toolchain go1.23.2 +go 1.19 use ( ./subdir1 diff --git a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.mod b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.mod index 326818c22e4c..4b99f58c0eb0 100644 --- a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.mod +++ b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module subdir1 diff --git a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.sum b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.sum +++ b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir1/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.mod b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.mod index 4ee54ae3890e..5da75a136d9b 100644 --- a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.mod +++ b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module subdir2 diff --git a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.sum b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.sum +++ b/go/ql/integration-tests/single-go-work-not-in-root/src/modules/subdir2/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/test-extraction/src/go.sum b/go/ql/integration-tests/test-extraction/src/go.sum index e69de29bb2d1..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/test-extraction/src/go.sum +++ b/go/ql/integration-tests/test-extraction/src/go.sum @@ -0,0 +1,45 @@ +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/traced-extraction/src/go.sum b/go/ql/integration-tests/traced-extraction/src/go.sum index e69de29bb2d1..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/traced-extraction/src/go.sum +++ b/go/ql/integration-tests/traced-extraction/src/go.sum @@ -0,0 +1,45 @@ +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.mod b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.mod index 7c062bcacf8b..b6d7e456852b 100644 --- a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.mod +++ b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module test diff --git a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.sum b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.sum +++ b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.mod b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.mod index 620df2856ee2..4b99f58c0eb0 100644 --- a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.mod +++ b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.40.0 - -require golang.org/x/sys v0.33.0 // indirect +require golang.org/x/net v0.23.0 module subdir1 diff --git a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.sum b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.sum index 5b3bc988d1a9..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.sum +++ b/go/ql/integration-tests/two-go-mods-nested-none-in-root/src/subdir0/subdir1/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.mod b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.mod index cc68a350ef7f..284b506c63fa 100644 --- a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.mod +++ b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module main diff --git a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.sum b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.sum +++ b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.mod b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.mod index 620df2856ee2..147c51b83862 100644 --- a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.mod +++ b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.40.0 - -require golang.org/x/sys v0.33.0 // indirect +require golang.org/x/net v0.0.0-20200505041828-1ed23360d12c module subdir1 diff --git a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.sum b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.sum index 5b3bc988d1a9..6c5ffa613d0a 100644 --- a/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.sum +++ b/go/ql/integration-tests/two-go-mods-nested-one-in-root/src/subdir1/go.sum @@ -1,4 +1,7 @@ -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c h1:zJ0mtu4jCalhKg6Oaukv6iIkb+cOvDrajDH9DH46Q4M= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.mod b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.mod index 326818c22e4c..4b99f58c0eb0 100644 --- a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.mod +++ b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module subdir1 diff --git a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.sum b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.sum +++ b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir1/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.mod b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.mod index 4ee54ae3890e..c6eec7d9ca51 100644 --- a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.mod +++ b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.0.0-20200505041828-1ed23360d12c module subdir2 diff --git a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.sum b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.sum index c60ab41465e2..6c5ffa613d0a 100644 --- a/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.sum +++ b/go/ql/integration-tests/two-go-mods-not-nested/src/subdir2/go.sum @@ -1,4 +1,7 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c h1:zJ0mtu4jCalhKg6Oaukv6iIkb+cOvDrajDH9DH46Q4M= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.mod b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.mod index 326818c22e4c..4b99f58c0eb0 100644 --- a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.mod +++ b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.mod @@ -1,9 +1,5 @@ -go 1.23.0 +go 1.14 -toolchain go1.23.2 - -require golang.org/x/net v0.39.0 - -require golang.org/x/sys v0.32.0 // indirect +require golang.org/x/net v0.23.0 module subdir1 diff --git a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.sum b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.sum index c60ab41465e2..a8e1b59ae4b1 100644 --- a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.sum +++ b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir1/go.sum @@ -1,4 +1,45 @@ -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.mod b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.mod index f33ad2ef3e86..7a2ca787004f 100644 --- a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.mod +++ b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.mod @@ -1,5 +1,7 @@ go 1.14 -require github.com/microsoft/go-mssqldb v0.12.0 +require ( + github.com/microsoft/go-mssqldb v0.12.0 +) module subdir2 diff --git a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.sum b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.sum index 506dc22b5e60..432407e3db02 100644 --- a/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.sum +++ b/go/ql/integration-tests/two-go-mods-one-failure/src/subdir2/go.sum @@ -1 +1,30 @@ -github.com/microsoft/go-mssqldb v0.12.0 h1:nuQ0ygjq+dPZx78vkGH98aXZsk8tIdWHJaFV7ydhnqs= +github.com/Azure/go-autorest v13.3.2+incompatible h1:VxzPyuhtnlBOzc4IWCZHqpyH2d+QMLQEuy3wREyY4oc= +github.com/Azure/go-autorest/autorest v0.9.0 h1:MRvx8gncNaXJqOoLmhNjUAKh33JJF8LyxPhomEtOsjs= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest v0.9.4 h1:1cM+NmKw91+8h5vfjgzK4ZGLuN72k87XVZBWyGwNjUM= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.8.1 h1:pZdL8o72rK+avFWl+p9nE8RWi1JInZrWJYlnpfXJwHk= +github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= +github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/microsoft/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73 h1:OGNva6WhsKst5OZf7eZOklDztV3hwtTHovdrLHV+MsA= +github.com/microsoft/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vKV/xzVTO7XPAwm8xbf4w2g= +golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index c5fac252869a..b047f838925b 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,19 @@ +## 4.3.1 + +No user-facing changes. + +## 4.3.0 + +### Deprecated APIs + +* The class `BuiltinType` is now deprecated. Use the new replacement `BuiltinTypeEntity` instead. +* The class `DeclaredType` is now deprecated. Use the new replacement `DeclaredTypeEntity` instead. + +### Minor Analysis Improvements + +* Added models for the `Head` function and the `Client.Head` method, from the `net/http` package, to the `Http::ClientRequest` class. This means that they will be recognized as sinks for the query `go/request-forgery` and the experimental query `go/ssrf`. +* Previously, `DefinedType.getBaseType` gave the underlying type. It now gives the right hand side of the type declaration, as the documentation indicated that it should. + ## 4.2.8 No user-facing changes. diff --git a/go/ql/lib/change-notes/released/4.3.0.md b/go/ql/lib/change-notes/released/4.3.0.md new file mode 100644 index 000000000000..2b2369b2d690 --- /dev/null +++ b/go/ql/lib/change-notes/released/4.3.0.md @@ -0,0 +1,11 @@ +## 4.3.0 + +### Deprecated APIs + +* The class `BuiltinType` is now deprecated. Use the new replacement `BuiltinTypeEntity` instead. +* The class `DeclaredType` is now deprecated. Use the new replacement `DeclaredTypeEntity` instead. + +### Minor Analysis Improvements + +* Added models for the `Head` function and the `Client.Head` method, from the `net/http` package, to the `Http::ClientRequest` class. This means that they will be recognized as sinks for the query `go/request-forgery` and the experimental query `go/ssrf`. +* Previously, `DefinedType.getBaseType` gave the underlying type. It now gives the right hand side of the type declaration, as the documentation indicated that it should. diff --git a/go/ql/lib/change-notes/released/4.3.1.md b/go/ql/lib/change-notes/released/4.3.1.md new file mode 100644 index 000000000000..dbc6b39e3ecf --- /dev/null +++ b/go/ql/lib/change-notes/released/4.3.1.md @@ -0,0 +1,3 @@ +## 4.3.1 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 9b51fbc5ce54..70ac3707fcda 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.2.8 +lastReleaseVersion: 4.3.1 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 3ec41de9accc..f876ed5fbbaa 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.2.8 +version: 4.3.1 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/lib/semmle/go/Decls.qll b/go/ql/lib/semmle/go/Decls.qll index 785a09b25499..9d1e4d2611a9 100644 --- a/go/ql/lib/semmle/go/Decls.qll +++ b/go/ql/lib/semmle/go/Decls.qll @@ -381,10 +381,20 @@ class TypeSpec extends @typespec, Spec, TypeParamDeclParent { string getName() { result = this.getNameExpr().getName() } /** - * Gets the expression denoting the underlying type to which the newly declared type is bound. + * Gets the declared type of this specifier. + * + * Note that for alias types this will give the underlying type. + */ + Type getDeclaredType() { result = this.getNameExpr().getType() } + + /** + * Gets the expression denoting the underlying type to which the declared type is bound. */ Expr getTypeExpr() { result = this.getChildExpr(1) } + /** Gets the underlying type to which the declared type is bound. */ + Type getRhsType() { result = this.getTypeExpr().getType() } + override string toString() { result = "type declaration specifier" } override string getAPrimaryQlClass() { result = "TypeSpec" } @@ -461,6 +471,7 @@ class FieldBase extends @field, ExprParent { * Examples: * * ```go + * io.Reader * Name string `json:"name"` * x, y int * ``` @@ -469,8 +480,9 @@ class FieldBase extends @field, ExprParent { * * ```go * struct { - * Name string `json:"name"` - * x, y int + * io.Reader // embedded field + * Name string `json:"name"` // field with tag + * x, y int // declares two fields with the same type * } * ``` */ @@ -482,12 +494,24 @@ class FieldDecl extends FieldBase, Documentable, ExprParent { /** * Gets the expression representing the name of the `i`th field declared in this declaration * (0-based). + * + * This is not defined for embedded fields. */ Expr getNameExpr(int i) { i >= 0 and result = this.getChildExpr(i + 1) } + /** + * Gets the `i`th field declared in this declaration (0-based). + * + * This is not defined for embedded fields. + */ + Field getField(int i) { this.getNameExpr(i).(Ident).declares(result) } + + /** Holds if this field declaration declares an embedded type. */ + predicate isEmbedded() { not exists(this.getNameExpr(_)) } + /** Gets the tag expression of this field declaration, if any. */ Expr getTag() { result = this.getChildExpr(-1) } diff --git a/go/ql/lib/semmle/go/Scopes.qll b/go/ql/lib/semmle/go/Scopes.qll index 82b4db7e3221..2ab08b5b5b4f 100644 --- a/go/ql/lib/semmle/go/Scopes.qll +++ b/go/ql/lib/semmle/go/Scopes.qll @@ -202,13 +202,19 @@ class TypeEntity extends Entity, @typeobject { } class TypeParamParentEntity extends Entity, @typeparamparentobject { } /** A named type which has a declaration. */ -class DeclaredType extends TypeEntity, DeclaredEntity, TypeParamParentEntity, @decltypeobject { +class DeclaredTypeEntity extends TypeEntity, DeclaredEntity, TypeParamParentEntity, @decltypeobject { /** Gets the declaration specifier declaring this type. */ TypeSpec getSpec() { result.getNameExpr() = this.getDeclaration() } } +/** DEPRECATED: Use `DeclaredTypeEntity` instead. */ +deprecated class DeclaredType = DeclaredTypeEntity; + /** A built-in type. */ -class BuiltinType extends TypeEntity, BuiltinEntity, @builtintypeobject { } +class BuiltinTypeEntity extends TypeEntity, BuiltinEntity, @builtintypeobject { } + +/** DEPRECATED: Use `BuiltinTypeEntity` instead. */ +deprecated class BuiltinType = BuiltinTypeEntity; /** A built-in or declared constant, variable, field, method or function. */ class ValueEntity extends Entity, @valueobject { @@ -754,64 +760,64 @@ private predicate builtinFunction( module Builtin { // built-in types /** Gets the built-in type `bool`. */ - BuiltinType bool() { result.getName() = "bool" } + BuiltinTypeEntity bool() { result.getName() = "bool" } /** Gets the built-in type `byte`. */ - BuiltinType byte() { result.getName() = "byte" } + BuiltinTypeEntity byte() { result.getName() = "byte" } /** Gets the built-in type `complex64`. */ - BuiltinType complex64() { result.getName() = "complex64" } + BuiltinTypeEntity complex64() { result.getName() = "complex64" } /** Gets the built-in type `complex128`. */ - BuiltinType complex128() { result.getName() = "complex128" } + BuiltinTypeEntity complex128() { result.getName() = "complex128" } /** Gets the built-in type `error`. */ - BuiltinType error() { result.getName() = "error" } + BuiltinTypeEntity error() { result.getName() = "error" } /** Gets the built-in type `float32`. */ - BuiltinType float32() { result.getName() = "float32" } + BuiltinTypeEntity float32() { result.getName() = "float32" } /** Gets the built-in type `float64`. */ - BuiltinType float64() { result.getName() = "float64" } + BuiltinTypeEntity float64() { result.getName() = "float64" } /** Gets the built-in type `int`. */ - BuiltinType int_() { result.getName() = "int" } + BuiltinTypeEntity int_() { result.getName() = "int" } /** Gets the built-in type `int8`. */ - BuiltinType int8() { result.getName() = "int8" } + BuiltinTypeEntity int8() { result.getName() = "int8" } /** Gets the built-in type `int16`. */ - BuiltinType int16() { result.getName() = "int16" } + BuiltinTypeEntity int16() { result.getName() = "int16" } /** Gets the built-in type `int32`. */ - BuiltinType int32() { result.getName() = "int32" } + BuiltinTypeEntity int32() { result.getName() = "int32" } /** Gets the built-in type `int64`. */ - BuiltinType int64() { result.getName() = "int64" } + BuiltinTypeEntity int64() { result.getName() = "int64" } /** Gets the built-in type `rune`. */ - BuiltinType rune() { result.getName() = "rune" } + BuiltinTypeEntity rune() { result.getName() = "rune" } /** Gets the built-in type `string`. */ - BuiltinType string_() { result.getName() = "string" } + BuiltinTypeEntity string_() { result.getName() = "string" } /** Gets the built-in type `uint`. */ - BuiltinType uint() { result.getName() = "uint" } + BuiltinTypeEntity uint() { result.getName() = "uint" } /** Gets the built-in type `uint8`. */ - BuiltinType uint8() { result.getName() = "uint8" } + BuiltinTypeEntity uint8() { result.getName() = "uint8" } /** Gets the built-in type `uint16`. */ - BuiltinType uint16() { result.getName() = "uint16" } + BuiltinTypeEntity uint16() { result.getName() = "uint16" } /** Gets the built-in type `uint32`. */ - BuiltinType uint32() { result.getName() = "uint32" } + BuiltinTypeEntity uint32() { result.getName() = "uint32" } /** Gets the built-in type `uint64`. */ - BuiltinType uint64() { result.getName() = "uint64" } + BuiltinTypeEntity uint64() { result.getName() = "uint64" } /** Gets the built-in type `uintptr`. */ - BuiltinType uintptr() { result.getName() = "uintptr" } + BuiltinTypeEntity uintptr() { result.getName() = "uintptr" } // built-in constants /** Gets the built-in constant `true`. */ diff --git a/go/ql/lib/semmle/go/Types.qll b/go/ql/lib/semmle/go/Types.qll index d6765f136628..d377cb2c9d87 100644 --- a/go/ql/lib/semmle/go/Types.qll +++ b/go/ql/lib/semmle/go/Types.qll @@ -1038,8 +1038,15 @@ deprecated class NamedType = DefinedType; /** A defined type. */ class DefinedType extends @definedtype, CompositeType { - /** Gets the type which this type is defined to be. */ - Type getBaseType() { underlying_type(this, result) } + /** + * Gets the type which this type is defined to be, if available. + * + * Note that this is only defined for types declared in the project being + * analyzed. It will not be defined for types declared in external packages. + */ + Type getBaseType() { + result = this.getEntity().(DeclaredTypeEntity).getSpec().getTypeExpr().getType() + } override Method getMethod(string m) { result = CompositeType.super.getMethod(m) @@ -1049,7 +1056,7 @@ class DefinedType extends @definedtype, CompositeType { or // handle promoted methods exists(StructType s, Type embedded | - s = this.getBaseType() and + s = this.getUnderlyingType() and s.hasOwnField(_, _, embedded, true) and // ensure `m` can be promoted not s.hasOwnField(_, m, _, _) and @@ -1063,7 +1070,7 @@ class DefinedType extends @definedtype, CompositeType { ) } - override Type getUnderlyingType() { result = this.getBaseType().getUnderlyingType() } + override Type getUnderlyingType() { underlying_type(this, result) } } /** diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll index 58b849858416..aa9c9da1bd13 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll @@ -4,11 +4,11 @@ */ private import go -private import DataFlowImplSpecific +private import DataFlowImplSpecific as Impl private import TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency private import semmle.go.dataflow.internal.DataFlowNodes -private module Input implements InputSig { } +private module Input implements InputSig { } -module Consistency = MakeConsistency; +module Consistency = MakeConsistency; diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll index dded5092bcc3..9a917f05ff5c 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll @@ -179,12 +179,11 @@ module NetHttp { private class RequestCall extends Http::ClientRequest::Range, DataFlow::CallNode { RequestCall() { exists(string functionName | - ( - this.getTarget().hasQualifiedName("net/http", functionName) - or - this.getTarget().(Method).hasQualifiedName("net/http", "Client", functionName) - ) and - (functionName = "Get" or functionName = "Post" or functionName = "PostForm") + this.getTarget().hasQualifiedName("net/http", functionName) + or + this.getTarget().(Method).hasQualifiedName("net/http", "Client", functionName) + | + functionName = ["Get", "Head", "Post", "PostForm"] ) } diff --git a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll index df601ce1eb84..39db60de4830 100644 --- a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll +++ b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll @@ -243,4 +243,20 @@ module TaintedPath { override predicate checks(Expr e, boolean branch) { regexpFunctionChecksExpr(this, e, branch) } } + + /** + * A call of the form `filepath.IsLocal(path)` considered as a sanitizer guard for `path`. + */ + class IsLocalCheck extends SanitizerGuard, DataFlow::CallNode { + IsLocalCheck() { + exists(Function f | + f.hasQualifiedName("path/filepath", "IsLocal") and + this = f.getACall() + ) + } + + override predicate checks(Expr e, boolean branch) { + e = this.getArgument(0).asExpr() and branch = true + } + } } diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 521c13208390..eb21b53b4f79 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.4.2 + +No user-facing changes. + +## 1.4.1 + +### Minor Analysis Improvements + +* `filepath.IsLocal` is now recognized as a sanitizer against path-traversal and related vulnerabilities. + ## 1.4.0 ### Query Metadata Changes diff --git a/go/ql/src/change-notes/released/1.4.1.md b/go/ql/src/change-notes/released/1.4.1.md new file mode 100644 index 000000000000..8d054d1eb688 --- /dev/null +++ b/go/ql/src/change-notes/released/1.4.1.md @@ -0,0 +1,5 @@ +## 1.4.1 + +### Minor Analysis Improvements + +* `filepath.IsLocal` is now recognized as a sanitizer against path-traversal and related vulnerabilities. diff --git a/go/ql/src/change-notes/released/1.4.2.md b/go/ql/src/change-notes/released/1.4.2.md new file mode 100644 index 000000000000..37be01f40d98 --- /dev/null +++ b/go/ql/src/change-notes/released/1.4.2.md @@ -0,0 +1,3 @@ +## 1.4.2 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index b8b2e97d5086..a76cacdf7997 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.0 +lastReleaseVersion: 1.4.2 diff --git a/go/ql/src/codeql-suites/go-security-and-quality.qls b/go/ql/src/codeql-suites/go-security-and-quality.qls index 1043f46b27f4..cb026a7700c9 100644 --- a/go/ql/src/codeql-suites/go-security-and-quality.qls +++ b/go/ql/src/codeql-suites/go-security-and-quality.qls @@ -1,4 +1,28 @@ - description: Security-and-quality queries for Go - queries: . -- apply: security-and-quality-selectors.yml +- apply: security-and-frozen-quality-selectors.yml from: codeql/suite-helpers +- include: + id: + - go/comparison-of-identical-expressions + - go/constant-length-comparison + - go/duplicate-branches + - go/duplicate-condition + - go/duplicate-switch-case + - go/impossible-interface-nil-check + - go/inconsistent-loop-direction + - go/index-out-of-bounds + - go/missing-error-check + - go/mistyped-exponentiation + - go/negative-length-check + - go/redundant-assignment + - go/redundant-operation + - go/redundant-recover + - go/shift-out-of-range + - go/unexpected-nil-value + - go/unhandled-writable-file-close + - go/unreachable-statement + - go/useless-assignment-to-field + - go/useless-assignment-to-local + - go/useless-expression + - go/whitespace-contradicts-precedence diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 25b99dd292b2..db5334b5d04b 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.4.0 +version: 1.4.2 groups: - go - queries diff --git a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected index 73f614a03f14..d4000d910cf1 100644 --- a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected +++ b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected @@ -1,2 +1,2 @@ -| main.go:3:6:3:15 | type declaration specifier | status | int | def | -| main.go:5:6:5:20 | type declaration specifier | intlist | []int | alias | +| main.go:3:6:3:15 | type declaration specifier | status | status | main.go:3:13:3:15 | int | int | def | +| main.go:5:6:5:20 | type declaration specifier | intlist | []int | main.go:5:16:5:20 | array type | []int | alias | diff --git a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql index 70a527d311c7..bbbc5345ed65 100644 --- a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql +++ b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql @@ -2,4 +2,4 @@ import go from TypeSpec ts, string kind where if ts instanceof AliasSpec then kind = "alias" else kind = "def" -select ts, ts.getName(), ts.getTypeExpr().getType().pp(), kind +select ts, ts.getName(), ts.getDeclaredType().pp(), ts.getTypeExpr(), ts.getRhsType().pp(), kind diff --git a/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected new file mode 100644 index 000000000000..123c6ac7a359 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected @@ -0,0 +1,112 @@ +| aliases.go:19:6:19:7 | S3 | struct { x int } | +| aliases.go:29:6:29:11 | MyType | struct { x MyTypeT } | +| cyclic.go:3:6:3:6 | s | struct { * s } | +| cyclic.go:7:6:7:6 | t | struct { * u; f int } | +| cyclic.go:12:6:12:6 | u | struct { t } | +| cyclic.go:16:6:16:6 | v | struct { s } | +| depth.go:5:6:5:6 | a | struct { b; c } | +| depth.go:10:6:10:6 | b | struct { f int } | +| depth.go:14:6:14:6 | c | struct { d } | +| depth.go:18:6:18:6 | d | struct { f string } | +| embedded.go:3:6:3:8 | Baz | struct { A string } | +| embedded.go:7:6:7:8 | Qux | struct { * Baz } | +| embedded.go:11:6:11:14 | EmbedsBaz | struct { Qux; Baz string } | +| generic.go:3:6:3:19 | GenericStruct1 | struct { valueField T; pointerField * T; arrayField [10]T; sliceField []T; mapField [string]T } | +| generic.go:11:6:11:27 | CircularGenericStruct1 | struct { pointerField * CircularGenericStruct1 } | +| generic.go:15:6:15:31 | UsesCircularGenericStruct1 | struct { root CircularGenericStruct1 } | +| generic.go:19:6:19:19 | GenericStruct2 | struct { structField GenericStruct1; mapField [S]T } | +| generic.go:24:6:24:20 | GenericStruct2b | struct { structField GenericStruct2 } | +| generic.go:28:6:28:27 | CircularGenericStruct2 | struct { pointerField * CircularGenericStruct2 } | +| generic.go:32:6:32:21 | GenericInterface | interface { GetT func() T } | +| generic.go:36:6:36:17 | GenericArray | [10]T | +| generic.go:37:6:37:19 | GenericPointer | * T | +| generic.go:38:6:38:17 | GenericSlice | []T | +| generic.go:39:6:39:16 | GenericMap1 | [string]V | +| generic.go:40:6:40:16 | GenericMap2 | [K]V | +| generic.go:41:6:41:19 | GenericChannel | chan<- T | +| generic.go:42:6:42:14 | MyMapType | [string]int | +| generic.go:43:6:43:19 | GenericDefined | MyMapType | +| generic.go:44:6:44:16 | MyFuncType1 | func(T) | +| generic.go:45:6:45:16 | MyFuncType2 | func(T1) T2 | +| generic.go:47:6:47:16 | MyInterface | interface { clone func() MyInterface; dummy1 func() [10]U; dummy11 func() GenericArray; dummy12 func() GenericPointer; dummy13 func() GenericSlice; dummy14 func() GenericMap1; dummy15 func() GenericMap2; dummy17 func() GenericChannel; dummy18 func() GenericDefined; dummy19 func() MyFuncType1; dummy2 func() * U; dummy20 func() MyFuncType2; dummy3 func() []U; dummy4 func() [U]U; dummy5 func() chan<- U; dummy6 func() MyMapType; dummy7 func() MyFuncType2 } | +| generic.go:67:6:67:22 | HasBlankTypeParam | struct { } | +| generic.go:68:6:68:23 | HasBlankTypeParams | struct { } | +| generic.go:84:6:84:21 | GenericSignature | func(T) T | +| interface.go:3:6:3:7 | i0 | comparable | +| interface.go:5:6:5:7 | i1 | interface { int } | +| interface.go:9:6:9:7 | i2 | interface { ~string } | +| interface.go:13:6:13:7 | i3 | interface { [5]int \| ~string } | +| interface.go:18:6:18:7 | i4 | interface { i1 \| i2 \| float32 } | +| interface.go:23:6:23:7 | i5 | interface { []uint8; int \| ~[]uint8 } | +| interface.go:28:6:28:7 | i6 | interface { ~[]int \| ~string; String func() string } | +| interface.go:34:6:34:7 | i7 | interface { [5]int \| ~string; ~string; String func() string } | +| interface.go:41:6:41:7 | i8 | interface { ~[]int \| ~string; String func() string; StringA func() string } | +| interface.go:47:6:47:7 | i9 | interface { ~[]int \| ~string; String func() string; StringB func() string } | +| interface.go:52:6:52:8 | i10 | interface { comparable } | +| interface.go:57:6:57:8 | i11 | interface { [5]uint8 \| string; int } | +| interface.go:63:6:63:8 | i12 | interface { comparable; []uint8 \| string } | +| interface.go:69:6:69:8 | i13 | interface { comparable; []uint8 \| string } | +| interface.go:75:6:75:8 | i14 | interface { []uint8 \| string; ~[]int \| ~string; String func() string; StringA func() string } | +| interface.go:81:6:81:8 | i15 | interface { []uint8 \| string; ~[]int \| ~string; String func() string; StringB func() string } | +| interface.go:87:6:87:8 | i16 | interface { } | +| interface.go:91:6:91:8 | i17 | interface { StringA func() string } | +| interface.go:95:6:95:8 | i18 | interface { comparable; StringA func() string } | +| interface.go:101:6:101:8 | i19 | interface { StringB func() string } | +| interface.go:105:6:105:8 | i20 | interface { comparable; StringB func() string } | +| interface.go:114:6:114:19 | testComparable | struct { } | +| interface.go:115:6:115:20 | testComparable0 | struct { } | +| interface.go:116:6:116:20 | testComparable1 | struct { } | +| interface.go:117:6:117:20 | testComparable2 | struct { } | +| interface.go:118:6:118:20 | testComparable3 | struct { } | +| interface.go:119:6:119:20 | testComparable4 | struct { } | +| interface.go:120:6:120:20 | testComparable5 | struct { } | +| interface.go:121:6:121:20 | testComparable6 | struct { } | +| interface.go:122:6:122:20 | testComparable7 | struct { } | +| interface.go:123:6:123:20 | testComparable8 | struct { } | +| interface.go:124:6:124:20 | testComparable9 | struct { } | +| interface.go:125:6:125:21 | testComparable10 | struct { } | +| interface.go:126:6:126:21 | testComparable11 | struct { } | +| interface.go:127:6:127:21 | testComparable12 | struct { } | +| interface.go:128:6:128:21 | testComparable13 | struct { } | +| interface.go:129:6:129:21 | testComparable14 | struct { } | +| interface.go:130:6:130:21 | testComparable15 | struct { } | +| interface.go:131:6:131:21 | testComparable16 | struct { } | +| interface.go:132:6:132:21 | testComparable17 | struct { } | +| interface.go:133:6:133:21 | testComparable18 | struct { } | +| interface.go:134:6:134:21 | testComparable19 | struct { } | +| interface.go:135:6:135:21 | testComparable20 | struct { } | +| interface.go:136:6:136:21 | testComparable21 | struct { } | +| interface.go:137:6:137:21 | testComparable22 | struct { } | +| interface.go:138:6:138:21 | testComparable23 | struct { } | +| main.go:17:6:17:20 | EmbedsNameClash | struct { NameClash } | +| pkg1/embedding.go:8:6:8:9 | base | struct { } | +| pkg1/embedding.go:19:6:19:13 | embedder | struct { base } | +| pkg1/embedding.go:22:6:22:16 | ptrembedder | struct { * base } | +| pkg1/embedding.go:25:6:25:14 | embedder2 | struct { embedder } | +| pkg1/embedding.go:28:6:28:14 | embedder3 | struct { embedder } | +| pkg1/embedding.go:35:6:35:14 | embedder4 | struct { base; f int } | +| pkg1/interfaces.go:3:6:3:6 | A | interface { m func() } | +| pkg1/interfaces.go:7:6:7:6 | B | interface { m func() ; n func() } | +| pkg1/interfaces.go:12:6:12:6 | C | interface { n func() ; o func() } | +| pkg1/interfaces.go:17:6:17:14 | AEmbedded | interface { m func() } | +| pkg1/interfaces.go:21:6:21:7 | AC | interface { m func() ; n func() ; o func() } | +| pkg1/interfaces.go:26:6:26:14 | AExtended | interface { m func() ; n func() } | +| pkg1/interfaces.go:31:6:31:7 | A2 | interface { m func() } | +| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | interface { Exported func() ; notExported func() } | +| pkg1/promotedStructs.go:4:6:4:6 | S | struct { SField string } | +| pkg1/promotedStructs.go:13:6:13:6 | P | struct { PField string } | +| pkg1/promotedStructs.go:22:6:22:12 | SEmbedS | struct { S } | +| pkg1/promotedStructs.go:25:6:25:12 | SEmbedP | struct { P } | +| pkg1/tst.go:5:6:5:6 | T | struct { f int; Foo; Bar } | +| pkg1/tst.go:11:6:11:7 | T2 | struct { Foo Foo; Bar } | +| pkg1/tst.go:16:6:16:7 | T3 | struct { * Foo; * Bar } | +| pkg1/tst.go:21:6:21:7 | T4 | struct { * Foo; Bar Bar } | +| pkg1/tst.go:26:6:26:8 | Foo | struct { val int; flag bool } | +| pkg1/tst.go:31:6:31:8 | Bar | struct { flag bool } | +| pkg1/tst.go:61:6:61:14 | NameClash | struct { NameClash } | +| pkg2/tst.go:3:6:3:6 | T | struct { g int } | +| pkg2/tst.go:7:6:7:6 | G | struct { g int } | +| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | interface { Exported func() ; notExported func() } | +| pkg2/tst.go:16:6:16:14 | NameClash | struct { NCField string } | +| struct_tags.go:3:6:3:7 | S1 | struct { field1 int `tag1a`; field2 int `tag2a` } | +| struct_tags.go:8:6:8:7 | S2 | struct { field1 int `tag1b`; field2 int `tag2b` } | diff --git a/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql new file mode 100644 index 000000000000..6b257110792a --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql @@ -0,0 +1,5 @@ +import go + +from DefinedType dt, Type tp +where tp = dt.getBaseType() +select dt, tp.pp() diff --git a/go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected new file mode 100644 index 000000000000..b1eb47a7945f --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected @@ -0,0 +1,70 @@ +fieldDeclWithNamedFields +| aliases.go:6:26:6:35 | field declaration | 0 | aliases.go:6:26:6:26 | x | +| aliases.go:6:26:6:35 | field declaration | 0 | aliases.go:8:26:8:26 | x | +| aliases.go:6:26:6:35 | field declaration | 0 | aliases.go:19:17:19:17 | x | +| aliases.go:8:26:8:35 | field declaration | 0 | aliases.go:6:26:6:26 | x | +| aliases.go:8:26:8:35 | field declaration | 0 | aliases.go:8:26:8:26 | x | +| aliases.go:8:26:8:35 | field declaration | 0 | aliases.go:19:17:19:17 | x | +| aliases.go:19:17:19:21 | field declaration | 0 | aliases.go:6:26:6:26 | x | +| aliases.go:19:17:19:21 | field declaration | 0 | aliases.go:8:26:8:26 | x | +| aliases.go:19:17:19:21 | field declaration | 0 | aliases.go:19:17:19:17 | x | +| aliases.go:29:34:29:42 | field declaration | 0 | aliases.go:29:34:29:34 | x | +| cyclic.go:9:2:9:6 | field declaration | 0 | cyclic.go:9:2:9:2 | f | +| depth.go:11:2:11:6 | field declaration | 0 | depth.go:11:2:11:2 | f | +| depth.go:19:2:19:9 | field declaration | 0 | depth.go:19:2:19:2 | f | +| embedded.go:4:2:4:9 | field declaration | 0 | embedded.go:4:2:4:2 | A | +| embedded.go:13:2:13:11 | field declaration | 0 | embedded.go:13:2:13:4 | Baz | +| generic.go:4:2:4:15 | field declaration | 0 | generic.go:4:2:4:11 | valueField | +| generic.go:5:2:5:16 | field declaration | 0 | generic.go:5:2:5:13 | pointerField | +| generic.go:6:2:6:19 | field declaration | 0 | generic.go:6:2:6:11 | arrayField | +| generic.go:7:2:7:17 | field declaration | 0 | generic.go:7:2:7:11 | sliceField | +| generic.go:8:2:8:26 | field declaration | 0 | generic.go:8:2:8:9 | mapField | +| generic.go:12:2:12:40 | field declaration | 0 | generic.go:12:2:12:13 | pointerField | +| generic.go:16:2:16:31 | field declaration | 0 | generic.go:16:2:16:5 | root | +| generic.go:20:2:20:30 | field declaration | 0 | generic.go:20:2:20:12 | structField | +| generic.go:21:2:21:20 | field declaration | 0 | generic.go:21:2:21:9 | mapField | +| generic.go:25:2:25:33 | field declaration | 0 | generic.go:25:2:25:12 | structField | +| generic.go:29:2:29:43 | field declaration | 0 | generic.go:29:2:29:13 | pointerField | +| pkg1/embedding.go:37:2:37:6 | field declaration | 0 | pkg1/embedding.go:37:2:37:2 | f | +| pkg1/promotedStructs.go:5:2:5:14 | field declaration | 0 | pkg1/promotedStructs.go:5:2:5:7 | SField | +| pkg1/promotedStructs.go:14:2:14:14 | field declaration | 0 | pkg1/promotedStructs.go:14:2:14:7 | PField | +| pkg1/tst.go:6:2:6:6 | field declaration | 0 | pkg1/tst.go:6:2:6:2 | f | +| pkg1/tst.go:12:2:12:8 | field declaration | 0 | pkg1/tst.go:12:2:12:4 | Foo | +| pkg1/tst.go:23:2:23:8 | field declaration | 0 | pkg1/tst.go:23:2:23:4 | Bar | +| pkg1/tst.go:27:2:27:9 | field declaration | 0 | pkg1/tst.go:27:2:27:4 | val | +| pkg1/tst.go:28:2:28:10 | field declaration | 0 | pkg1/tst.go:28:2:28:5 | flag | +| pkg1/tst.go:32:2:32:10 | field declaration | 0 | pkg1/tst.go:32:2:32:5 | flag | +| pkg2/tst.go:4:2:4:6 | field declaration | 0 | pkg2/tst.go:4:2:4:2 | g | +| pkg2/tst.go:4:2:4:6 | field declaration | 0 | pkg2/tst.go:8:2:8:2 | g | +| pkg2/tst.go:8:2:8:6 | field declaration | 0 | pkg2/tst.go:4:2:4:2 | g | +| pkg2/tst.go:8:2:8:6 | field declaration | 0 | pkg2/tst.go:8:2:8:2 | g | +| pkg2/tst.go:17:2:17:15 | field declaration | 0 | pkg2/tst.go:17:2:17:8 | NCField | +| struct_tags.go:4:2:4:19 | field declaration | 0 | struct_tags.go:4:2:4:7 | field1 | +| struct_tags.go:5:2:5:19 | field declaration | 0 | struct_tags.go:5:2:5:7 | field2 | +| struct_tags.go:9:2:9:19 | field declaration | 0 | struct_tags.go:9:2:9:7 | field1 | +| struct_tags.go:10:2:10:19 | field declaration | 0 | struct_tags.go:10:2:10:7 | field2 | +fieldDeclWithEmbeddedField +| cyclic.go:4:2:4:3 | field declaration | * s | +| cyclic.go:8:2:8:3 | field declaration | * u | +| cyclic.go:13:2:13:2 | field declaration | t | +| cyclic.go:17:2:17:2 | field declaration | s | +| depth.go:6:2:6:2 | field declaration | b | +| depth.go:7:2:7:2 | field declaration | c | +| depth.go:15:2:15:2 | field declaration | d | +| embedded.go:8:2:8:5 | field declaration | * Baz | +| embedded.go:12:2:12:4 | field declaration | Qux | +| main.go:18:2:18:15 | field declaration | NameClash | +| pkg1/embedding.go:19:23:19:26 | field declaration | base | +| pkg1/embedding.go:22:26:22:30 | field declaration | * base | +| pkg1/embedding.go:25:24:25:31 | field declaration | embedder | +| pkg1/embedding.go:28:24:28:31 | field declaration | embedder | +| pkg1/embedding.go:36:2:36:5 | field declaration | base | +| pkg1/promotedStructs.go:22:22:22:22 | field declaration | S | +| pkg1/promotedStructs.go:25:22:25:22 | field declaration | P | +| pkg1/tst.go:7:2:7:4 | field declaration | Foo | +| pkg1/tst.go:8:2:8:4 | field declaration | Bar | +| pkg1/tst.go:13:2:13:4 | field declaration | Bar | +| pkg1/tst.go:17:2:17:5 | field declaration | * Foo | +| pkg1/tst.go:18:2:18:5 | field declaration | * Bar | +| pkg1/tst.go:22:2:22:5 | field declaration | * Foo | +| pkg1/tst.go:62:2:62:15 | field declaration | NameClash | diff --git a/go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql new file mode 100644 index 000000000000..2cdbcc9e57b9 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql @@ -0,0 +1,7 @@ +import go + +query predicate fieldDeclWithNamedFields(FieldDecl fd, int i, Field f) { fd.getField(i) = f } + +query predicate fieldDeclWithEmbeddedField(FieldDecl fd, string tp) { + fd.isEmbedded() and tp = fd.getType().pp() +} diff --git a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected index f5af1c53e406..0306a98051e6 100644 --- a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected +++ b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected @@ -31,12 +31,12 @@ | interface.go:101:6:101:8 | i19 | StringB | func() string | | interface.go:105:6:105:8 | i20 | StringB | func() string | | main.go:17:6:17:20 | EmbedsNameClash | NCMethod | func() | +| pkg1/embedding.go:8:6:8:9 | base | f | func() int | | pkg1/embedding.go:19:6:19:13 | embedder | f | func() int | | pkg1/embedding.go:22:6:22:16 | ptrembedder | f | func() int | | pkg1/embedding.go:22:6:22:16 | ptrembedder | g | func() int | | pkg1/embedding.go:25:6:25:14 | embedder2 | f | func() int | | pkg1/embedding.go:28:6:28:14 | embedder3 | f | func() int | -| pkg1/embedding.go:35:6:35:14 | embedder4 | f | func() int | | pkg1/interfaces.go:3:6:3:6 | A | m | func() | | pkg1/interfaces.go:7:6:7:6 | B | m | func() | | pkg1/interfaces.go:7:6:7:6 | B | n | func() | @@ -51,10 +51,13 @@ | pkg1/interfaces.go:31:6:31:7 | A2 | m | func() | | pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | Exported | func() | | pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | notExported | func() | +| pkg1/promotedStructs.go:4:6:4:6 | S | SMethod | func() interface { } | | pkg1/promotedStructs.go:22:6:22:12 | SEmbedS | SMethod | func() interface { } | | pkg1/tst.go:5:6:5:6 | T | half | func() Foo | | pkg1/tst.go:16:6:16:7 | T3 | half | func() Foo | | pkg1/tst.go:21:6:21:7 | T4 | half | func() Foo | +| pkg1/tst.go:26:6:26:8 | Foo | half | func() Foo | | pkg1/tst.go:61:6:61:14 | NameClash | NCMethod | func() | | pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | Exported | func() | | pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | notExported | func() | +| pkg2/tst.go:16:6:16:14 | NameClash | NCMethod | func() | diff --git a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql index f9eae96b5296..89a62ef2f655 100644 --- a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql +++ b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql @@ -1,7 +1,7 @@ import go -from DefinedType t, string m, Type tp +from Type t, string m, Type tp where exists(t.getEntity().getDeclaration()) and - t.getBaseType().hasMethod(m, tp) + t.hasMethod(m, tp) select t, m, tp.pp() diff --git a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.go b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.go index e6a1c49f4c5b..82c0592a5166 100644 --- a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.go +++ b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.go @@ -93,4 +93,10 @@ func handler(w http.ResponseWriter, r *http.Request) { } data, _ = ioutil.ReadFile(part.FileName()) + + // GOOD: An attempt has been made to prevent path traversal + if filepath.IsLocal(tainted_path) { + data, _ = ioutil.ReadFile(tainted_path) + w.Write(data) + } } diff --git a/go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql b/go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql new file mode 100644 index 000000000000..9b3e77c416f9 --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql @@ -0,0 +1,15 @@ +/** + * @kind test-postprocess + * @description Remove the query predicates that differ based on 32/64-bit architecture. This should leave behind `invalidModelRowAdd` and `testFailures` in case of test failures. + */ + +/** + * The input test results: query predicate `relation` contains `data` at (`row`, `column`). + */ +external private predicate queryResults(string relation, int row, int column, string data); + +/** Holds if the test output's query predicate `relation` contains `data` at (`row`, `column`). */ +query predicate results(string relation, int row, int column, string data) { + queryResults(relation, row, column, data) and + not relation in ["#select", "nodes", "edges"] +} diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected index 42831abaf155..e69de29bb2d1 100644 --- a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected +++ b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected @@ -1,2 +0,0 @@ -invalidModelRow -testFailures diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go index 7927a5fe252c..0eee414716b5 100644 --- a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go +++ b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go @@ -24,7 +24,7 @@ func lookupNumberByName(reg *registry, name string) (int32, error) { return 567, nil } func lab(s string) (*something, error) { - num, err := strconv.Atoi(s) + num, err := strconv.Atoi(s) // $ Source if err != nil { number, err := lookupNumberByName(®istry{}, s) @@ -33,7 +33,7 @@ func lab(s string) (*something, error) { } num = int(number) } - target, err := lookupTarget(&config{}, int32(num)) // $ hasValueFlow="num" + target, err := lookupTarget(&config{}, int32(num)) // $ Alert if err != nil { return nil, err } @@ -63,12 +63,12 @@ func testParseInt() { _ = uint(parsed) } { - parsed, err := strconv.ParseInt("3456", 10, 16) + parsed, err := strconv.ParseInt("3456", 10, 16) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert _ = int16(parsed) _ = uint16(parsed) _ = int32(parsed) @@ -79,14 +79,14 @@ func testParseInt() { _ = uint(parsed) } { - parsed, err := strconv.ParseInt("3456", 10, 32) + parsed, err := strconv.ParseInt("3456", 10, 32) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert _ = int32(parsed) _ = uint32(parsed) _ = int64(parsed) @@ -95,32 +95,32 @@ func testParseInt() { _ = uint(parsed) } { - parsed, err := strconv.ParseInt("3456", 10, 64) + parsed, err := strconv.ParseInt("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" - _ = uint(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert + _ = uint(parsed) // $ Alert } { - parsed, err := strconv.ParseInt("3456", 10, 0) + parsed, err := strconv.ParseInt("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) _ = int(parsed) @@ -130,11 +130,11 @@ func testParseInt() { func testParseUint() { { - parsed, err := strconv.ParseUint("3456", 10, 8) + parsed, err := strconv.ParseUint("3456", 10, 8) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert _ = uint8(parsed) _ = int16(parsed) _ = uint16(parsed) @@ -146,13 +146,13 @@ func testParseUint() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 16) + parsed, err := strconv.ParseUint("3456", 10, 16) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert _ = uint16(parsed) _ = int32(parsed) _ = uint32(parsed) @@ -162,66 +162,66 @@ func testParseUint() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 32) + parsed, err := strconv.ParseUint("3456", 10, 32) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert _ = uint32(parsed) _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" - _ = int64(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert + _ = int64(parsed) // $ Alert _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" - _ = uint(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert + _ = uint(parsed) // $ Alert } { - parsed, err := strconv.ParseUint("3456", 10, 0) + parsed, err := strconv.ParseUint("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" - _ = int64(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert + _ = int64(parsed) // $ Alert _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } func testAtoi() { - parsed, err := strconv.Atoi("3456") + parsed, err := strconv.Atoi("3456") // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) _ = int(parsed) @@ -233,19 +233,19 @@ type customInt int16 // these should be caught: func typeAliases(input string) { { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } // NOTE: byte is uint8 - _ = byte(parsed) // $ hasValueFlow="parsed" - _ = customInt(parsed) // $ hasValueFlow="parsed" + _ = byte(parsed) // $ Alert + _ = customInt(parsed) // $ Alert } } func testBoundsChecking(input string) { { - parsed, err := strconv.Atoi(input) + parsed, err := strconv.Atoi(input) // $ Source if err != nil { panic(err) } @@ -253,13 +253,13 @@ func testBoundsChecking(input string) { _ = int8(parsed) } if parsed < math.MaxInt8 { - _ = int8(parsed) // $ MISSING: hasValueFlow="parsed" // Not found because we only check for upper bounds + _ = int8(parsed) // $ MISSING: Alert // Not found because we only check for upper bounds if parsed >= 0 { _ = int16(parsed) } } if parsed >= math.MinInt8 { - _ = int8(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert if parsed <= 0 { _ = int16(parsed) } @@ -271,51 +271,51 @@ func testBoundsChecking(input string) { } } { - parsed, err := strconv.ParseUint(input, 10, 0) + parsed, err := strconv.ParseUint(input, 10, 0) // $ Source if err != nil { panic(err) } if parsed <= math.MaxUint64 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" - _ = int64(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert + _ = int64(parsed) // $ Alert _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } if parsed <= math.MaxInt64 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } if parsed <= math.MaxUint32 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert _ = uint32(parsed) _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } if parsed <= math.MaxInt32 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert _ = int32(parsed) _ = uint32(parsed) _ = int64(parsed) @@ -325,25 +325,25 @@ func testBoundsChecking(input string) { } } { - parsed, err := strconv.ParseUint(input, 10, 32) + parsed, err := strconv.ParseUint(input, 10, 32) // $ Source if err != nil { panic(err) } if parsed <= math.MaxUint16 { _ = uint16(parsed) - _ = int16(parsed) // $ hasValueFlow="parsed" + _ = int16(parsed) // $ Alert } if parsed <= 255 { _ = uint8(parsed) } if parsed <= 256 { - _ = uint8(parsed) // $ hasValueFlow="parsed" + _ = uint8(parsed) // $ Alert } if err == nil && 1 == 1 && parsed < math.MaxInt8 { _ = int8(parsed) } if parsed > 42 { - _ = uint16(parsed) // $ hasValueFlow="parsed" + _ = uint16(parsed) // $ Alert } if parsed >= math.MaxUint8+1 { return @@ -389,64 +389,64 @@ func testRightShifted(input string) { _ = byte(parsed >> 8 & 0xff) } { - parsed, err := strconv.ParseInt(input, 10, 16) + parsed, err := strconv.ParseInt(input, 10, 16) // $ Source if err != nil { panic(err) } - _ = byte(parsed) // $ hasValueFlow="parsed" + _ = byte(parsed) // $ Alert _ = byte(parsed << 8) } } func testPathWithMoreThanOneSink(input string) { { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } - v1 := int16(parsed) // $ hasValueFlow="parsed" + v1 := int16(parsed) // $ Alert _ = int16(v1) } { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } - v := int16(parsed) // $ hasValueFlow="parsed" + v := int16(parsed) // $ Alert _ = int8(v) } { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } v1 := int32(parsed) - v2 := int16(v1) // $ hasValueFlow="v1" + v2 := int16(v1) // $ Alert _ = int8(v2) } { - parsed, err := strconv.ParseInt(input, 10, 16) + parsed, err := strconv.ParseInt(input, 10, 16) // $ Source if err != nil { panic(err) } v1 := int64(parsed) v2 := int32(v1) v3 := int16(v2) - _ = int8(v3) // $ hasValueFlow="v3" + _ = int8(v3) // $ Alert } } func testUsingStrConvIntSize(input string) { - parsed, err := strconv.ParseInt(input, 10, strconv.IntSize) + parsed, err := strconv.ParseInt(input, 10, strconv.IntSize) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) _ = int(parsed) @@ -490,7 +490,7 @@ func dealWithArchSizeCorrectly(s string) uint { } func typeSwitch1(s string) { - i64, _ := strconv.ParseInt(s, 10, 64) + i64, _ := strconv.ParseInt(s, 10, 64) // $ Source var input any = i64 switch v := input.(type) { case int16, string: @@ -498,19 +498,19 @@ func typeSwitch1(s string) { return } _ = int16(v.(int16)) - _ = int8(v.(int16)) // $ hasValueFlow="type assertion" + _ = int8(v.(int16)) // $ Alert case int32: _ = int32(v) - _ = int8(v) // $ hasValueFlow="v" + _ = int8(v) // $ Alert case int64: - _ = int8(v) // $ hasValueFlow="v" + _ = int8(v) // $ Alert default: - _ = int8(v.(int64)) // $ hasValueFlow="type assertion" + _ = int8(v.(int64)) // $ Alert } } func typeSwitch2(s string) { - i64, _ := strconv.ParseInt(s, 10, 64) + i64, _ := strconv.ParseInt(s, 10, 64) // $ Source var input any = i64 switch input.(type) { case int16, string: @@ -518,25 +518,25 @@ func typeSwitch2(s string) { return } _ = int16(input.(int16)) - _ = int8(input.(int16)) // $ hasValueFlow="type assertion" + _ = int8(input.(int16)) // $ Alert case int32: _ = int32(input.(int32)) - _ = int8(input.(int32)) // $ hasValueFlow="type assertion" + _ = int8(input.(int32)) // $ Alert case int64: - _ = int8(input.(int64)) // $ hasValueFlow="type assertion" + _ = int8(input.(int64)) // $ Alert default: - _ = int8(input.(int64)) // $ hasValueFlow="type assertion" + _ = int8(input.(int64)) // $ Alert } } func checkedTypeAssertion(s string) { - i64, _ := strconv.ParseInt(s, 10, 64) + i64, _ := strconv.ParseInt(s, 10, 64) // $ Source var input any = i64 if v, ok := input.(int16); ok { // Need to account for the fact that within this case clause, v is an int16 _ = int16(v) - _ = int8(v) // $ hasValueFlow="v" + _ = int8(v) // $ Alert } else if v, ok := input.(int32); ok { - _ = int16(v) // $ hasValueFlow="v" + _ = int16(v) // $ Alert } } diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref new file mode 100644 index 000000000000..d424ad73de84 --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref @@ -0,0 +1,5 @@ +query: Security/CWE-681/IncorrectIntegerConversionQuery.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql + - ./FilterTestResults.ql diff --git a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go index 0ff7b0e87acc..21eff8479a89 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go @@ -16,11 +16,11 @@ func testIntSource386() { _ = uint32(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 0) + parsed, err := strconv.ParseUint("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int32(parsed) // $ Alert _ = uint32(parsed) } { diff --git a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go index 79b776bdcac2..16d5bba86c64 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go @@ -19,11 +19,11 @@ func testIntSource32() { _ = uint32(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 0) + parsed, err := strconv.ParseUint("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int32(parsed) // $ Alert _ = uint32(parsed) } { diff --git a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go index b5becec4af90..d1bd2673729e 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go @@ -16,11 +16,11 @@ func testIntSinkAmd64() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } diff --git a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go index cf7aaf439a82..b07727d25ade 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go @@ -19,11 +19,11 @@ func testIntSink64() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } diff --git a/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go index 70f1938b5b35..3138dd9a8c27 100644 --- a/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go @@ -9,19 +9,19 @@ import ( func testIntSizeIsArchicturallyDependent1() { { - parsed, err := strconv.ParseInt("3456", 10, 0) + parsed, err := strconv.ParseInt("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert } { - parsed, err := strconv.ParseInt("3456", 10, 64) + parsed, err := strconv.ParseInt("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" - _ = uint(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert + _ = uint(parsed) // $ Alert } } diff --git a/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go index 34f686c6e8ad..35980ee9978d 100644 --- a/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go @@ -20,11 +20,11 @@ func oldTestIntSink64() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected index 42831abaf155..bdcf83b8935f 100644 --- a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected @@ -1,2 +1,22 @@ -invalidModelRow -testFailures +#select +| UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | This memory allocation depends on a $@. | UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | user-provided value | +edges +| UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | UncontrolledAllocationSizeBad.go:11:12:11:24 | call to Query | provenance | Src:MaD:1 MaD:2 | +| UncontrolledAllocationSizeBad.go:11:12:11:24 | call to Query | UncontrolledAllocationSizeBad.go:13:15:13:20 | source | provenance | | +| UncontrolledAllocationSizeBad.go:13:15:13:20 | source | UncontrolledAllocationSizeBad.go:13:15:13:29 | call to Get | provenance | MaD:3 | +| UncontrolledAllocationSizeBad.go:13:15:13:29 | call to Get | UncontrolledAllocationSizeBad.go:14:28:14:36 | sourceStr | provenance | | +| UncontrolledAllocationSizeBad.go:14:2:14:37 | ... := ...[0] | UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | provenance | | +| UncontrolledAllocationSizeBad.go:14:28:14:36 | sourceStr | UncontrolledAllocationSizeBad.go:14:2:14:37 | ... := ...[0] | provenance | Config | +models +| 1 | Source: net/http; Request; true; URL; ; ; ; remote; manual | +| 2 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | +| 3 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | +nodes +| UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | semmle.label | selection of URL | +| UncontrolledAllocationSizeBad.go:11:12:11:24 | call to Query | semmle.label | call to Query | +| UncontrolledAllocationSizeBad.go:13:15:13:20 | source | semmle.label | source | +| UncontrolledAllocationSizeBad.go:13:15:13:29 | call to Get | semmle.label | call to Get | +| UncontrolledAllocationSizeBad.go:14:2:14:37 | ... := ...[0] | semmle.label | ... := ...[0] | +| UncontrolledAllocationSizeBad.go:14:28:14:36 | sourceStr | semmle.label | sourceStr | +| UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | semmle.label | sink | +subpaths diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref new file mode 100644 index 000000000000..82741d2fbaaa --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref @@ -0,0 +1,4 @@ +query: Security/CWE-770/UncontrolledAllocationSize.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go index 0ae70436bdec..ae0525627058 100644 --- a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go @@ -8,7 +8,7 @@ import ( ) func OutOfMemoryBad(w http.ResponseWriter, r *http.Request) { - source := r.URL.Query() + source := r.URL.Query() // $ Source sourceStr := source.Get("n") sink, err := strconv.Atoi(sourceStr) @@ -17,7 +17,7 @@ func OutOfMemoryBad(w http.ResponseWriter, r *http.Request) { return } - result := make([]string, sink) // $hasTaintFlow="sink" + result := make([]string, sink) // $ Alert for i := 0; i < sink; i++ { result[i] = fmt.Sprintf("Item %d", i+1) } diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index 76097b7a5c0b..696d8dd700b4 100644 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -1,12 +1,18 @@ #select | RequestForgery.go:11:15:11:66 | call to Get | RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | The $@ of this request depends on a $@. | RequestForgery.go:11:24:11:65 | ...+... | URL | RequestForgery.go:8:12:8:34 | call to FormValue | user-provided value | | tst.go:14:2:14:18 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:14:11:14:17 | tainted | The $@ of this request depends on a $@. | tst.go:14:11:14:17 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:16:2:16:19 | call to Head | tst.go:10:13:10:35 | call to FormValue | tst.go:16:12:16:18 | tainted | The $@ of this request depends on a $@. | tst.go:16:12:16:18 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | | tst.go:18:2:18:38 | call to Post | tst.go:10:13:10:35 | call to FormValue | tst.go:18:12:18:18 | tainted | The $@ of this request depends on a $@. | tst.go:18:12:18:18 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:22:2:22:14 | call to Do | tst.go:10:13:10:35 | call to FormValue | tst.go:21:34:21:40 | tainted | The $@ of this request depends on a $@. | tst.go:21:34:21:40 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:25:2:25:14 | call to Do | tst.go:10:13:10:35 | call to FormValue | tst.go:24:66:24:72 | tainted | The $@ of this request depends on a $@. | tst.go:24:66:24:72 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:27:2:27:30 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:27:11:27:29 | ...+... | The $@ of this request depends on a $@. | tst.go:27:11:27:29 | ...+... | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:29:2:29:41 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:29:11:29:40 | ...+... | The $@ of this request depends on a $@. | tst.go:29:11:29:40 | ...+... | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:37:2:37:21 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:37:11:37:20 | call to String | The $@ of this request depends on a $@. | tst.go:37:11:37:20 | call to String | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:20:2:20:28 | call to PostForm | tst.go:10:13:10:35 | call to FormValue | tst.go:20:16:20:22 | tainted | The $@ of this request depends on a $@. | tst.go:20:16:20:22 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:24:2:24:15 | call to Do | tst.go:10:13:10:35 | call to FormValue | tst.go:23:35:23:41 | tainted | The $@ of this request depends on a $@. | tst.go:23:35:23:41 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:27:2:27:15 | call to Do | tst.go:10:13:10:35 | call to FormValue | tst.go:26:68:26:74 | tainted | The $@ of this request depends on a $@. | tst.go:26:68:26:74 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:29:2:29:20 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:29:13:29:19 | tainted | The $@ of this request depends on a $@. | tst.go:29:13:29:19 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:30:2:30:21 | call to Head | tst.go:10:13:10:35 | call to FormValue | tst.go:30:14:30:20 | tainted | The $@ of this request depends on a $@. | tst.go:30:14:30:20 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:31:2:31:40 | call to Post | tst.go:10:13:10:35 | call to FormValue | tst.go:31:14:31:20 | tainted | The $@ of this request depends on a $@. | tst.go:31:14:31:20 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:32:2:32:30 | call to PostForm | tst.go:10:13:10:35 | call to FormValue | tst.go:32:18:32:24 | tainted | The $@ of this request depends on a $@. | tst.go:32:18:32:24 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:34:2:34:30 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:34:11:34:29 | ...+... | The $@ of this request depends on a $@. | tst.go:34:11:34:29 | ...+... | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:36:2:36:41 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:40 | ...+... | The $@ of this request depends on a $@. | tst.go:36:11:36:40 | ...+... | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:44:2:44:21 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:44:11:44:20 | call to String | The $@ of this request depends on a $@. | tst.go:44:11:44:20 | call to String | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | | websocket.go:65:12:65:53 | call to Dial | websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:65:27:65:40 | untrustedInput | WebSocket URL | websocket.go:60:21:60:31 | call to Referer | user-provided value | | websocket.go:79:13:79:40 | call to DialConfig | websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:78:36:78:49 | untrustedInput | WebSocket URL | websocket.go:74:21:74:31 | call to Referer | user-provided value | | websocket.go:91:3:91:50 | call to Dial | websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:91:31:91:44 | untrustedInput | WebSocket URL | websocket.go:88:21:88:31 | call to Referer | user-provided value | @@ -14,27 +20,33 @@ | websocket.go:129:3:129:62 | call to DialContext | websocket.go:126:21:126:31 | call to Referer | websocket.go:129:38:129:51 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:129:38:129:51 | untrustedInput | WebSocket URL | websocket.go:126:21:126:31 | call to Referer | user-provided value | | websocket.go:155:3:155:45 | call to Dial | websocket.go:154:21:154:31 | call to Referer | websocket.go:155:31:155:44 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:155:31:155:44 | untrustedInput | WebSocket URL | websocket.go:154:21:154:31 | call to Referer | user-provided value | | websocket.go:162:3:162:45 | call to Dial | websocket.go:160:21:160:31 | call to Referer | websocket.go:162:31:162:44 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:162:31:162:44 | untrustedInput | WebSocket URL | websocket.go:160:21:160:31 | call to Referer | user-provided value | -| websocket.go:197:3:197:32 | call to BuildProxy | websocket.go:195:21:195:31 | call to Referer | websocket.go:197:18:197:31 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:197:18:197:31 | untrustedInput | WebSocket URL | websocket.go:195:21:195:31 | call to Referer | user-provided value | -| websocket.go:204:3:204:25 | call to New | websocket.go:202:21:202:31 | call to Referer | websocket.go:204:11:204:24 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:204:11:204:24 | untrustedInput | WebSocket URL | websocket.go:202:21:202:31 | call to Referer | user-provided value | +| websocket.go:197:7:197:36 | call to BuildProxy | websocket.go:195:21:195:31 | call to Referer | websocket.go:197:22:197:35 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:197:22:197:35 | untrustedInput | WebSocket URL | websocket.go:195:21:195:31 | call to Referer | user-provided value | +| websocket.go:204:7:204:29 | call to New | websocket.go:202:21:202:31 | call to Referer | websocket.go:204:15:204:28 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:204:15:204:28 | untrustedInput | WebSocket URL | websocket.go:202:21:202:31 | call to Referer | user-provided value | edges | RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | provenance | Src:MaD:1 | | tst.go:10:13:10:35 | call to FormValue | tst.go:14:11:14:17 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:16:12:16:18 | tainted | provenance | Src:MaD:1 | | tst.go:10:13:10:35 | call to FormValue | tst.go:18:12:18:18 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:21:34:21:40 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:24:66:24:72 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:27:11:27:29 | ...+... | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:29:11:29:40 | ...+... | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:17 | tainted | provenance | Src:MaD:1 | -| tst.go:35:2:35:2 | definition of u [pointer] | tst.go:36:2:36:2 | u [pointer] | provenance | | -| tst.go:36:2:36:2 | implicit dereference | tst.go:35:2:35:2 | definition of u [pointer] | provenance | | -| tst.go:36:2:36:2 | implicit dereference | tst.go:36:2:36:2 | u | provenance | | -| tst.go:36:2:36:2 | implicit dereference | tst.go:37:11:37:11 | u | provenance | | -| tst.go:36:2:36:2 | u | tst.go:36:2:36:2 | implicit dereference | provenance | | -| tst.go:36:2:36:2 | u | tst.go:37:11:37:11 | u | provenance | | -| tst.go:36:2:36:2 | u [pointer] | tst.go:36:2:36:2 | implicit dereference | provenance | | -| tst.go:36:11:36:17 | tainted | tst.go:36:2:36:2 | u | provenance | Config | -| tst.go:36:11:36:17 | tainted | tst.go:37:11:37:11 | u | provenance | Config | -| tst.go:37:11:37:11 | u | tst.go:37:11:37:20 | call to String | provenance | MaD:3 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:20:16:20:22 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:23:35:23:41 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:26:68:26:74 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:29:13:29:19 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:30:14:30:20 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:31:14:31:20 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:32:18:32:24 | tainted | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:34:11:34:29 | ...+... | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:40 | ...+... | provenance | Src:MaD:1 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:43:11:43:17 | tainted | provenance | Src:MaD:1 | +| tst.go:42:2:42:2 | definition of u [pointer] | tst.go:43:2:43:2 | u [pointer] | provenance | | +| tst.go:43:2:43:2 | implicit dereference | tst.go:42:2:42:2 | definition of u [pointer] | provenance | | +| tst.go:43:2:43:2 | implicit dereference | tst.go:43:2:43:2 | u | provenance | | +| tst.go:43:2:43:2 | implicit dereference | tst.go:44:11:44:11 | u | provenance | | +| tst.go:43:2:43:2 | u | tst.go:43:2:43:2 | implicit dereference | provenance | | +| tst.go:43:2:43:2 | u | tst.go:44:11:44:11 | u | provenance | | +| tst.go:43:2:43:2 | u [pointer] | tst.go:43:2:43:2 | implicit dereference | provenance | | +| tst.go:43:11:43:17 | tainted | tst.go:43:2:43:2 | u | provenance | Config | +| tst.go:43:11:43:17 | tainted | tst.go:44:11:44:11 | u | provenance | Config | +| tst.go:44:11:44:11 | u | tst.go:44:11:44:20 | call to String | provenance | MaD:3 | | websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | provenance | Src:MaD:2 | | websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | provenance | Src:MaD:2 | | websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | provenance | Src:MaD:2 | @@ -42,8 +54,8 @@ edges | websocket.go:126:21:126:31 | call to Referer | websocket.go:129:38:129:51 | untrustedInput | provenance | Src:MaD:2 | | websocket.go:154:21:154:31 | call to Referer | websocket.go:155:31:155:44 | untrustedInput | provenance | Src:MaD:2 | | websocket.go:160:21:160:31 | call to Referer | websocket.go:162:31:162:44 | untrustedInput | provenance | Src:MaD:2 | -| websocket.go:195:21:195:31 | call to Referer | websocket.go:197:18:197:31 | untrustedInput | provenance | Src:MaD:2 | -| websocket.go:202:21:202:31 | call to Referer | websocket.go:204:11:204:24 | untrustedInput | provenance | Src:MaD:2 | +| websocket.go:195:21:195:31 | call to Referer | websocket.go:197:22:197:35 | untrustedInput | provenance | Src:MaD:2 | +| websocket.go:202:21:202:31 | call to Referer | websocket.go:204:15:204:28 | untrustedInput | provenance | Src:MaD:2 | models | 1 | Source: net/http; Request; true; FormValue; ; ; ReturnValue; remote; manual | | 2 | Source: net/http; Request; true; Referer; ; ; ReturnValue; remote; manual | @@ -53,18 +65,24 @@ nodes | RequestForgery.go:11:24:11:65 | ...+... | semmle.label | ...+... | | tst.go:10:13:10:35 | call to FormValue | semmle.label | call to FormValue | | tst.go:14:11:14:17 | tainted | semmle.label | tainted | +| tst.go:16:12:16:18 | tainted | semmle.label | tainted | | tst.go:18:12:18:18 | tainted | semmle.label | tainted | -| tst.go:21:34:21:40 | tainted | semmle.label | tainted | -| tst.go:24:66:24:72 | tainted | semmle.label | tainted | -| tst.go:27:11:27:29 | ...+... | semmle.label | ...+... | -| tst.go:29:11:29:40 | ...+... | semmle.label | ...+... | -| tst.go:35:2:35:2 | definition of u [pointer] | semmle.label | definition of u [pointer] | -| tst.go:36:2:36:2 | implicit dereference | semmle.label | implicit dereference | -| tst.go:36:2:36:2 | u | semmle.label | u | -| tst.go:36:2:36:2 | u [pointer] | semmle.label | u [pointer] | -| tst.go:36:11:36:17 | tainted | semmle.label | tainted | -| tst.go:37:11:37:11 | u | semmle.label | u | -| tst.go:37:11:37:20 | call to String | semmle.label | call to String | +| tst.go:20:16:20:22 | tainted | semmle.label | tainted | +| tst.go:23:35:23:41 | tainted | semmle.label | tainted | +| tst.go:26:68:26:74 | tainted | semmle.label | tainted | +| tst.go:29:13:29:19 | tainted | semmle.label | tainted | +| tst.go:30:14:30:20 | tainted | semmle.label | tainted | +| tst.go:31:14:31:20 | tainted | semmle.label | tainted | +| tst.go:32:18:32:24 | tainted | semmle.label | tainted | +| tst.go:34:11:34:29 | ...+... | semmle.label | ...+... | +| tst.go:36:11:36:40 | ...+... | semmle.label | ...+... | +| tst.go:42:2:42:2 | definition of u [pointer] | semmle.label | definition of u [pointer] | +| tst.go:43:2:43:2 | implicit dereference | semmle.label | implicit dereference | +| tst.go:43:2:43:2 | u | semmle.label | u | +| tst.go:43:2:43:2 | u [pointer] | semmle.label | u [pointer] | +| tst.go:43:11:43:17 | tainted | semmle.label | tainted | +| tst.go:44:11:44:11 | u | semmle.label | u | +| tst.go:44:11:44:20 | call to String | semmle.label | call to String | | websocket.go:60:21:60:31 | call to Referer | semmle.label | call to Referer | | websocket.go:65:27:65:40 | untrustedInput | semmle.label | untrustedInput | | websocket.go:74:21:74:31 | call to Referer | semmle.label | call to Referer | @@ -80,7 +98,7 @@ nodes | websocket.go:160:21:160:31 | call to Referer | semmle.label | call to Referer | | websocket.go:162:31:162:44 | untrustedInput | semmle.label | untrustedInput | | websocket.go:195:21:195:31 | call to Referer | semmle.label | call to Referer | -| websocket.go:197:18:197:31 | untrustedInput | semmle.label | untrustedInput | +| websocket.go:197:22:197:35 | untrustedInput | semmle.label | untrustedInput | | websocket.go:202:21:202:31 | call to Referer | semmle.label | call to Referer | -| websocket.go:204:11:204:24 | untrustedInput | semmle.label | untrustedInput | +| websocket.go:204:15:204:28 | untrustedInput | semmle.label | untrustedInput | subpaths diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.go b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.go index c88e9dc5f742..ab8f907c58b5 100644 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.go +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.go @@ -5,10 +5,10 @@ import ( ) func handler(w http.ResponseWriter, req *http.Request) { - target := req.FormValue("target") + target := req.FormValue("target") // $ Source // BAD: `target` is controlled by the attacker - resp, err := http.Get("https://" + target + ".example.com/data/") + resp, err := http.Get("https://" + target + ".example.com/data/") // $ Alert if err != nil { // error handling } diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.qlref b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.qlref index 061679da228d..760862973f1d 100644 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.qlref +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.qlref @@ -1,2 +1,4 @@ query: Security/CWE-918/RequestForgery.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/query-tests/Security/CWE-918/tst.go b/go/ql/test/query-tests/Security/CWE-918/tst.go index 0e04429580c8..44a172ddad07 100644 --- a/go/ql/test/query-tests/Security/CWE-918/tst.go +++ b/go/ql/test/query-tests/Security/CWE-918/tst.go @@ -7,26 +7,33 @@ import ( ) func handler2(w http.ResponseWriter, req *http.Request) { - tainted := req.FormValue("target") + tainted := req.FormValue("target") // $ Source http.Get("example.com") // OK - http.Get(tainted) // Not OK + http.Get(tainted) // $ Alert - http.Head(tainted) // OK + http.Head(tainted) // $ Alert - http.Post(tainted, "text/basic", nil) // Not OK + http.Post(tainted, "text/basic", nil) // $ Alert + + http.PostForm(tainted, nil) // $ Alert client := &http.Client{} - rq, _ := http.NewRequest("GET", tainted, nil) - client.Do(rq) // Not OK + rq1, _ := http.NewRequest("GET", tainted, nil) // $ Sink + client.Do(rq1) // $ Alert + + rq2, _ := http.NewRequestWithContext(context.Background(), "GET", tainted, nil) // $ Sink + client.Do(rq2) // $ Alert - rq, _ = http.NewRequestWithContext(context.Background(), "GET", tainted, nil) - client.Do(rq) // Not OK + client.Get(tainted) // $ Alert + client.Head(tainted) // $ Alert + client.Post(tainted, "text/basic", nil) // $ Alert + client.PostForm(tainted, nil) // $ Alert - http.Get("http://" + tainted) // Not OK + http.Get("http://" + tainted) // $ Alert - http.Get("http://example.com" + tainted) // Not OK + http.Get("http://example.com" + tainted) // $ Alert http.Get("http://example.com/" + tainted) // OK @@ -34,7 +41,7 @@ func handler2(w http.ResponseWriter, req *http.Request) { u, _ := url.Parse("http://example.com/relative-path") u.Host = tainted - http.Get(u.String()) // Not OK + http.Get(u.String()) // $ Alert } func main() { diff --git a/go/ql/test/query-tests/Security/CWE-918/websocket.go b/go/ql/test/query-tests/Security/CWE-918/websocket.go index 328200770aec..15edef6b6cce 100644 --- a/go/ql/test/query-tests/Security/CWE-918/websocket.go +++ b/go/ql/test/query-tests/Security/CWE-918/websocket.go @@ -57,12 +57,12 @@ func test() { // x net websocket dial bad http.HandleFunc("/ex2", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source origin := "http://localhost/" // bad as input is directly passed to dial function - ws, _ := websocket.Dial(untrustedInput, "", origin) + ws, _ := websocket.Dial(untrustedInput, "", origin) // $ Alert var msg = make([]byte, 512) var n int n, _ = ws.Read(msg) @@ -71,12 +71,12 @@ func test() { // x net websocket dialConfig bad http.HandleFunc("/ex3", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source origin := "http://localhost/" // bad as input is directly used - config, _ := websocket.NewConfig(untrustedInput, origin) // good - ws2, _ := websocket.DialConfig(config) + config, _ := websocket.NewConfig(untrustedInput, origin) // $ Sink + ws2, _ := websocket.DialConfig(config) // $ Alert var msg = make([]byte, 512) var n int n, _ = ws2.Read(msg) @@ -85,10 +85,10 @@ func test() { // nhooyr websocket dial bad http.HandleFunc("/ex4", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source // bad as input is used directly - nhooyr.Dial(context.TODO(), untrustedInput, nil) + nhooyr.Dial(context.TODO(), untrustedInput, nil) // $ Alert w.WriteHeader(500) }) @@ -104,10 +104,10 @@ func test() { // gorilla websocket Dialer.Dial bad http.HandleFunc("/ex6", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source dialer := gorilla.Dialer{} - dialer.Dial(untrustedInput, r.Header) + dialer.Dial(untrustedInput, r.Header) // $ Alert }) // gorilla websocket Dialer.Dial good @@ -123,10 +123,10 @@ func test() { // gorilla websocket Dialer.DialContext bad http.HandleFunc("/ex8", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source dialer := gorilla.Dialer{} - dialer.DialContext(context.TODO(), untrustedInput, r.Header) + dialer.DialContext(context.TODO(), untrustedInput, r.Header) // $ Alert }) // gorilla websocket Dialer.DialContext good @@ -151,22 +151,22 @@ func test() { // gobwas websocket Dial bad http.HandleFunc("/ex11", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() - gobwas.Dial(context.TODO(), untrustedInput) + untrustedInput := r.Referer() // $ Source + gobwas.Dial(context.TODO(), untrustedInput) // $ Alert }) // gobwas websocket Dialer.Dial bad http.HandleFunc("/ex12", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source dialer := gobwas.Dialer{} - dialer.Dial(context.TODO(), untrustedInput) + dialer.Dial(context.TODO(), untrustedInput) // $ Alert }) // gobwas websocket Dialer.Dial good http.HandleFunc("/ex12", func(w http.ResponseWriter, r *http.Request) { untrustedInput := r.Referer() - if "localhost" == untrustedInput { + if untrustedInput == "localhost" { dialer := gobwas.Dialer{} dialer.Dial(context.TODO(), untrustedInput) } @@ -176,8 +176,8 @@ func test() { http.HandleFunc("/ex13", func(w http.ResponseWriter, r *http.Request) { untrustedInput := r.Referer() - if "localhost" == untrustedInput { - sac.New(untrustedInput) + if untrustedInput == "localhost" { + _ = sac.New(untrustedInput) } }) @@ -185,23 +185,23 @@ func test() { http.HandleFunc("/ex14", func(w http.ResponseWriter, r *http.Request) { untrustedInput := r.Referer() - if "localhost" == untrustedInput { - sac.BuildProxy(untrustedInput) + if untrustedInput == "localhost" { + _ = sac.BuildProxy(untrustedInput) } }) // sac007 websocket BuildProxy bad http.HandleFunc("/ex15", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source - sac.BuildProxy(untrustedInput) + _ = sac.BuildProxy(untrustedInput) // $ Alert }) // sac007 websocket New bad http.HandleFunc("/ex16", func(w http.ResponseWriter, r *http.Request) { - untrustedInput := r.Referer() + untrustedInput := r.Referer() // $ Source - sac.New(untrustedInput) + _ = sac.New(untrustedInput) // $ Alert }) log.Println(http.ListenAndServe(":80", nil)) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index fc3620ca4bc6..7ec0b4c5f0fc 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -1,284 +1,292 @@ -package,sink,source,summary,sink:bean-validation,sink:command-injection,sink:credentials-key,sink:credentials-password,sink:credentials-username,sink:encryption-iv,sink:encryption-salt,sink:environment-injection,sink:file-content-store,sink:fragment-injection,sink:groovy-injection,sink:hostname-verification,sink:html-injection,sink:information-leak,sink:intent-redirection,sink:jexl-injection,sink:jndi-injection,sink:js-injection,sink:ldap-injection,sink:log-injection,sink:mvel-injection,sink:notification,sink:ognl-injection,sink:path-injection,sink:pending-intents,sink:regex-use,sink:regex-use[-1],sink:regex-use[0],sink:regex-use[],sink:regex-use[f-1],sink:regex-use[f1],sink:regex-use[f],sink:request-forgery,sink:response-splitting,sink:sql-injection,sink:template-injection,sink:trust-boundary-violation,sink:url-forward,sink:url-redirection,sink:xpath-injection,sink:xslt-injection,source:android-external-storage-dir,source:contentprovider,source:database,source:environment,source:file,source:remote,summary:taint,summary:value -actions.osgi,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, -android.app,77,,103,,,,,,,,,,11,,,,,7,,,,,,,42,,,17,,,,,,,,,,,,,,,,,,,,,,,18,85 -android.content,24,31,154,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,8,,,,,,,4,27,,,,,63,91 -android.database,59,,41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,,,,41, -android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 -android.os,1,2,122,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,2,,,,,,41,81 -android.support.v4.app,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -android.util,6,16,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,16,, -android.webkit,3,2,,,,,,,,,,,,,,2,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, -android.widget,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1, -androidx.core.app,47,,95,,,,,,,,,,,,,,,,,,,,,,41,,,6,,,,,,,,,,,,,,,,,,,,,,,12,83 -androidx.fragment.app,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -androidx.slice,2,5,88,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,5,,,,,27,61 -antlr,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -ch.ethz.ssh2,2,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -cn.hutool.core.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.alibaba.druid.sql,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,1, -com.alibaba.fastjson2,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.amazonaws.auth,2,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.auth0.jwt.algorithms,6,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.azure.identity,3,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -com.fasterxml.jackson.databind,2,,8,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,8, -com.google.common.base,4,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,1,,,,,,,,,,,,,,,,,,,63,24 -com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17 -com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,551 -com.google.common.flogger,29,,,,,,,,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.google.common.io,10,,73,,,,,,,,,1,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,,,,,,,,,,,72,1 -com.google.gson,,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,14 -com.hubspot.jinjava,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,, -com.jcraft.jsch,5,,1,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,1, -com.microsoft.sqlserver.jdbc,4,,,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.mitchellbosecke.pebble,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,, -com.mongodb,10,,,,,,4,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.opensymphony.xwork2,56,,961,,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,,,,,,,,,,,,,,,,,,,867,94 -com.rabbitmq.client,,21,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,7, -com.sshtools.j2ssh.authentication,3,,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.crypto.provider,19,,,,,17,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.jndi.ldap,4,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.net.httpserver,3,,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.net.ssl,3,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.rowset,3,,,,,,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.security.auth.module,2,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.security.ntlm,5,,,,,,3,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.sun.security.sasl.digest,3,,,,,,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.thoughtworks.xstream,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -com.trilead.ssh2,13,,,,,2,4,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.unboundid.ldap.sdk,17,,,,,,,,,,,,,,,,,,,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -com.zaxxer.hikari,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,, -flexjson,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -freemarker.cache,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,, -freemarker.template,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,,, -groovy.lang,26,,,,,,,,,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -groovy.text,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -groovy.util,5,,,,,,,,,,,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -hudson,75,9,2648,,4,,,,,,3,2,,,,4,,,,,,,,,,,56,,,,,,,,,6,,,,,,,,,,,,,5,4,2572,76 -io.jsonwebtoken,,2,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4, -io.netty.bootstrap,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,, -io.netty.buffer,,,207,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,77 -io.netty.channel,9,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,2,, -io.netty.handler.codec,4,13,259,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,3,,,,,,,,,,,,,,13,143,116 -io.netty.handler.ssl,4,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,, -io.netty.handler.stream,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -io.netty.resolver,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -io.netty.util,2,,23,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,21,2 -io.undertow.server.handlers.resource,1,,3,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,3, -jakarta.activation,2,,2,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,2, -jakarta.faces.context,4,7,,,,,,,,,,,,,,2,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,7,, -jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 -jakarta.persistence,2,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,1, -jakarta.servlet,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,1,, -jakarta.ws.rs.client,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, -jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55 -jakarta.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, -java.applet,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11, -java.awt,1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,3 -java.beans,,,177,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,82,95 -java.io,66,1,225,,,,,,,,,22,,,,,,,,,,,,,,,44,,,,,,,,,,,,,,,,,,,,,,1,,202,23 -java.lang,38,3,783,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,,3,,,506,277 -java.math,,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9 -java.net,23,3,347,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,,,,,,,,,,,,,,3,248,99 -java.nio,47,,499,,,,,,,,,5,,,,,,,,,,,,,,,41,,,,,,,,,1,,,,,,,,,,,,,,,302,197 -java.rmi,,,68,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,23 -java.security,21,,583,,,11,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,285,298 -java.sql,15,1,292,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,9,,,,,,,,,1,,,,274,18 -java.text,,,154,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,82 -java.time,,,131,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,104 -java.util,48,2,1339,,,,,,,,,1,,,,,,,,,,,34,,,,3,,,,5,2,,1,2,,,,,,,,,,,,,2,,,558,781 -javafx.scene.web,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -javax.accessibility,,,63,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28,35 -javax.activation,2,,7,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,7, -javax.annotation.processing,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,3 -javax.crypto,19,,114,,,12,3,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,61,53 -javax.faces.context,4,7,,,,,,,,,,,,,,2,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,7,, -javax.imageio,1,,304,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,138,166 -javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, -javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 -javax.lang.model,,,277,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,217,60 -javax.management,2,,766,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,363,403 -javax.naming,7,,341,,,,,,,,,,,,,,,,,6,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,191,150 -javax.net,4,,136,,,,2,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,49 -javax.portlet,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -javax.print,2,,133,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,102,31 -javax.rmi.ssl,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6 -javax.script,1,,50,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,14,36 -javax.security.auth,7,,147,,,4,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,50,97 -javax.security.cert,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5, -javax.security.sasl,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,7 -javax.servlet,10,22,3,,,,,,,,,,,,,,1,,,,,,,,,,2,,,,,,,,,,3,,,2,2,,,,,,,,,22,3, -javax.smartcardio,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,24,10 -javax.sound.midi,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,9 -javax.sound.sampled,,,90,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,37 -javax.sql,7,,126,,,,4,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,68,58 -javax.tools,,,66,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,4 -javax.transaction.xa,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -javax.validation,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, -javax.ws.rs.client,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -javax.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, -javax.ws.rs.core,3,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,2,,,,,,,,,94,55 -javax.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, -javax.xml.catalog,,,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11,1 -javax.xml.crypto,,,269,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,172,97 -javax.xml.datatype,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,1 -javax.xml.namespace,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,10 -javax.xml.parsers,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,2 -javax.xml.stream,,,221,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,201,20 -javax.xml.transform,2,,134,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,,,,72,62 -javax.xml.validation,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,29, -javax.xml.xpath,3,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,26, -jenkins,,,523,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,500,23 -jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 -kotlin,16,,1849,,,,,,,,,,,,,,,,,,,,,,,,14,,,,,,,,,2,,,,,,,,,,,,,,,1836,13 -liquibase.database.jvm,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, -liquibase.statement.core,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, -net.lingala.zip4j,2,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,, -net.schmizz.sshj,4,,,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -net.sf.json,2,,338,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,321,17 -net.sf.saxon.s9api,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,,,, -ognl,6,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,, -okhttp3,4,,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,23,27 -org.acegisecurity,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,49, -org.antlr.runtime,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, -org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.compress.archivers.tar,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, -org.apache.commons.exec,10,,,,6,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.httpclient.util,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.commons.io,124,,570,,,,,,,,,4,,,,,,,,,,,,,,,105,,,,,,,,,15,,,,,,,,,,,,,,,556,14 -org.apache.commons.jelly,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,, -org.apache.commons.jexl2,15,,,,,,,,,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.jexl3,15,,,,,,,,,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.lang,,,767,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,596,171 -org.apache.commons.lang3,6,,425,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,294,131 -org.apache.commons.logging,6,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.net,13,12,,,,,2,2,,,,,,,,,,,,,,,,,,,3,,,,,,,,,6,,,,,,,,,,,,,,12,, -org.apache.commons.ognl,6,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,220,52 -org.apache.cxf.catalog,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -org.apache.cxf.common.classloader,3,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,2,,,,,,,,,,,,,,,, -org.apache.cxf.common.jaxb,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.cxf.common.logging,6,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.cxf.configuration.jsse,2,,,,,,,,,,,,,,1,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.cxf.helpers,10,,,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,,,,,,,,,,,,5,,,,,,,,, -org.apache.cxf.resource,9,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,5,,,,,,,,,,,,,,,, -org.apache.cxf.staxutils,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.cxf.tools.corba.utils,4,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.cxf.tools.util,10,,,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.cxf.transform,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,, -org.apache.directory.ldap.client.api,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.hadoop.fs,3,,11,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,11, -org.apache.hadoop.hive.metastore,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,, -org.apache.hadoop.hive.ql.exec,1,,1,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.hadoop.hive.ql.metadata,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.hc.client5.http.async.methods,84,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,84,,,,,,,,,,,,,,,, -org.apache.hc.client5.http.classic.methods,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,, -org.apache.hc.client5.http.fluent,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,,,,,,,,,,,,, -org.apache.hc.core5.benchmark,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -org.apache.hc.core5.function,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.hc.core5.http,73,2,45,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,72,,,,,,,,,,,,,,2,45, -org.apache.hc.core5.net,,,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18, -org.apache.hc.core5.util,,,24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,6 -org.apache.hive.hcatalog.templeton,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, -org.apache.http,48,3,95,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,46,,,,,,,,,,,,,,3,86,9 -org.apache.ibatis.jdbc,6,,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,57, -org.apache.ibatis.mapping,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.log4j,11,,,,,,,,,,,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.logging.log4j,359,,8,,,,,,,,,,,,,,,,,,,,359,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4 -org.apache.shiro.authc,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, -org.apache.shiro.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.shiro.jndi,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.shiro.mgt,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.sshd.client.session,3,,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.struts.beanvalidation.validation.interceptor,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, -org.apache.struts2,14,,3873,,,,,,,,,,,,,,,,,,,,,,,11,,,,,,,,,,,,,,3,,,,,,,,,,,3839,34 -org.apache.tools.ant,14,,,,1,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,, -org.apache.tools.zip,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.apache.velocity.app,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,, -org.apache.velocity.runtime,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,, -org.codehaus.cargo.container.installer,3,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,1,,,,,,,,,,,,,,,, -org.codehaus.groovy.control,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.dom4j,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,, -org.eclipse.jetty.client,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,, -org.fusesource.leveldbjni,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.geogebra.web.full.main,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,, -org.gradle.api.file,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -org.hibernate,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,, -org.influxdb,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -org.jboss.logging,324,,,,,,,,,,,,,,,,,,,,,,324,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.jboss.vfs,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.jdbi.v3.core,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,, -org.jenkins.ui.icon,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,1 -org.jenkins.ui.symbol,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,8 -org.jooq,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, -org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,198,38 -org.keycloak.models.map.storage,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, -org.kohsuke.stapler,20,24,363,,,,,,,,,,,,,2,,,,,,,,,,,9,,,,,,,,,3,,,,,1,5,,,,,,,,24,352,11 -org.lastaflute.web,,1,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,4, -org.mvel2,16,,,,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.openjdk.jmh.runner.options,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, -org.owasp.esapi,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.pac4j.jwt.config.encryption,4,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.pac4j.jwt.config.signature,4,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.scijava.log,13,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.slf4j,55,,6,,,,,,,,,,,,,,,,,,,,55,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4 -org.springframework.beans,,,30,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,30 -org.springframework.boot.jdbc,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13 -org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -org.springframework.core.io,17,,6,,,,,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,1,,,,,,,,,,,,,,,6, -org.springframework.data.repository,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -org.springframework.http,14,,77,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14,,,,,,,,,,,,,,,67,10 -org.springframework.jdbc.core,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,,,,,,,,,,, -org.springframework.jdbc.datasource,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,, -org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,,, -org.springframework.jndi,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.ldap,47,,,,,,,,,,,,,,,,,,,33,,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.security.core.userdetails,2,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.security.web.savedrequest,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,, -org.springframework.ui,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32 -org.springframework.util,10,,142,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,,,,,,90,52 -org.springframework.validation,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13, -org.springframework.web.client,13,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,3,, -org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,, -org.springframework.web.multipart,,12,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,12, -org.springframework.web.portlet,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,, -org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,, -org.springframework.web.servlet,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,, -org.springframework.web.util,,9,157,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,132,25 -org.thymeleaf,2,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,2, -org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,, -org.yaml.snakeyaml,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -play.libs.ws,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,, -play.mvc,1,13,24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,13,24, -ratpack.core.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -ratpack.core.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, -ratpack.core.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, -ratpack.exec,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48 -ratpack.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, -ratpack.func,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 -ratpack.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, -ratpack.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, -ratpack.util,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 -retrofit2,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,1, -software.amazon.awssdk.transfer.s3.model,8,,,,,,,,,,,,,,,,,,,,,,,,,,8,,,,,,,,,,,,,,,,,,,,,,,,, -sun.jvmstat.perfdata.monitor.protocol.local,3,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.jvmstat.perfdata.monitor.protocol.rmi,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.misc,3,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.net.ftp,5,,,,,,2,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.net.www.protocol.http,3,,,,,,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.acl,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.jgss.krb5,2,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.krb5,9,,,,,3,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.pkcs,4,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.pkcs11,3,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.provider,2,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.ssl,3,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.security.x509,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -sun.tools.jconsole,28,,,,,,13,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +package,sink,source,summary,sink:bean-validation,sink:command-injection,sink:credentials-key,sink:credentials-password,sink:credentials-username,sink:encryption-iv,sink:encryption-salt,sink:environment-injection,sink:file-content-store,sink:fragment-injection,sink:groovy-injection,sink:hostname-verification,sink:html-injection,sink:information-leak,sink:intent-redirection,sink:jexl-injection,sink:jndi-injection,sink:js-injection,sink:ldap-injection,sink:log-injection,sink:mvel-injection,sink:notification,sink:ognl-injection,sink:path-injection,sink:pending-intents,sink:regex-use,sink:regex-use[-1],sink:regex-use[0],sink:regex-use[],sink:regex-use[f-1],sink:regex-use[f1],sink:regex-use[f],sink:request-forgery,sink:response-splitting,sink:sql-injection,sink:template-injection,sink:trust-boundary-violation,sink:unsafe-deserialization,sink:url-forward,sink:url-redirection,sink:xpath-injection,sink:xslt-injection,source:android-external-storage-dir,source:contentprovider,source:database,source:environment,source:file,source:remote,summary:taint,summary:value +actions.osgi,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, +android.app,77,,103,,,,,,,,,,11,,,,,7,,,,,,,42,,,17,,,,,,,,,,,,,,,,,,,,,,,,18,85 +android.content,24,31,154,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,8,,,,,,,,4,27,,,,,63,91 +android.database,59,,41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,,,,,41, +android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 +android.os,1,2,122,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,2,,,,,,41,81 +android.support.v4.app,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +android.util,6,16,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,, +android.webkit,3,2,,,,,,,,,,,,,,2,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, +android.widget,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1, +androidx.core.app,47,,95,,,,,,,,,,,,,,,,,,,,,,41,,,6,,,,,,,,,,,,,,,,,,,,,,,,12,83 +androidx.fragment.app,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +androidx.slice,2,5,88,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,5,,,,,27,61 +antlr,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +ch.ethz.ssh2,2,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +cn.hutool.core.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.alibaba.com.caucho.hessian.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, +com.alibaba.druid.sql,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,1, +com.alibaba.fastjson2,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.amazonaws.auth,2,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.auth0.jwt.algorithms,6,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.azure.identity,3,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.caucho.burlap.io,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +com.caucho.hessian.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, +com.cedarsoftware.util.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, +com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.esotericsoftware.yamlbeans,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.fasterxml.jackson.databind,2,,8,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,8, +com.google.common.base,4,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,1,,,,,,,,,,,,,,,,,,,,63,24 +com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17 +com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,551 +com.google.common.flogger,29,,,,,,,,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.google.common.io,10,,73,,,,,,,,,1,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,,,,,,,,,,,,72,1 +com.google.gson,,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,38,14 +com.hubspot.jinjava,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,, +com.jcraft.jsch,5,,1,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,1, +com.microsoft.sqlserver.jdbc,4,,,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.mitchellbosecke.pebble,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,, +com.mongodb,10,,,,,,4,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.opensymphony.xwork2,56,,961,,,,,,,,,,,,,,,,,,,,,,,56,,,,,,,,,,,,,,,,,,,,,,,,,,867,94 +com.rabbitmq.client,,21,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,7, +com.sshtools.j2ssh.authentication,3,,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.crypto.provider,19,,,,,17,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.jndi.ldap,4,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.net.httpserver,3,,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.net.ssl,3,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.rowset,3,,,,,,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.security.auth.module,2,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.security.ntlm,5,,,,,,3,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.sun.security.sasl.digest,3,,,,,,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.thoughtworks.xstream,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +com.trilead.ssh2,13,,,,,2,4,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.unboundid.ldap.sdk,17,,,,,,,,,,,,,,,,,,,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +com.zaxxer.hikari,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,, +flexjson,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +freemarker.cache,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,, +freemarker.template,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,, +groovy.lang,26,,,,,,,,,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +groovy.text,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +groovy.util,5,,,,,,,,,,,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hudson,75,9,2648,,4,,,,,,3,2,,,,4,,,,,,,,,,,56,,,,,,,,,6,,,,,,,,,,,,,,5,4,2572,76 +io.jsonwebtoken,,2,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4, +io.netty.bootstrap,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,, +io.netty.buffer,,,207,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,130,77 +io.netty.channel,9,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,,2,, +io.netty.handler.codec,4,13,259,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,3,,,,,,,,,,,,,,,13,143,116 +io.netty.handler.ssl,4,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,, +io.netty.handler.stream,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +io.netty.resolver,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +io.netty.util,2,,23,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,,21,2 +io.undertow.server.handlers.resource,1,,3,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,3, +jakarta.activation,2,,2,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,,2, +jakarta.faces.context,4,7,,,,,,,,,,,,,,2,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,7,, +jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 +jakarta.persistence,2,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,1, +jakarta.servlet,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,1,, +jakarta.ws.rs.client,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, +jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55 +jakarta.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, +java.applet,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11, +java.awt,1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,3 +java.beans,1,,177,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,82,95 +java.io,66,1,225,,,,,,,,,22,,,,,,,,,,,,,,,44,,,,,,,,,,,,,,,,,,,,,,,1,,202,23 +java.lang,38,3,783,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,,,3,,,506,277 +java.math,,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9 +java.net,23,3,347,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,21,,,,,,,,,,,,,,,3,248,99 +java.nio,47,,499,,,,,,,,,5,,,,,,,,,,,,,,,41,,,,,,,,,1,,,,,,,,,,,,,,,,302,197 +java.rmi,,,68,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,23 +java.security,21,,583,,,11,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,285,298 +java.sql,15,1,292,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,9,,,,,,,,,,1,,,,274,18 +java.text,,,154,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,82 +java.time,,,131,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,104 +java.util,48,2,1339,,,,,,,,,1,,,,,,,,,,,34,,,,3,,,,5,2,,1,2,,,,,,,,,,,,,,2,,,558,781 +javafx.scene.web,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +javax.accessibility,,,63,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28,35 +javax.activation,2,,7,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,,7, +javax.annotation.processing,,,28,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,3 +javax.crypto,19,,114,,,12,3,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,61,53 +javax.faces.context,4,7,,,,,,,,,,,,,,2,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,7,, +javax.imageio,1,,304,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,138,166 +javax.jms,,9,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,57, +javax.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 +javax.lang.model,,,277,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,217,60 +javax.management,2,,766,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,363,403 +javax.naming,7,,341,,,,,,,,,,,,,,,,,6,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,191,150 +javax.net,4,,136,,,,2,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,49 +javax.portlet,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, +javax.print,2,,133,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,102,31 +javax.rmi.ssl,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6 +javax.script,1,,50,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,14,36 +javax.security.auth,7,,147,,,4,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,50,97 +javax.security.cert,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5, +javax.security.sasl,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,42,7 +javax.servlet,10,22,3,,,,,,,,,,,,,,1,,,,,,,,,,2,,,,,,,,,,3,,,2,,2,,,,,,,,,22,3, +javax.smartcardio,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,24,10 +javax.sound.midi,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,9 +javax.sound.sampled,,,90,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,37 +javax.sql,7,,126,,,,4,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,68,58 +javax.tools,,,66,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,4 +javax.transaction.xa,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +javax.validation,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +javax.ws.rs.client,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +javax.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,, +javax.ws.rs.core,3,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,2,,,,,,,,,94,55 +javax.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, +javax.xml.catalog,,,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11,1 +javax.xml.crypto,,,269,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,172,97 +javax.xml.datatype,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,1 +javax.xml.namespace,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,10 +javax.xml.parsers,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35,2 +javax.xml.stream,,,221,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,201,20 +javax.xml.transform,2,,134,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,1,,,,,,,72,62 +javax.xml.validation,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,29, +javax.xml.xpath,3,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,26, +jenkins,,,523,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,500,23 +jodd.json,,,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 +kotlin,16,,1849,,,,,,,,,,,,,,,,,,,,,,,,14,,,,,,,,,2,,,,,,,,,,,,,,,,1836,13 +liquibase.database.jvm,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, +liquibase.statement.core,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, +net.lingala.zip4j,2,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,, +net.schmizz.sshj,4,,,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +net.sf.json,2,,338,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,321,17 +net.sf.saxon.s9api,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,,,, +ognl,6,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,, +okhttp3,4,,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,23,27 +org.acegisecurity,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,49, +org.antlr.runtime,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, +org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.compress.archivers.tar,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, +org.apache.commons.exec,10,,,,6,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.httpclient.util,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.commons.io,124,,570,,,,,,,,,4,,,,,,,,,,,,,,,105,,,,,,,,,15,,,,,,,,,,,,,,,,556,14 +org.apache.commons.jelly,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,, +org.apache.commons.jexl2,15,,,,,,,,,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.jexl3,15,,,,,,,,,,,,,,,,,,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.lang,1,,767,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,596,171 +org.apache.commons.lang3,7,,425,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,1,,,,,,,,,,,294,131 +org.apache.commons.logging,6,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.net,13,12,,,,,2,2,,,,,,,,,,,,,,,,,,,3,,,,,,,,,6,,,,,,,,,,,,,,,12,, +org.apache.commons.ognl,6,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.commons.text,,,272,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,220,52 +org.apache.cxf.catalog,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +org.apache.cxf.common.classloader,3,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,2,,,,,,,,,,,,,,,,, +org.apache.cxf.common.jaxb,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.common.logging,6,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.configuration.jsse,2,,,,,,,,,,,,,,1,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.helpers,10,,,,,,,,,,,,,,,,,,,,,,,,,,5,,,,,,,,,,,,,,,,,5,,,,,,,,, +org.apache.cxf.resource,9,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,5,,,,,,,,,,,,,,,,, +org.apache.cxf.staxutils,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.tools.corba.utils,4,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.tools.util,10,,,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.cxf.transform,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,, +org.apache.directory.ldap.client.api,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.hadoop.fs,3,,11,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,11, +org.apache.hadoop.hive.metastore,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,, +org.apache.hadoop.hive.ql.exec,1,,1,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.hadoop.hive.ql.metadata,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.hc.client5.http.async.methods,84,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,84,,,,,,,,,,,,,,,,, +org.apache.hc.client5.http.classic.methods,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,, +org.apache.hc.client5.http.fluent,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,,,,,,,,,,,,,, +org.apache.hc.core5.benchmark,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +org.apache.hc.core5.function,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.hc.core5.http,73,2,45,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,72,,,,,,,,,,,,,,,2,45, +org.apache.hc.core5.net,,,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18, +org.apache.hc.core5.util,,,24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,6 +org.apache.hive.hcatalog.templeton,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, +org.apache.http,48,3,95,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,46,,,,,,,,,,,,,,,3,86,9 +org.apache.ibatis.jdbc,6,,57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,57, +org.apache.ibatis.mapping,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.log4j,11,,,,,,,,,,,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.logging.log4j,359,,8,,,,,,,,,,,,,,,,,,,,359,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4 +org.apache.shiro.authc,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +org.apache.shiro.codec,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.shiro.jndi,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.shiro.mgt,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.sshd.client.session,3,,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.struts.beanvalidation.validation.interceptor,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, +org.apache.struts2,14,,3873,,,,,,,,,,,,,,,,,,,,,,,11,,,,,,,,,,,,,,3,,,,,,,,,,,,3839,34 +org.apache.tools.ant,14,,,,1,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,, +org.apache.tools.zip,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.apache.velocity.app,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,, +org.apache.velocity.runtime,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,, +org.codehaus.cargo.container.installer,3,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,1,,,,,,,,,,,,,,,,, +org.codehaus.groovy.control,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.dom4j,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,, +org.eclipse.jetty.client,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,, +org.exolab.castor.xml,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +org.fusesource.leveldbjni,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.geogebra.web.full.main,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,, +org.gradle.api.file,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +org.hibernate,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,,,,, +org.ho.yaml,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,,,,,,,,,,,, +org.influxdb,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +org.jabsorb,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +org.jboss.logging,324,,,,,,,,,,,,,,,,,,,,,,324,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.jboss.vfs,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.jdbi.v3.core,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,, +org.jenkins.ui.icon,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,1 +org.jenkins.ui.symbol,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,25,8 +org.jooq,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, +org.json,,,236,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,198,38 +org.keycloak.models.map.storage,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, +org.kohsuke.stapler,20,24,363,,,,,,,,,,,,,2,,,,,,,,,,,9,,,,,,,,,3,,,,,,1,5,,,,,,,,24,352,11 +org.lastaflute.web,,1,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,4, +org.mvel2,16,,,,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.openjdk.jmh.runner.options,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, +org.owasp.esapi,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.pac4j.jwt.config.encryption,4,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.pac4j.jwt.config.signature,4,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.scijava.log,13,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.slf4j,55,,6,,,,,,,,,,,,,,,,,,,,55,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4 +org.springframework.beans,,,30,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,30 +org.springframework.boot.jdbc,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13 +org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +org.springframework.core.io,17,,6,,,,,,,,,,,,,,,,,,,,,,,,16,,,,,,,,,1,,,,,,,,,,,,,,,,6, +org.springframework.data.repository,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +org.springframework.http,14,,77,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14,,,,,,,,,,,,,,,,67,10 +org.springframework.jdbc.core,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,,,,,,,,,,,, +org.springframework.jdbc.datasource,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,,,,,,,,,,,,,,,, +org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,, +org.springframework.jndi,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.ldap,47,,,,,,,,,,,,,,,,,,,33,,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.security.core.userdetails,2,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +org.springframework.security.web.savedrequest,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,, +org.springframework.ui,,,32,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,32 +org.springframework.util,10,,142,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,,,,,,,,,,,,,,90,52 +org.springframework.validation,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13, +org.springframework.web.client,13,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,3,, +org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,, +org.springframework.web.multipart,,12,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,12, +org.springframework.web.portlet,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,, +org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,, +org.springframework.web.servlet,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,, +org.springframework.web.util,,9,157,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,132,25 +org.thymeleaf,2,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,2, +org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,, +org.yaml.snakeyaml,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +play.libs.ws,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,, +play.mvc,1,13,24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,13,24, +ratpack.core.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +ratpack.core.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, +ratpack.core.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, +ratpack.exec,,,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48 +ratpack.form,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, +ratpack.func,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 +ratpack.handling,,6,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,4, +ratpack.http,,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,10, +ratpack.util,,,35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,35 +retrofit2,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,1, +software.amazon.awssdk.transfer.s3.model,8,,,,,,,,,,,,,,,,,,,,,,,,,,8,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.jvmstat.perfdata.monitor.protocol.local,3,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.jvmstat.perfdata.monitor.protocol.rmi,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.misc,3,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.net.ftp,5,,,,,,2,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.net.www.protocol.http,3,,,,,,2,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.acl,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.jgss.krb5,2,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.krb5,9,,,,,3,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.pkcs,4,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.pkcs11,3,,,,,1,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.provider,2,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.ssl,3,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.security.x509,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +sun.tools.jconsole,28,,,,,,13,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 3851cb041664..aa6a3f2c1713 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -11,17 +11,17 @@ Java framework & library support Android extensions,``androidx.*``,5,183,60,,,,,, `Apache Commons Collections `_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1600,,,,,,, `Apache Commons IO `_,``org.apache.commons.io``,,570,124,105,,,,,15 - `Apache Commons Lang `_,``org.apache.commons.lang3``,,425,6,,,,,, + `Apache Commons Lang `_,``org.apache.commons.lang3``,,425,7,,,,,, `Apache Commons Text `_,``org.apache.commons.text``,,272,,,,,,, `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,183,122,,3,,,,119 `Apache Log4j 2 `_,``org.apache.logging.log4j``,,8,359,,,,,, `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, JBoss Logging,``org.jboss.logging``,,,324,,,,,, `JSON-java `_,``org.json``,,236,,,,,,, - Java Standard Library,``java.*``,10,4621,259,99,,9,,,26 + Java Standard Library,``java.*``,10,4621,260,99,,9,,,26 Java extensions,"``javax.*``, ``jakarta.*``",69,4159,90,10,4,2,1,1,4 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring `_,``org.springframework.*``,38,486,143,26,,28,14,,35 - Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``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``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``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``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``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.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``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.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``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``, ``retrofit2``, ``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``",133,10525,908,140,6,22,18,,208 - Totals,,312,26328,2635,404,16,128,33,1,409 + 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.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``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``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``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``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``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.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``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.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``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``, ``retrofit2``, ``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``",133,10525,927,140,6,22,18,,208 + Totals,,312,26328,2656,404,16,128,33,1,409 diff --git a/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/old.dbscheme b/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/old.dbscheme new file mode 100644 index 000000000000..1b8f5f4c747e --- /dev/null +++ b/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/old.dbscheme @@ -0,0 +1,1236 @@ +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * javac A.java B.java C.java + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * javac A.java B.java C.java + */ + unique int id : @compilation, + int kind: int ref, + string cwd : string ref, + string name : string ref +); + +case @compilation.kind of + 1 = @javacompilation +| 2 = @kotlincompilation +; + +compilation_started( + int id : @compilation ref +) + +compilation_info( + int id : @compilation ref, + string info_key: string ref, + string info_value: string ref +) + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--javac-args` + * 2 | A.java + * 3 | B.java + * 4 | C.java + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@@@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | A.java + * 1 | B.java + * 2 | C.java + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * For each file recorded in `compilation_compiling_files`, + * there will be a corresponding row in + * `compilation_compiling_files_completed` once extraction + * of that file is complete. The `result` will indicate the + * extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +#keyset[id, num] +compilation_compiling_files_completed( + int id : @compilation ref, + int num : int ref, + int result : int ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed + * time (respectively) that the original compilation (not the extraction) + * took for compiler invocation `id`. + */ +compilation_compiler_times( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + * The `result` will indicate the extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref, + int result : int ref +); + +diagnostics( + unique int id: @diagnostic, + string generated_by: string ref, // TODO: Sync this with the other languages? + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/* + * External artifacts + */ + +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +sourceLocationPrefix( + string prefix : string ref +); + +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path: string ref +); + +/* + * SMAP + */ + +smap_header( + int outputFileId: @file ref, + string outputFilename: string ref, + string defaultStratum: string ref +); + +smap_files( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + string inputFileName: string ref, + int inputFileId: @file ref +); + +smap_lines( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + int inputStartLine: int ref, + int inputLineCount: int ref, + int outputStartLine: int ref, + int outputLineIncrement: int ref +); + +/* + * Locations and files + */ + +@location = @location_default ; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +hasLocation( + int locatableid: @locatable ref, + int id: @location ref +); + +@sourceline = @locatable ; + +#keyset[element_id] +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/* + * Java + */ + +cupackage( + unique int id: @file ref, + int packageid: @package ref +); + +#keyset[fileid,keyName] +jarManifestMain( + int fileid: @file ref, + string keyName: string ref, + string value: string ref +); + +#keyset[fileid,entryName,keyName] +jarManifestEntries( + int fileid: @file ref, + string entryName: string ref, + string keyName: string ref, + string value: string ref +); + +packages( + unique int id: @package, + string nodeName: string ref +); + +primitives( + unique int id: @primitive, + string nodeName: string ref +); + +modifiers( + unique int id: @modifier, + string nodeName: string ref +); + +/** + * An errortype is used when the extractor is unable to extract a type + * correctly for some reason. + */ +error_type( + unique int id: @errortype +); + +classes_or_interfaces( + unique int id: @classorinterface, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @classorinterface ref +); + +file_class( + int id: @classorinterface ref +); + +class_object( + unique int id: @classorinterface ref, + unique int instance: @field ref +); + +type_companion_object( + unique int id: @classorinterface ref, + unique int instance: @field ref, + unique int companion_object: @classorinterface ref +); + +kt_nullable_types( + unique int id: @kt_nullable_type, + int classid: @reftype ref +) + +kt_notnull_types( + unique int id: @kt_notnull_type, + int classid: @reftype ref +) + +kt_type_alias( + unique int id: @kt_type_alias, + string name: string ref, + int kttypeid: @kt_type ref +) + +@kt_type = @kt_nullable_type | @kt_notnull_type + +isInterface( + unique int id: @classorinterface ref +); + +isRecord( + unique int id: @classorinterface ref +); + +fielddecls( + unique int id: @fielddecl, + int parentid: @reftype ref +); + +#keyset[fieldId] #keyset[fieldDeclId,pos] +fieldDeclaredIn( + int fieldId: @field ref, + int fieldDeclId: @fielddecl ref, + int pos: int ref +); + +fields( + unique int id: @field, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @reftype ref +); + +fieldsKotlinType( + unique int id: @field ref, + int kttypeid: @kt_type ref +); + +constrs( + unique int id: @constructor, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @constructor ref +); + +constrsKotlinType( + unique int id: @constructor ref, + int kttypeid: @kt_type ref +); + +methods( + unique int id: @method, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @method ref +); + +methodsKotlinType( + unique int id: @method ref, + int kttypeid: @kt_type ref +); + +#keyset[parentid,pos] +params( + unique int id: @param, + int typeid: @type ref, + int pos: int ref, + int parentid: @callable ref, + int sourceid: @param ref +); + +paramsKotlinType( + unique int id: @param ref, + int kttypeid: @kt_type ref +); + +paramName( + unique int id: @param ref, + string nodeName: string ref +); + +isVarargsParam( + int param: @param ref +); + +exceptions( + unique int id: @exception, + int typeid: @type ref, + int parentid: @callable ref +); + +isAnnotType( + int interfaceid: @classorinterface ref +); + +isAnnotElem( + int methodid: @method ref +); + +annotValue( + int parentid: @annotation ref, + int id2: @method ref, + unique int value: @expr ref +); + +isEnumType( + int classid: @classorinterface ref +); + +isEnumConst( + int fieldid: @field ref +); + +#keyset[parentid,pos] +typeVars( + unique int id: @typevariable, + string nodeName: string ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +wildcards( + unique int id: @wildcard, + string nodeName: string ref, + int kind: int ref +); + +#keyset[parentid,pos] +typeBounds( + unique int id: @typebound, + int typeid: @reftype ref, + int pos: int ref, + int parentid: @boundedtype ref +); + +#keyset[parentid,pos] +typeArgs( + int argumentid: @reftype ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +isParameterized( + int memberid: @member ref +); + +isRaw( + int memberid: @member ref +); + +#keyset[classid] #keyset[parent] +isAnonymClass( + int classid: @classorinterface ref, + int parent: @classinstancexpr ref +); + +#keyset[typeid] #keyset[parent] +isLocalClassOrInterface( + int typeid: @classorinterface ref, + int parent: @localtypedeclstmt ref +); + +isDefConstr( + int constructorid: @constructor ref +); + +#keyset[exprId] +lambdaKind( + int exprId: @lambdaexpr ref, + int bodyKind: int ref +); + +isCanonicalConstr( + int constructorid: @constructor ref +); + +arrays( + unique int id: @array, + string nodeName: string ref, + int elementtypeid: @type ref, + int dimension: int ref, + int componenttypeid: @type ref +); + +enclInReftype( + unique int child: @reftype ref, + int parent: @reftype ref +); + +extendsReftype( + int id1: @reftype ref, + int id2: @classorinterface ref +); + +implInterface( + int id1: @classorarray ref, + int id2: @classorinterface ref +); + +permits( + int id1: @classorinterface ref, + int id2: @classorinterface ref +); + +hasModifier( + int id1: @modifiable ref, + int id2: @modifier ref +); + +imports( + unique int id: @import, + int holder: @classorinterfaceorpackage ref, + string name: string ref, + int kind: int ref +); + +#keyset[parent,idx] +stmts( + unique int id: @stmt, + int kind: int ref, + int parent: @stmtparent ref, + int idx: int ref, + int bodydecl: @callable ref +); + +@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr; + +case @stmt.kind of + 0 = @block +| 1 = @ifstmt +| 2 = @forstmt +| 3 = @enhancedforstmt +| 4 = @whilestmt +| 5 = @dostmt +| 6 = @trystmt +| 7 = @switchstmt +| 8 = @synchronizedstmt +| 9 = @returnstmt +| 10 = @throwstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @emptystmt +| 14 = @exprstmt +| 15 = @labeledstmt +| 16 = @assertstmt +| 17 = @localvariabledeclstmt +| 18 = @localtypedeclstmt +| 19 = @constructorinvocationstmt +| 20 = @superconstructorinvocationstmt +| 21 = @case +| 22 = @catchclause +| 23 = @yieldstmt +| 24 = @errorstmt +| 25 = @whenbranch +; + +#keyset[parent,idx] +exprs( + unique int id: @expr, + int kind: int ref, + int typeid: @type ref, + int parent: @exprparent ref, + int idx: int ref +); + +exprsKotlinType( + unique int id: @expr ref, + int kttypeid: @kt_type ref +); + +callableEnclosingExpr( + unique int id: @expr ref, + int callable_id: @callable ref +); + +statementEnclosingExpr( + unique int id: @expr ref, + int statement_id: @stmt ref +); + +isParenthesized( + unique int id: @expr ref, + int parentheses: int ref +); + +case @expr.kind of + 1 = @arrayaccess +| 2 = @arraycreationexpr +| 3 = @arrayinit +| 4 = @assignexpr +| 5 = @assignaddexpr +| 6 = @assignsubexpr +| 7 = @assignmulexpr +| 8 = @assigndivexpr +| 9 = @assignremexpr +| 10 = @assignandexpr +| 11 = @assignorexpr +| 12 = @assignxorexpr +| 13 = @assignlshiftexpr +| 14 = @assignrshiftexpr +| 15 = @assignurshiftexpr +| 16 = @booleanliteral +| 17 = @integerliteral +| 18 = @longliteral +| 19 = @floatingpointliteral +| 20 = @doubleliteral +| 21 = @characterliteral +| 22 = @stringliteral +| 23 = @nullliteral +| 24 = @mulexpr +| 25 = @divexpr +| 26 = @remexpr +| 27 = @addexpr +| 28 = @subexpr +| 29 = @lshiftexpr +| 30 = @rshiftexpr +| 31 = @urshiftexpr +| 32 = @andbitexpr +| 33 = @orbitexpr +| 34 = @xorbitexpr +| 35 = @andlogicalexpr +| 36 = @orlogicalexpr +| 37 = @ltexpr +| 38 = @gtexpr +| 39 = @leexpr +| 40 = @geexpr +| 41 = @eqexpr +| 42 = @neexpr +| 43 = @postincexpr +| 44 = @postdecexpr +| 45 = @preincexpr +| 46 = @predecexpr +| 47 = @minusexpr +| 48 = @plusexpr +| 49 = @bitnotexpr +| 50 = @lognotexpr +| 51 = @castexpr +| 52 = @newexpr +| 53 = @conditionalexpr +| 54 = @parexpr // deprecated +| 55 = @instanceofexpr +| 56 = @localvariabledeclexpr +| 57 = @typeliteral +| 58 = @thisaccess +| 59 = @superaccess +| 60 = @varaccess +| 61 = @methodaccess +| 62 = @unannotatedtypeaccess +| 63 = @arraytypeaccess +| 64 = @packageaccess +| 65 = @wildcardtypeaccess +| 66 = @declannotation +| 67 = @uniontypeaccess +| 68 = @lambdaexpr +| 69 = @memberref +| 70 = @annotatedtypeaccess +| 71 = @typeannotation +| 72 = @intersectiontypeaccess +| 73 = @switchexpr +| 74 = @errorexpr +| 75 = @whenexpr +| 76 = @getclassexpr +| 77 = @safecastexpr +| 78 = @implicitcastexpr +| 79 = @implicitnotnullexpr +| 80 = @implicitcoerciontounitexpr +| 81 = @notinstanceofexpr +| 82 = @stmtexpr +| 83 = @stringtemplateexpr +| 84 = @notnullexpr +| 85 = @unsafecoerceexpr +| 86 = @valueeqexpr +| 87 = @valueneexpr +| 88 = @propertyref +| 89 = @recordpatternexpr +; + +/** Holds if this `when` expression was written as an `if` expression. */ +when_if(unique int id: @whenexpr ref); + +/** Holds if this `when` branch was written as an `else` branch. */ +when_branch_else(unique int id: @whenbranch ref); + +@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref + +@annotation = @declannotation | @typeannotation +@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess + +@assignment = @assignexpr + | @assignop; + +@unaryassignment = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr; + +@assignop = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + | @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignurshiftexpr; + +@literal = @booleanliteral + | @integerliteral + | @longliteral + | @floatingpointliteral + | @doubleliteral + | @characterliteral + | @stringliteral + | @nullliteral; + +@binaryexpr = @mulexpr + | @divexpr + | @remexpr + | @addexpr + | @subexpr + | @lshiftexpr + | @rshiftexpr + | @urshiftexpr + | @andbitexpr + | @orbitexpr + | @xorbitexpr + | @andlogicalexpr + | @orlogicalexpr + | @ltexpr + | @gtexpr + | @leexpr + | @geexpr + | @eqexpr + | @neexpr + | @valueeqexpr + | @valueneexpr; + +@unaryexpr = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr + | @minusexpr + | @plusexpr + | @bitnotexpr + | @lognotexpr + | @notnullexpr; + +@caller = @classinstancexpr + | @methodaccess + | @constructorinvocationstmt + | @superconstructorinvocationstmt; + +callableBinding( + unique int callerid: @caller ref, + int callee: @callable ref +); + +memberRefBinding( + unique int id: @expr ref, + int callable: @callable ref +); + +propertyRefGetBinding( + unique int id: @expr ref, + int getter: @callable ref +); + +propertyRefFieldBinding( + unique int id: @expr ref, + int field: @field ref +); + +propertyRefSetBinding( + unique int id: @expr ref, + int setter: @callable ref +); + +@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @classorinterface | @param | @localvar | @typevariable; + +variableBinding( + unique int expr: @varaccess ref, + int variable: @variable ref +); + +@variable = @localscopevariable | @field; + +@localscopevariable = @localvar | @param; + +localvars( + unique int id: @localvar, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @localvariabledeclexpr ref +); + +localvarsKotlinType( + unique int id: @localvar ref, + int kttypeid: @kt_type ref +); + +@namedexprorstmt = @breakstmt + | @continuestmt + | @labeledstmt + | @literal; + +namestrings( + string name: string ref, + string value: string ref, + unique int parent: @namedexprorstmt ref +); + +/* + * Modules + */ + +#keyset[name] +modules( + unique int id: @module, + string name: string ref +); + +isOpen( + int id: @module ref +); + +#keyset[fileId] +cumodule( + int fileId: @file ref, + int moduleId: @module ref +); + +@directive = @requires + | @exports + | @opens + | @uses + | @provides + +#keyset[directive] +directives( + int id: @module ref, + int directive: @directive ref +); + +requires( + unique int id: @requires, + int target: @module ref +); + +isTransitive( + int id: @requires ref +); + +isStatic( + int id: @requires ref +); + +exports( + unique int id: @exports, + int target: @package ref +); + +exportsTo( + int id: @exports ref, + int target: @module ref +); + +opens( + unique int id: @opens, + int target: @package ref +); + +opensTo( + int id: @opens ref, + int target: @module ref +); + +uses( + unique int id: @uses, + string serviceInterface: string ref +); + +provides( + unique int id: @provides, + string serviceInterface: string ref +); + +providesWith( + int id: @provides ref, + string serviceImpl: string ref +); + +isNullDefaultCase( + int id: @case ref +); + +/* + * Javadoc + */ + +javadoc( + unique int id: @javadoc +); + +isNormalComment( + int commentid : @javadoc ref +); + +isEolComment( + int commentid : @javadoc ref +); + +hasJavadoc( + int documentableid: @member ref, + int javadocid: @javadoc ref +); + +#keyset[parentid,idx] +javadocTag( + unique int id: @javadocTag, + string name: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +#keyset[parentid,idx] +javadocText( + unique int id: @javadocText, + string text: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +@javadocParent = @javadoc | @javadocTag; +@javadocElement = @javadocTag | @javadocText; + +@classorinterfaceorpackage = @classorinterface | @package; +@classorinterfaceorcallable = @classorinterface | @callable; +@boundedtype = @typevariable | @wildcard; +@reftype = @classorinterface | @array | @boundedtype | @errortype; +@classorarray = @classorinterface | @array; +@type = @primitive | @reftype; +@callable = @method | @constructor; + +/** A program element that has a name. */ +@element = @package | @modifier | @annotation | @errortype | + @locatableElement; + +@locatableElement = @file | @primitive | @classorinterface | @method | @constructor | @param | @exception | @field | + @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias | + @kt_property; + +@modifiable = @member_modifiable| @param | @localvar | @typevariable; + +@member_modifiable = @classorinterface | @method | @constructor | @field | @kt_property; + +@member = @method | @constructor | @field | @reftype ; + +/** A program element that has a location. */ +@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment | + @locatableElement; + +@top = @element | @locatable | @folder; + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* + * configuration files with key value pairs + */ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +ktComments( + unique int id: @ktcomment, + int kind: int ref, + string text : string ref +) + +ktCommentSections( + unique int id: @ktcommentsection, + int comment: @ktcomment ref, + string content : string ref +) + +ktCommentSectionNames( + unique int id: @ktcommentsection ref, + string name : string ref +) + +ktCommentSectionSubjectNames( + unique int id: @ktcommentsection ref, + string subjectname : string ref +) + +#keyset[id, owner] +ktCommentOwners( + int id: @ktcomment ref, + int owner: @top ref +) + +ktExtensionFunctions( + unique int id: @method ref, + int typeid: @type ref, + int kttypeid: @kt_type ref +) + +ktProperties( + unique int id: @kt_property, + string nodeName: string ref +) + +ktPropertyGetters( + unique int id: @kt_property ref, + int getter: @method ref +) + +ktPropertySetters( + unique int id: @kt_property ref, + int setter: @method ref +) + +ktPropertyBackingFields( + unique int id: @kt_property ref, + int backingField: @field ref +) + +ktSyntheticBody( + unique int id: @callable ref, + int kind: int ref + // 1: ENUM_VALUES + // 2: ENUM_VALUEOF + // 3: ENUM_ENTRIES +) + +ktLocalFunction( + unique int id: @method ref +) + +ktInitializerAssignment( + unique int id: @assignexpr ref +) + +ktPropertyDelegates( + unique int id: @kt_property ref, + unique int variableId: @variable ref +) + +/** + * If `id` is a compiler generated element, then the kind indicates the + * reason that the compiler generated it. + * See `Element.compilerGeneratedReason()` for an explanation of what + * each `kind` means. + */ +compiler_generated( + unique int id: @element ref, + int kind: int ref +) + +ktFunctionOriginalNames( + unique int id: @method ref, + string name: string ref +) + +ktDataClasses( + unique int id: @classorinterface ref +) diff --git a/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/semmlecode.dbscheme b/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/semmlecode.dbscheme new file mode 100644 index 000000000000..38d02c063878 --- /dev/null +++ b/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/semmlecode.dbscheme @@ -0,0 +1,1232 @@ +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * javac A.java B.java C.java + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * javac A.java B.java C.java + */ + unique int id : @compilation, + int kind: int ref, + string cwd : string ref, + string name : string ref +); + +case @compilation.kind of + 1 = @javacompilation +| 2 = @kotlincompilation +; + +compilation_started( + int id : @compilation ref +) + +compilation_info( + int id : @compilation ref, + string info_key: string ref, + string info_value: string ref +) + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--javac-args` + * 2 | A.java + * 3 | B.java + * 4 | C.java + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@@@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | A.java + * 1 | B.java + * 2 | C.java + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * For each file recorded in `compilation_compiling_files`, + * there will be a corresponding row in + * `compilation_compiling_files_completed` once extraction + * of that file is complete. The `result` will indicate the + * extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +#keyset[id, num] +compilation_compiling_files_completed( + int id : @compilation ref, + int num : int ref, + int result : int ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed + * time (respectively) that the original compilation (not the extraction) + * took for compiler invocation `id`. + */ +compilation_compiler_times( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + * The `result` will indicate the extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref, + int result : int ref +); + +diagnostics( + unique int id: @diagnostic, + string generated_by: string ref, // TODO: Sync this with the other languages? + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/* + * External artifacts + */ + +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +sourceLocationPrefix( + string prefix : string ref +); + +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +/* + * SMAP + */ + +smap_header( + int outputFileId: @file ref, + string outputFilename: string ref, + string defaultStratum: string ref +); + +smap_files( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + string inputFileName: string ref, + int inputFileId: @file ref +); + +smap_lines( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + int inputStartLine: int ref, + int inputLineCount: int ref, + int outputStartLine: int ref, + int outputLineIncrement: int ref +); + +/* + * Locations and files + */ + +@location = @location_default ; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +hasLocation( + int locatableid: @locatable ref, + int id: @location ref +); + +@sourceline = @locatable ; + +#keyset[element_id] +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/* + * Java + */ + +cupackage( + unique int id: @file ref, + int packageid: @package ref +); + +#keyset[fileid,keyName] +jarManifestMain( + int fileid: @file ref, + string keyName: string ref, + string value: string ref +); + +#keyset[fileid,entryName,keyName] +jarManifestEntries( + int fileid: @file ref, + string entryName: string ref, + string keyName: string ref, + string value: string ref +); + +packages( + unique int id: @package, + string nodeName: string ref +); + +primitives( + unique int id: @primitive, + string nodeName: string ref +); + +modifiers( + unique int id: @modifier, + string nodeName: string ref +); + +/** + * An errortype is used when the extractor is unable to extract a type + * correctly for some reason. + */ +error_type( + unique int id: @errortype +); + +classes_or_interfaces( + unique int id: @classorinterface, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @classorinterface ref +); + +file_class( + int id: @classorinterface ref +); + +class_object( + unique int id: @classorinterface ref, + unique int instance: @field ref +); + +type_companion_object( + unique int id: @classorinterface ref, + unique int instance: @field ref, + unique int companion_object: @classorinterface ref +); + +kt_nullable_types( + unique int id: @kt_nullable_type, + int classid: @reftype ref +) + +kt_notnull_types( + unique int id: @kt_notnull_type, + int classid: @reftype ref +) + +kt_type_alias( + unique int id: @kt_type_alias, + string name: string ref, + int kttypeid: @kt_type ref +) + +@kt_type = @kt_nullable_type | @kt_notnull_type + +isInterface( + unique int id: @classorinterface ref +); + +isRecord( + unique int id: @classorinterface ref +); + +fielddecls( + unique int id: @fielddecl, + int parentid: @reftype ref +); + +#keyset[fieldId] #keyset[fieldDeclId,pos] +fieldDeclaredIn( + int fieldId: @field ref, + int fieldDeclId: @fielddecl ref, + int pos: int ref +); + +fields( + unique int id: @field, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @reftype ref +); + +fieldsKotlinType( + unique int id: @field ref, + int kttypeid: @kt_type ref +); + +constrs( + unique int id: @constructor, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @constructor ref +); + +constrsKotlinType( + unique int id: @constructor ref, + int kttypeid: @kt_type ref +); + +methods( + unique int id: @method, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @method ref +); + +methodsKotlinType( + unique int id: @method ref, + int kttypeid: @kt_type ref +); + +#keyset[parentid,pos] +params( + unique int id: @param, + int typeid: @type ref, + int pos: int ref, + int parentid: @callable ref, + int sourceid: @param ref +); + +paramsKotlinType( + unique int id: @param ref, + int kttypeid: @kt_type ref +); + +paramName( + unique int id: @param ref, + string nodeName: string ref +); + +isVarargsParam( + int param: @param ref +); + +exceptions( + unique int id: @exception, + int typeid: @type ref, + int parentid: @callable ref +); + +isAnnotType( + int interfaceid: @classorinterface ref +); + +isAnnotElem( + int methodid: @method ref +); + +annotValue( + int parentid: @annotation ref, + int id2: @method ref, + unique int value: @expr ref +); + +isEnumType( + int classid: @classorinterface ref +); + +isEnumConst( + int fieldid: @field ref +); + +#keyset[parentid,pos] +typeVars( + unique int id: @typevariable, + string nodeName: string ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +wildcards( + unique int id: @wildcard, + string nodeName: string ref, + int kind: int ref +); + +#keyset[parentid,pos] +typeBounds( + unique int id: @typebound, + int typeid: @reftype ref, + int pos: int ref, + int parentid: @boundedtype ref +); + +#keyset[parentid,pos] +typeArgs( + int argumentid: @reftype ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +isParameterized( + int memberid: @member ref +); + +isRaw( + int memberid: @member ref +); + +#keyset[classid] #keyset[parent] +isAnonymClass( + int classid: @classorinterface ref, + int parent: @classinstancexpr ref +); + +#keyset[typeid] #keyset[parent] +isLocalClassOrInterface( + int typeid: @classorinterface ref, + int parent: @localtypedeclstmt ref +); + +isDefConstr( + int constructorid: @constructor ref +); + +#keyset[exprId] +lambdaKind( + int exprId: @lambdaexpr ref, + int bodyKind: int ref +); + +isCanonicalConstr( + int constructorid: @constructor ref +); + +arrays( + unique int id: @array, + string nodeName: string ref, + int elementtypeid: @type ref, + int dimension: int ref, + int componenttypeid: @type ref +); + +enclInReftype( + unique int child: @reftype ref, + int parent: @reftype ref +); + +extendsReftype( + int id1: @reftype ref, + int id2: @classorinterface ref +); + +implInterface( + int id1: @classorarray ref, + int id2: @classorinterface ref +); + +permits( + int id1: @classorinterface ref, + int id2: @classorinterface ref +); + +hasModifier( + int id1: @modifiable ref, + int id2: @modifier ref +); + +imports( + unique int id: @import, + int holder: @classorinterfaceorpackage ref, + string name: string ref, + int kind: int ref +); + +#keyset[parent,idx] +stmts( + unique int id: @stmt, + int kind: int ref, + int parent: @stmtparent ref, + int idx: int ref, + int bodydecl: @callable ref +); + +@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr; + +case @stmt.kind of + 0 = @block +| 1 = @ifstmt +| 2 = @forstmt +| 3 = @enhancedforstmt +| 4 = @whilestmt +| 5 = @dostmt +| 6 = @trystmt +| 7 = @switchstmt +| 8 = @synchronizedstmt +| 9 = @returnstmt +| 10 = @throwstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @emptystmt +| 14 = @exprstmt +| 15 = @labeledstmt +| 16 = @assertstmt +| 17 = @localvariabledeclstmt +| 18 = @localtypedeclstmt +| 19 = @constructorinvocationstmt +| 20 = @superconstructorinvocationstmt +| 21 = @case +| 22 = @catchclause +| 23 = @yieldstmt +| 24 = @errorstmt +| 25 = @whenbranch +; + +#keyset[parent,idx] +exprs( + unique int id: @expr, + int kind: int ref, + int typeid: @type ref, + int parent: @exprparent ref, + int idx: int ref +); + +exprsKotlinType( + unique int id: @expr ref, + int kttypeid: @kt_type ref +); + +callableEnclosingExpr( + unique int id: @expr ref, + int callable_id: @callable ref +); + +statementEnclosingExpr( + unique int id: @expr ref, + int statement_id: @stmt ref +); + +isParenthesized( + unique int id: @expr ref, + int parentheses: int ref +); + +case @expr.kind of + 1 = @arrayaccess +| 2 = @arraycreationexpr +| 3 = @arrayinit +| 4 = @assignexpr +| 5 = @assignaddexpr +| 6 = @assignsubexpr +| 7 = @assignmulexpr +| 8 = @assigndivexpr +| 9 = @assignremexpr +| 10 = @assignandexpr +| 11 = @assignorexpr +| 12 = @assignxorexpr +| 13 = @assignlshiftexpr +| 14 = @assignrshiftexpr +| 15 = @assignurshiftexpr +| 16 = @booleanliteral +| 17 = @integerliteral +| 18 = @longliteral +| 19 = @floatingpointliteral +| 20 = @doubleliteral +| 21 = @characterliteral +| 22 = @stringliteral +| 23 = @nullliteral +| 24 = @mulexpr +| 25 = @divexpr +| 26 = @remexpr +| 27 = @addexpr +| 28 = @subexpr +| 29 = @lshiftexpr +| 30 = @rshiftexpr +| 31 = @urshiftexpr +| 32 = @andbitexpr +| 33 = @orbitexpr +| 34 = @xorbitexpr +| 35 = @andlogicalexpr +| 36 = @orlogicalexpr +| 37 = @ltexpr +| 38 = @gtexpr +| 39 = @leexpr +| 40 = @geexpr +| 41 = @eqexpr +| 42 = @neexpr +| 43 = @postincexpr +| 44 = @postdecexpr +| 45 = @preincexpr +| 46 = @predecexpr +| 47 = @minusexpr +| 48 = @plusexpr +| 49 = @bitnotexpr +| 50 = @lognotexpr +| 51 = @castexpr +| 52 = @newexpr +| 53 = @conditionalexpr +| 54 = @parexpr // deprecated +| 55 = @instanceofexpr +| 56 = @localvariabledeclexpr +| 57 = @typeliteral +| 58 = @thisaccess +| 59 = @superaccess +| 60 = @varaccess +| 61 = @methodaccess +| 62 = @unannotatedtypeaccess +| 63 = @arraytypeaccess +| 64 = @packageaccess +| 65 = @wildcardtypeaccess +| 66 = @declannotation +| 67 = @uniontypeaccess +| 68 = @lambdaexpr +| 69 = @memberref +| 70 = @annotatedtypeaccess +| 71 = @typeannotation +| 72 = @intersectiontypeaccess +| 73 = @switchexpr +| 74 = @errorexpr +| 75 = @whenexpr +| 76 = @getclassexpr +| 77 = @safecastexpr +| 78 = @implicitcastexpr +| 79 = @implicitnotnullexpr +| 80 = @implicitcoerciontounitexpr +| 81 = @notinstanceofexpr +| 82 = @stmtexpr +| 83 = @stringtemplateexpr +| 84 = @notnullexpr +| 85 = @unsafecoerceexpr +| 86 = @valueeqexpr +| 87 = @valueneexpr +| 88 = @propertyref +| 89 = @recordpatternexpr +; + +/** Holds if this `when` expression was written as an `if` expression. */ +when_if(unique int id: @whenexpr ref); + +/** Holds if this `when` branch was written as an `else` branch. */ +when_branch_else(unique int id: @whenbranch ref); + +@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref + +@annotation = @declannotation | @typeannotation +@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess + +@assignment = @assignexpr + | @assignop; + +@unaryassignment = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr; + +@assignop = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + | @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignurshiftexpr; + +@literal = @booleanliteral + | @integerliteral + | @longliteral + | @floatingpointliteral + | @doubleliteral + | @characterliteral + | @stringliteral + | @nullliteral; + +@binaryexpr = @mulexpr + | @divexpr + | @remexpr + | @addexpr + | @subexpr + | @lshiftexpr + | @rshiftexpr + | @urshiftexpr + | @andbitexpr + | @orbitexpr + | @xorbitexpr + | @andlogicalexpr + | @orlogicalexpr + | @ltexpr + | @gtexpr + | @leexpr + | @geexpr + | @eqexpr + | @neexpr + | @valueeqexpr + | @valueneexpr; + +@unaryexpr = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr + | @minusexpr + | @plusexpr + | @bitnotexpr + | @lognotexpr + | @notnullexpr; + +@caller = @classinstancexpr + | @methodaccess + | @constructorinvocationstmt + | @superconstructorinvocationstmt; + +callableBinding( + unique int callerid: @caller ref, + int callee: @callable ref +); + +memberRefBinding( + unique int id: @expr ref, + int callable: @callable ref +); + +propertyRefGetBinding( + unique int id: @expr ref, + int getter: @callable ref +); + +propertyRefFieldBinding( + unique int id: @expr ref, + int field: @field ref +); + +propertyRefSetBinding( + unique int id: @expr ref, + int setter: @callable ref +); + +@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @classorinterface | @param | @localvar | @typevariable; + +variableBinding( + unique int expr: @varaccess ref, + int variable: @variable ref +); + +@variable = @localscopevariable | @field; + +@localscopevariable = @localvar | @param; + +localvars( + unique int id: @localvar, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @localvariabledeclexpr ref +); + +localvarsKotlinType( + unique int id: @localvar ref, + int kttypeid: @kt_type ref +); + +@namedexprorstmt = @breakstmt + | @continuestmt + | @labeledstmt + | @literal; + +namestrings( + string name: string ref, + string value: string ref, + unique int parent: @namedexprorstmt ref +); + +/* + * Modules + */ + +#keyset[name] +modules( + unique int id: @module, + string name: string ref +); + +isOpen( + int id: @module ref +); + +#keyset[fileId] +cumodule( + int fileId: @file ref, + int moduleId: @module ref +); + +@directive = @requires + | @exports + | @opens + | @uses + | @provides + +#keyset[directive] +directives( + int id: @module ref, + int directive: @directive ref +); + +requires( + unique int id: @requires, + int target: @module ref +); + +isTransitive( + int id: @requires ref +); + +isStatic( + int id: @requires ref +); + +exports( + unique int id: @exports, + int target: @package ref +); + +exportsTo( + int id: @exports ref, + int target: @module ref +); + +opens( + unique int id: @opens, + int target: @package ref +); + +opensTo( + int id: @opens ref, + int target: @module ref +); + +uses( + unique int id: @uses, + string serviceInterface: string ref +); + +provides( + unique int id: @provides, + string serviceInterface: string ref +); + +providesWith( + int id: @provides ref, + string serviceImpl: string ref +); + +isNullDefaultCase( + int id: @case ref +); + +/* + * Javadoc + */ + +javadoc( + unique int id: @javadoc +); + +isNormalComment( + int commentid : @javadoc ref +); + +isEolComment( + int commentid : @javadoc ref +); + +hasJavadoc( + int documentableid: @member ref, + int javadocid: @javadoc ref +); + +#keyset[parentid,idx] +javadocTag( + unique int id: @javadocTag, + string name: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +#keyset[parentid,idx] +javadocText( + unique int id: @javadocText, + string text: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +@javadocParent = @javadoc | @javadocTag; +@javadocElement = @javadocTag | @javadocText; + +@classorinterfaceorpackage = @classorinterface | @package; +@classorinterfaceorcallable = @classorinterface | @callable; +@boundedtype = @typevariable | @wildcard; +@reftype = @classorinterface | @array | @boundedtype | @errortype; +@classorarray = @classorinterface | @array; +@type = @primitive | @reftype; +@callable = @method | @constructor; + +/** A program element that has a name. */ +@element = @package | @modifier | @annotation | @errortype | + @locatableElement; + +@locatableElement = @file | @primitive | @classorinterface | @method | @constructor | @param | @exception | @field | + @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias | + @kt_property; + +@modifiable = @member_modifiable| @param | @localvar | @typevariable; + +@member_modifiable = @classorinterface | @method | @constructor | @field | @kt_property; + +@member = @method | @constructor | @field | @reftype ; + +/** A program element that has a location. */ +@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment | + @locatableElement; + +@top = @element | @locatable | @folder; + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* + * configuration files with key value pairs + */ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +ktComments( + unique int id: @ktcomment, + int kind: int ref, + string text : string ref +) + +ktCommentSections( + unique int id: @ktcommentsection, + int comment: @ktcomment ref, + string content : string ref +) + +ktCommentSectionNames( + unique int id: @ktcommentsection ref, + string name : string ref +) + +ktCommentSectionSubjectNames( + unique int id: @ktcommentsection ref, + string subjectname : string ref +) + +#keyset[id, owner] +ktCommentOwners( + int id: @ktcomment ref, + int owner: @top ref +) + +ktExtensionFunctions( + unique int id: @method ref, + int typeid: @type ref, + int kttypeid: @kt_type ref +) + +ktProperties( + unique int id: @kt_property, + string nodeName: string ref +) + +ktPropertyGetters( + unique int id: @kt_property ref, + int getter: @method ref +) + +ktPropertySetters( + unique int id: @kt_property ref, + int setter: @method ref +) + +ktPropertyBackingFields( + unique int id: @kt_property ref, + int backingField: @field ref +) + +ktSyntheticBody( + unique int id: @callable ref, + int kind: int ref + // 1: ENUM_VALUES + // 2: ENUM_VALUEOF + // 3: ENUM_ENTRIES +) + +ktLocalFunction( + unique int id: @method ref +) + +ktInitializerAssignment( + unique int id: @assignexpr ref +) + +ktPropertyDelegates( + unique int id: @kt_property ref, + unique int variableId: @variable ref +) + +/** + * If `id` is a compiler generated element, then the kind indicates the + * reason that the compiler generated it. + * See `Element.compilerGeneratedReason()` for an explanation of what + * each `kind` means. + */ +compiler_generated( + unique int id: @element ref, + int kind: int ref +) + +ktFunctionOriginalNames( + unique int id: @method ref, + string name: string ref +) + +ktDataClasses( + unique int id: @classorinterface ref +) diff --git a/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/upgrade.properties b/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/upgrade.properties new file mode 100644 index 000000000000..9ff059c0f813 --- /dev/null +++ b/java/downgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/upgrade.properties @@ -0,0 +1,3 @@ +description: Add overlayChangedFiles relation +compatibility: full +overlayChangedFiles.rel: delete diff --git a/java/kotlin-extractor/BUILD.bazel b/java/kotlin-extractor/BUILD.bazel index 575b9788e8c5..a714e06d4111 100644 --- a/java/kotlin-extractor/BUILD.bazel +++ b/java/kotlin-extractor/BUILD.bazel @@ -83,7 +83,7 @@ kt_javac_options( "kotlin.RequiresOptIn", "org.jetbrains.kotlin.ir.symbols.%s" % ("IrSymbolInternals" if version_less(v, "2.0.0") else "UnsafeDuringIrConstructionAPI"), - ], + ] + ([] if version_less(v, "2.2.20") else ["org.jetbrains.kotlin.DeprecatedForRemovalCompilerApi"]), x_suppress_version_warnings = True, ), # * extractor.name is different for each version, so we need to put it in different output dirs diff --git a/java/kotlin-extractor/deps/kotlin-compiler-2.2.20-Beta2.jar b/java/kotlin-extractor/deps/kotlin-compiler-2.2.20-Beta2.jar new file mode 100644 index 000000000000..8e720a86a1d4 --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-compiler-2.2.20-Beta2.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7f4befaac8055b86f648e82c13b86e2775d7ace4eb896e2d7a5b8669a0f29a7 +size 58317000 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.20-Beta2.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.20-Beta2.jar new file mode 100644 index 000000000000..db9a090c35be --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.20-Beta2.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6017df3eca219e1c970468631f81333bfd8739482a5de4d33688949b5a1af376 +size 56885422 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-2.2.20-Beta2.jar b/java/kotlin-extractor/deps/kotlin-stdlib-2.2.20-Beta2.jar new file mode 100644 index 000000000000..a6b812f7cea2 --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-stdlib-2.2.20-Beta2.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d01259e6090de3ff8e938144970980978eb4e764d755a70d4cd077552315a39c +size 1761449 diff --git a/java/kotlin-extractor/dev/wrapper.py b/java/kotlin-extractor/dev/wrapper.py index 08969528c926..aeef81e5c1d2 100755 --- a/java/kotlin-extractor/dev/wrapper.py +++ b/java/kotlin-extractor/dev/wrapper.py @@ -27,7 +27,7 @@ import io import os -DEFAULT_VERSION = "2.1.20" +DEFAULT_VERSION = "2.2.0" def options(): diff --git a/java/kotlin-extractor/generate_dbscheme.py b/java/kotlin-extractor/generate_dbscheme.py index be0c5622ed11..2f839158d9a0 100755 --- a/java/kotlin-extractor/generate_dbscheme.py +++ b/java/kotlin-extractor/generate_dbscheme.py @@ -35,10 +35,10 @@ def parse_dbscheme(filename): unions[name] = typs # tables - for relname, body in re.findall('\n([\w_]+)(\([^)]*\))', + for relname, body in re.findall(r'\n([\w_]+)(\([^)]*\))', dbscheme, flags=re.DOTALL): - columns = list(re.findall('(\S+)\s*:\s*([^\s,]+)(?:\s+(ref)|)', body)) + columns = list(re.findall(r'(\S+)\s*:\s*([^\s,]+)(?:\s+(ref)|)', body)) tables[relname] = columns parse_dbscheme(dbscheme) diff --git a/java/kotlin-extractor/pick-kotlin-version.py b/java/kotlin-extractor/pick-kotlin-version.py index d4d85820a8e2..718592d2bd61 100755 --- a/java/kotlin-extractor/pick-kotlin-version.py +++ b/java/kotlin-extractor/pick-kotlin-version.py @@ -26,7 +26,7 @@ def version_tuple(v): res = subprocess.run([kotlinc, "-version"], text=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) if res.returncode != 0: raise Exception(f"kotlinc -version failed: {res.stderr}") -m = re.match(r'.* kotlinc-jvm ([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z][a-zA-Z0-9]*)?) .*', res.stderr) +m = re.search(r' kotlinc-jvm ([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z][a-zA-Z0-9]*)?) ', res.stderr) if m is None: raise Exception(f'Cannot detect version of kotlinc (got {res.stderr})') version = m[1] diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 56deb81da012..2f87c77f8ee1 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -37,7 +37,6 @@ import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.sources.JavaSourceElement import org.jetbrains.kotlin.load.java.structure.* import org.jetbrains.kotlin.load.java.typeEnhancement.hasEnhancedNullability -import org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.NameUtils import org.jetbrains.kotlin.name.SpecialNames diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmModuleNameForDeserializedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmModuleNameForDeserializedDescriptor.kt new file mode 100644 index 000000000000..003be521ce0e --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmModuleNameForDeserializedDescriptor.kt @@ -0,0 +1,9 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor +import org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor + +fun getJvmModuleNameForDeserializedDescriptor(descriptor: CallableMemberDescriptor): String? { + return org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor(descriptor) +} + diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_20-Beta2/getJvmModuleNameForDeserializedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_20-Beta2/getJvmModuleNameForDeserializedDescriptor.kt new file mode 100644 index 000000000000..7a29d2dd4fc3 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_20-Beta2/getJvmModuleNameForDeserializedDescriptor.kt @@ -0,0 +1,32 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource +import org.jetbrains.kotlin.metadata.deserialization.* +import org.jetbrains.kotlin.metadata.jvm.deserialization.* +import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf +import org.jetbrains.kotlin.resolve.DescriptorUtils.* +import org.jetbrains.kotlin.serialization.deserialization.descriptors.* + +fun getJvmModuleNameForDeserializedDescriptor(descriptor: CallableMemberDescriptor): String? { + val parent = getParentOfType(descriptor, ClassOrPackageFragmentDescriptor::class.java, false) + + when { + parent is DeserializedClassDescriptor -> { + val classProto = parent.classProto + val nameResolver = parent.c.nameResolver + return classProto.getExtensionOrNull(JvmProtoBuf.classModuleName) + ?.let(nameResolver::getString) + ?: JvmProtoBufUtil.DEFAULT_MODULE_NAME + } + descriptor is DeserializedMemberDescriptor -> { + val source = descriptor.containerSource + if (source is JvmPackagePartSource) { + return source.moduleName + } + } + } + + return null +} + diff --git a/java/kotlin-extractor/versions.bzl b/java/kotlin-extractor/versions.bzl index e389bfd9514d..95897f49cc81 100644 --- a/java/kotlin-extractor/versions.bzl +++ b/java/kotlin-extractor/versions.bzl @@ -12,6 +12,7 @@ VERSIONS = [ "2.1.0-Beta1", "2.1.20-Beta1", "2.2.0-Beta1", + "2.2.20-Beta2", ] def _version_to_tuple(v): diff --git a/java/ql/integration-tests/java/buildless-gradle-timeout/gradlew b/java/ql/integration-tests/java/buildless-gradle-timeout/gradlew old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/buildless-maven-timeout/mvnw b/java/ql/integration-tests/java/buildless-maven-timeout/mvnw old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/buildless-sibling-projects/gradle-sample/gradlew b/java/ql/integration-tests/java/buildless-sibling-projects/gradle-sample/gradlew old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/buildless-sibling-projects/gradle-sample2/gradlew b/java/ql/integration-tests/java/buildless-sibling-projects/gradle-sample2/gradlew old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/diagnostics/maven-http-repository/mvnw b/java/ql/integration-tests/java/diagnostics/maven-http-repository/mvnw old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/gradle-sample-kotlin-script/gradlew b/java/ql/integration-tests/java/gradle-sample-kotlin-script/gradlew old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/maven-enforcer-multiple-versions/maven-fetches.expected b/java/ql/integration-tests/java/maven-enforcer-multiple-versions/maven-fetches.expected.disabled similarity index 100% rename from java/ql/integration-tests/java/maven-enforcer-multiple-versions/maven-fetches.expected rename to java/ql/integration-tests/java/maven-enforcer-multiple-versions/maven-fetches.expected.disabled diff --git a/java/ql/integration-tests/java/maven-enforcer-single-version/maven-fetches.expected b/java/ql/integration-tests/java/maven-enforcer-single-version/maven-fetches.expected.disabled similarity index 100% rename from java/ql/integration-tests/java/maven-enforcer-single-version/maven-fetches.expected rename to java/ql/integration-tests/java/maven-enforcer-single-version/maven-fetches.expected.disabled diff --git a/java/ql/integration-tests/java/maven-enforcer/maven-fetches.expected b/java/ql/integration-tests/java/maven-enforcer/maven-fetches.expected.disabled similarity index 100% rename from java/ql/integration-tests/java/maven-enforcer/maven-fetches.expected rename to java/ql/integration-tests/java/maven-enforcer/maven-fetches.expected.disabled diff --git a/java/ql/integration-tests/java/maven-wrapper-script-only/mvnw b/java/ql/integration-tests/java/maven-wrapper-script-only/mvnw old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/maven-wrapper-source-only/mvnw b/java/ql/integration-tests/java/maven-wrapper-source-only/mvnw old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/maven-wrapper/mvnw b/java/ql/integration-tests/java/maven-wrapper/mvnw old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/partial-gradle-sample-without-gradle/gradlew b/java/ql/integration-tests/java/partial-gradle-sample-without-gradle/gradlew old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/partial-gradle-sample/gradlew b/java/ql/integration-tests/java/partial-gradle-sample/gradlew old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index d177c4ad6a59..7a1a986b2aa1 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -6,6 +6,7 @@ ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql ql/java/ql/src/DeadCode/UselessParameter.ql ql/java/ql/src/Language Abuse/EmptyMethod.ql ql/java/ql/src/Language Abuse/IterableIterator.ql +ql/java/ql/src/Language Abuse/LabelInSwitch.ql ql/java/ql/src/Language Abuse/TypeVariableHidesType.ql ql/java/ql/src/Language Abuse/UselessNullCheck.ql ql/java/ql/src/Language Abuse/UselessTypeTest.ql @@ -32,6 +33,7 @@ ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql @@ -76,6 +78,8 @@ ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNam ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql +ql/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.ql +ql/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 05565601e404..17253dbe0f89 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -5,6 +5,7 @@ ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql ql/java/ql/src/DeadCode/UselessParameter.ql ql/java/ql/src/Language Abuse/IterableIterator.ql +ql/java/ql/src/Language Abuse/LabelInSwitch.ql ql/java/ql/src/Language Abuse/UselessNullCheck.ql ql/java/ql/src/Language Abuse/UselessTypeTest.ql ql/java/ql/src/Language Abuse/WrappedIterator.ql @@ -30,6 +31,7 @@ ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql @@ -74,6 +76,8 @@ ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNam ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql ql/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql +ql/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.ql +ql/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql diff --git a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected index 39e1f6e6b984..50cbd2609f26 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected @@ -1,5 +1,5 @@ { - "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.2.10.", + "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.2.30.", "severity": "error", "source": { "extractorName": "java", diff --git a/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin1/ExtractorInformation.ext.yml b/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin1/ExtractorInformation.ext.yml index 3b6ffa4a3771..e4f5148ee404 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin1/ExtractorInformation.ext.yml +++ b/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin1/ExtractorInformation.ext.yml @@ -1,6 +1,6 @@ extensions: - addsTo: - pack: codeql/java-queries + pack: codeql/java-all extensible: extractorInformationSkipKey data: # These will have unstable values, as they are dependent on the diff --git a/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin1/test.py b/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin1/test.py old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin2/ExtractorInformation.ext.yml b/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin2/ExtractorInformation.ext.yml index be02d9554f81..6d95b68726ae 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin2/ExtractorInformation.ext.yml +++ b/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin2/ExtractorInformation.ext.yml @@ -1,6 +1,6 @@ extensions: - addsTo: - pack: codeql/java-queries + pack: codeql/java-all extensible: extractorInformationSkipKey data: # These will have unstable values, as they are dependent on the diff --git a/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin2/test.py b/java/ql/integration-tests/kotlin/all-platforms/extractor_information_kotlin2/test.py old mode 100644 new mode 100755 diff --git a/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/BUILD.bazel b/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/BUILD.bazel index 3e5195df88c2..2ee3d63e3ecf 100644 --- a/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/BUILD.bazel +++ b/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/BUILD.bazel @@ -17,7 +17,10 @@ kt_jvm_library( srcs = ["Plugin.kt"], kotlinc_opts = ":kotlinc-options", module_name = "test", - resource_strip_prefix = "%s/resources" % package_name(), + resource_strip_prefix = "../%s/%s/resources" % ( + repo_name(), + package_name(), + ), resources = glob(["resources/**"]), deps = [ "@kotlin-compiler-%s" % _version, diff --git a/java/ql/integration-tests/kotlin/linux/custom_plugin/test.py b/java/ql/integration-tests/kotlin/linux/custom_plugin/test.py-disabled similarity index 54% rename from java/ql/integration-tests/kotlin/linux/custom_plugin/test.py rename to java/ql/integration-tests/kotlin/linux/custom_plugin/test.py-disabled index 71b6514059fa..2b3a104ed0b1 100644 --- a/java/ql/integration-tests/kotlin/linux/custom_plugin/test.py +++ b/java/ql/integration-tests/kotlin/linux/custom_plugin/test.py-disabled @@ -3,6 +3,8 @@ import commands +# This test is temporarily disabled until it is updated to work with Kotlin 2.2 + @runs_on.linux def test(codeql, java_full, cwd, semmle_code_dir, test_dir): build_dir = cwd / "build" @@ -10,20 +12,15 @@ def test(codeql, java_full, cwd, semmle_code_dir, test_dir): commands.run( [ f"{semmle_code_dir}/tools/bazel", - f"--output_user_root={build_dir}", "--max_idle_secs=1", "build", - "//java/ql/integration-tests/kotlin/linux/custom_plugin/plugin", - "--spawn_strategy=local", - "--nouse_action_cache", - "--noremote_accept_cached", - "--noremote_upload_local_results", - f'--symlink_prefix={cwd / "bazel-"}', + "@codeql//java/ql/integration-tests/kotlin/linux/custom_plugin/plugin", ], - _cwd=test_dir, + _cwd=semmle_code_dir, + _env={"CODEQL_BAZEL_REMOTE_CACHE": "false"}, ) shutil.copy( - "bazel-bin/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/plugin.jar", + f"{semmle_code_dir}/bazel-bin/external/ql+/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/plugin.jar", "plugin.jar", ) codeql.database.create( diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 320552a8f140..e15d695efea6 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,27 @@ +## 7.5.0 + +### New Features + +* Kotlin versions up to 2.2.2\ *x* are now supported. + +## 7.4.0 + +### Deprecated APIs + +* The module `semmle.code.java.frameworks.Castor` has been deprecated and will be removed in a future release. +* The module `semmle.code.java.frameworks.JYaml` has been deprecated and will be removed in a future release. +* The classes `UnsafeHessianInputReadObjectMethod` and `BurlapInputReadObjectMethod` in the module `semmle.code.java.frameworks.HessianBurlap` have been deprecated and will be removed in a future release. +* The class `YamlBeansReaderReadMethod` in the module `semmle.code.java.frameworks.YamlBeans` has been deprecated and will be removed in a future release. +* The class `MethodApacheSerializationUtilsDeserialize` in the module `semmle.code.java.frameworks.apache.Lang` has been deprecated and will be removed in a future release. + +### New Features + +* You can now add sinks for the query "Deserialization of user-controlled data" (`java/unsafe-deserialization`) using [data extensions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-java-and-kotlin/#extensible-predicates-used-to-create-custom-models-in-java-and-kotlin) by extending `sinkModel` and using the kind "unsafe-deserialization". The existing sinks that do not require extra logic to determine if they are unsafe are now defined in this way. + +### Minor Analysis Improvements + +* The qualifiers of a calls to `readObject` on any classes that implement `java.io.ObjectInput` are now recognised as sinks for `java/unsafe-deserialization`. Previously this was only the case for classes which extend `java.io.ObjectInputStream`. + ## 7.3.2 ### Minor Analysis Improvements diff --git a/java/ql/lib/Customizations.qll b/java/ql/lib/Customizations.qll index 1f5716726e30..f083e0864507 100644 --- a/java/ql/lib/Customizations.qll +++ b/java/ql/lib/Customizations.qll @@ -8,5 +8,7 @@ * the `RemoteFlowSource` and `AdditionalTaintStep` classes associated with the security queries * to model frameworks that are not covered by the standard library. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/IDEContextual.qll b/java/ql/lib/IDEContextual.qll index f26956bcca01..e74d51898e8d 100644 --- a/java/ql/lib/IDEContextual.qll +++ b/java/ql/lib/IDEContextual.qll @@ -1,6 +1,8 @@ /** * Provides shared predicates related to contextual queries in the code viewer. */ +overlay[local?] +module; import semmle.files.FileSystem private import codeql.util.FileSystem diff --git a/java/ql/lib/change-notes/released/7.4.0.md b/java/ql/lib/change-notes/released/7.4.0.md new file mode 100644 index 000000000000..103b19767a04 --- /dev/null +++ b/java/ql/lib/change-notes/released/7.4.0.md @@ -0,0 +1,17 @@ +## 7.4.0 + +### Deprecated APIs + +* The module `semmle.code.java.frameworks.Castor` has been deprecated and will be removed in a future release. +* The module `semmle.code.java.frameworks.JYaml` has been deprecated and will be removed in a future release. +* The classes `UnsafeHessianInputReadObjectMethod` and `BurlapInputReadObjectMethod` in the module `semmle.code.java.frameworks.HessianBurlap` have been deprecated and will be removed in a future release. +* The class `YamlBeansReaderReadMethod` in the module `semmle.code.java.frameworks.YamlBeans` has been deprecated and will be removed in a future release. +* The class `MethodApacheSerializationUtilsDeserialize` in the module `semmle.code.java.frameworks.apache.Lang` has been deprecated and will be removed in a future release. + +### New Features + +* You can now add sinks for the query "Deserialization of user-controlled data" (`java/unsafe-deserialization`) using [data extensions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-java-and-kotlin/#extensible-predicates-used-to-create-custom-models-in-java-and-kotlin) by extending `sinkModel` and using the kind "unsafe-deserialization". The existing sinks that do not require extra logic to determine if they are unsafe are now defined in this way. + +### Minor Analysis Improvements + +* The qualifiers of a calls to `readObject` on any classes that implement `java.io.ObjectInput` are now recognised as sinks for `java/unsafe-deserialization`. Previously this was only the case for classes which extend `java.io.ObjectInputStream`. diff --git a/java/ql/lib/change-notes/released/7.5.0.md b/java/ql/lib/change-notes/released/7.5.0.md new file mode 100644 index 000000000000..415dab5dfe4f --- /dev/null +++ b/java/ql/lib/change-notes/released/7.5.0.md @@ -0,0 +1,5 @@ +## 7.5.0 + +### New Features + +* Kotlin versions up to 2.2.2\ *x* are now supported. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index cf3deb9367da..7ed5cb290ca0 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.3.2 +lastReleaseVersion: 7.5.0 diff --git a/java/ql/lib/config/semmlecode.dbscheme b/java/ql/lib/config/semmlecode.dbscheme index 38d02c063878..1b8f5f4c747e 100644 --- a/java/ql/lib/config/semmlecode.dbscheme +++ b/java/ql/lib/config/semmlecode.dbscheme @@ -211,6 +211,10 @@ databaseMetadata( string value : string ref ); +overlayChangedFiles( + string path: string ref +); + /* * SMAP */ diff --git a/java/ql/lib/config/semmlecode.dbscheme.stats b/java/ql/lib/config/semmlecode.dbscheme.stats index f75c92b68268..650c4649439d 100644 --- a/java/ql/lib/config/semmlecode.dbscheme.stats +++ b/java/ql/lib/config/semmlecode.dbscheme.stats @@ -4004,6 +4004,17 @@ + + overlayChangedFiles + 50 + + + path + 50 + + + + smap_header 1 diff --git a/java/ql/lib/default.qll b/java/ql/lib/default.qll index 79ed05a7c378..66060273e966 100644 --- a/java/ql/lib/default.qll +++ b/java/ql/lib/default.qll @@ -1,3 +1,5 @@ /** DEPRECATED: use `java.qll` instead. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/definitions.qll b/java/ql/lib/definitions.qll index aa5de3eb4019..f0a4e859b08e 100644 --- a/java/ql/lib/definitions.qll +++ b/java/ql/lib/definitions.qll @@ -2,6 +2,8 @@ * Provides classes and predicates related to jump-to-definition links * in the code viewer. */ +overlay[local?] +module; import java import IDEContextual diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index 16afa26347fe..dc86c4637505 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.dataflow.DataFlow import semmle.code.java.dataflow.TaintTracking @@ -5,7 +8,7 @@ import semmle.code.java.controlflow.Dominance module JCAModel { import Language - import Crypto::KeyOpAlg as KeyOpAlg + import codeql.quantum.experimental.Standardization::Types::KeyOpAlg as KeyOpAlg abstract class CipherAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } @@ -115,7 +118,7 @@ module JCAModel { } bindingset[name] - Crypto::THashType hash_name_to_type_known(string name, int digestLength) { + Crypto::HashType hash_name_to_type_known(string name, int digestLength) { name = "SHA-1" and result instanceof Crypto::SHA1 and digestLength = 160 or name = ["SHA-256", "SHA-384", "SHA-512"] and @@ -152,24 +155,22 @@ module JCAModel { } bindingset[name] - private predicate mode_name_to_type_known( - Crypto::TBlockCipherModeOfOperationType type, string name - ) { - type = Crypto::ECB() and name = "ECB" + private predicate mode_name_to_type_known(KeyOpAlg::ModeOfOperationType type, string name) { + type = KeyOpAlg::ECB() and name = "ECB" or - type = Crypto::CBC() and name = "CBC" + type = KeyOpAlg::CBC() and name = "CBC" or - type = Crypto::GCM() and name = "GCM" + type = KeyOpAlg::GCM() and name = "GCM" or - type = Crypto::CTR() and name = "CTR" + type = KeyOpAlg::CTR() and name = "CTR" or - type = Crypto::XTS() and name = "XTS" + type = KeyOpAlg::XTS() and name = "XTS" or - type = Crypto::CCM() and name = "CCM" + type = KeyOpAlg::CCM() and name = "CCM" or - type = Crypto::SIV() and name = "SIV" + type = KeyOpAlg::SIV() and name = "SIV" or - type = Crypto::OCB() and name = "OCB" + type = KeyOpAlg::OCB() and name = "OCB" } bindingset[name] @@ -182,7 +183,7 @@ module JCAModel { type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES()) or upper = "TRIPLEDES" and - type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TripleDES()) + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TRIPLE_DES()) or upper = "IDEA" and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::IDEA()) @@ -205,8 +206,8 @@ module JCAModel { } bindingset[name] - predicate mac_name_to_mac_type_known(Crypto::TMACType type, string name) { - type = Crypto::THMAC() and + predicate mac_name_to_mac_type_known(Crypto::TMacType type, string name) { + type = Crypto::HMAC() and name.toUpperCase().matches("HMAC%") } @@ -298,18 +299,18 @@ module JCAModel { override string getRawPaddingAlgorithmName() { result = super.getPadding() } bindingset[name] - private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { - type instanceof Crypto::NoPadding and name = "NOPADDING" + private predicate paddingToNameMappingKnown(KeyOpAlg::PaddingSchemeType type, string name) { + type instanceof KeyOpAlg::NoPadding and name = "NOPADDING" or - type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? + type instanceof KeyOpAlg::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? or - type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% + type instanceof KeyOpAlg::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% } - override Crypto::TPaddingType getPaddingType() { + override KeyOpAlg::PaddingSchemeType getPaddingType() { if this.paddingToNameMappingKnown(_, super.getPadding()) then this.paddingToNameMappingKnown(result, super.getPadding()) - else result instanceof Crypto::OtherPadding + else result instanceof KeyOpAlg::OtherPadding } } @@ -320,10 +321,10 @@ module JCAModel { override string getRawModeAlgorithmName() { result = super.getMode() } - override Crypto::TBlockCipherModeOfOperationType getModeType() { + override KeyOpAlg::ModeOfOperationType getModeType() { if mode_name_to_type_known(_, super.getMode()) then mode_name_to_type_known(result, super.getMode()) - else result instanceof Crypto::OtherMode + else result instanceof KeyOpAlg::OtherMode } } @@ -347,7 +348,7 @@ module JCAModel { override string getRawAlgorithmName() { result = super.getValue() } - override KeyOpAlg::Algorithm getAlgorithmType() { + override KeyOpAlg::AlgorithmType getAlgorithmType() { if cipher_name_to_type_known(_, super.getAlgorithmName()) then cipher_name_to_type_known(result, super.getAlgorithmName()) else result instanceof KeyOpAlg::TUnknownKeyOperationAlgorithmType @@ -373,12 +374,12 @@ module JCAModel { oaep_padding_string_components(any(CipherStringLiteral s).getPadding(), hash, mfg) } - class OAEPPaddingHashAlgorithmInstance extends OAEPPaddingAlgorithmInstance, + class OaepPaddingHashAlgorithmInstance extends OaepPaddingAlgorithmInstance, Crypto::HashAlgorithmInstance instanceof CipherStringLiteral { string hashName; - OAEPPaddingHashAlgorithmInstance() { + OaepPaddingHashAlgorithmInstance() { oaep_padding_string_components(super.getPadding(), hashName, _) } @@ -389,12 +390,12 @@ module JCAModel { override int getFixedDigestLength() { exists(hash_name_to_type_known(hashName, result)) } } - class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, + class OaepPaddingAlgorithmInstance extends Crypto::OaepPaddingAlgorithmInstance, CipherStringLiteralPaddingAlgorithmInstance { - override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { result = this } + override Crypto::HashAlgorithmInstance getOaepEncodingHashAlgorithm() { result = this } - override Crypto::HashAlgorithmInstance getMGF1HashAlgorithm() { none() } // TODO + override Crypto::HashAlgorithmInstance getMgf1HashAlgorithm() { none() } // TODO } /** @@ -1030,7 +1031,7 @@ module JCAModel { KeyGeneratorGetInstanceCall getInstantiationCall() { result = instantiationCall } } - // TODO: Link getAlgorithm from KeyPairGenerator to algorithm instances or AVCs? High priority. + //TODO: Link getAlgorithm from KeyPairGenerator to algorithm instances or AVCs? High priority. class KeyGeneratorGetInstanceCall extends MethodCall { KeyGeneratorGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") @@ -1105,6 +1106,10 @@ module JCAModel { } override int getKeySizeFixed() { none() } + + override Crypto::ConsumerInputDataFlowNode getKeyValueConsumer() { none() } + + override predicate hasKeyValueConsumer() { none() } } class KeyGeneratorCipherAlgorithm extends CipherStringLiteralAlgorithmInstance { @@ -1156,9 +1161,7 @@ module JCAModel { } module KeySpecInstantiationToGenerateSecretFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(KeySpecInstantiation call | src.asExpr() = call) - } + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeySpecInstantiation } predicate isSink(DataFlow::Node sink) { exists(SecretKeyFactoryGenerateSecretCall call | sink.asExpr() = call.getKeySpecArg()) @@ -1207,29 +1210,29 @@ module JCAModel { predicate isIntermediate() { none() } } - class KDFAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral + class KdfAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral { SecretKeyFactoryKDFAlgorithmValueConsumer consumer; - KDFAlgorithmStringLiteral() { + KdfAlgorithmStringLiteral() { kdf_names(this.getValue()) and KDFAlgorithmStringToGetInstanceFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - override string getRawKDFAlgorithmName() { result = super.getValue() } + override string getRawKdfAlgorithmName() { result = super.getValue() } - override Crypto::TKeyDerivationType getKDFType() { + override Crypto::TKeyDerivationType getKdfType() { result = kdf_name_to_kdf_type(super.getValue(), _) } SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } } - class PBKDF2AlgorithmStringLiteral extends KDFAlgorithmStringLiteral, - Crypto::PBKDF2AlgorithmInstance, Crypto::HMACAlgorithmInstance, Crypto::HashAlgorithmInstance, + class Pbkdf2AlgorithmStringLiteral extends KdfAlgorithmStringLiteral, + Crypto::Pbkdf2AlgorithmInstance, Crypto::HmacAlgorithmInstance, Crypto::HashAlgorithmInstance, Crypto::AlgorithmValueConsumer { - PBKDF2AlgorithmStringLiteral() { super.getKDFType() instanceof Crypto::PBKDF2 } + Pbkdf2AlgorithmStringLiteral() { super.getKdfType() instanceof Crypto::PBKDF2 } override Crypto::ConsumerInputDataFlowNode getInputNode() { none() } @@ -1244,16 +1247,16 @@ module JCAModel { } override string getRawMacAlgorithmName() { - result = super.getRawKDFAlgorithmName().splitAt("PBKDF2With", 1) + result = super.getRawKdfAlgorithmName().splitAt("PBKDF2With", 1) } override string getRawHashAlgorithmName() { - result = super.getRawKDFAlgorithmName().splitAt("WithHmac", 1) + result = super.getRawKdfAlgorithmName().splitAt("WithHmac", 1) } - override Crypto::TMACType getMacType() { result instanceof Crypto::THMAC } + override Crypto::MacType getMacType() { result = Crypto::HMAC() } - override Crypto::AlgorithmValueConsumer getHMACAlgorithmValueConsumer() { result = this } + override Crypto::AlgorithmValueConsumer getHmacAlgorithmValueConsumer() { result = this } override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { result = this } } @@ -1267,7 +1270,7 @@ module JCAModel { override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - exists(KDFAlgorithmStringLiteral l | l.getConsumer() = this and result = l) + exists(KdfAlgorithmStringLiteral l | l.getConsumer() = this and result = l) } SecretKeyFactoryGetInstanceCall getInstantiation() { result = call } @@ -1442,105 +1445,103 @@ module JCAModel { * MACs */ - module MACKnownAlgorithmToConsumerConfig implements DataFlow::ConfigSig { + module MacKnownAlgorithmToConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { mac_names(src.asExpr().(StringLiteral).getValue()) } predicate isSink(DataFlow::Node sink) { - exists(MACGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + exists(MacGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) } } - module MACKnownAlgorithmToConsumerFlow = DataFlow::Global; + module MacKnownAlgorithmToConsumerFlow = DataFlow::Global; - module MACGetInstanceToMACOperationFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof MACGetInstanceCall } + module MacGetInstanceToMacOperationFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof MacGetInstanceCall } predicate isSink(DataFlow::Node sink) { - exists(MACOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) or - exists(MACInitCall call | sink.asExpr() = call.(MethodCall).getQualifier()) + exists(MacOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) or + exists(MacInitCall call | sink.asExpr() = call.(MethodCall).getQualifier()) } } - module MACGetInstanceToMACOperationFlow = - DataFlow::Global; + module MacGetInstanceToMacOperationFlow = + DataFlow::Global; - module MACInitCallToMACOperationFlowConfig implements DataFlow::ConfigSig { + module MacInitCallToMacOperationFlowConfig implements DataFlow::ConfigSig { // TODO: use flow state with one config predicate isSource(DataFlow::Node src) { - exists(MACInitCall init | src.asExpr() = init.getQualifier()) + exists(MacInitCall init | src.asExpr() = init.getQualifier()) } predicate isSink(DataFlow::Node sink) { - exists(MACOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) + exists(MacOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) } } - module MACInitCallToMACOperationFlow = DataFlow::Global; + module MacInitCallToMacOperationFlow = DataFlow::Global; - class KnownMACAlgorithm extends Crypto::MACAlgorithmInstance instanceof StringLiteral { - MACGetInstanceAlgorithmValueConsumer consumer; + class KnownMacAlgorithm extends Crypto::MacAlgorithmInstance instanceof StringLiteral { + MacGetInstanceAlgorithmValueConsumer consumer; - KnownMACAlgorithm() { + KnownMacAlgorithm() { mac_names(this.getValue()) and - MACKnownAlgorithmToConsumerFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + MacKnownAlgorithmToConsumerFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - MACGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } + MacGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } override string getRawMacAlgorithmName() { result = super.getValue() } - override Crypto::TMACType getMacType() { + override Crypto::MacType getMacType() { if mac_name_to_mac_type_known(_, super.getValue()) then mac_name_to_mac_type_known(result, super.getValue()) - else result instanceof Crypto::TOtherMACType + else result = Crypto::OtherMacType() } } - class MACGetInstanceCall extends MethodCall { - MACGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "getInstance") } + class MacGetInstanceCall extends MethodCall { + MacGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "getInstance") } Expr getAlgorithmArg() { result = this.getArgument(0) } - MACOperationCall getOperation() { - MACGetInstanceToMACOperationFlow::flow(DataFlow::exprNode(this), + MacOperationCall getOperation() { + MacGetInstanceToMacOperationFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(result.(MethodCall).getQualifier())) } - MACInitCall getInitCall() { - MACGetInstanceToMACOperationFlow::flow(DataFlow::exprNode(this), + MacInitCall getInitCall() { + MacGetInstanceToMacOperationFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(result.getQualifier())) } } - class MACInitCall extends MethodCall { - MACInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "init") } + class MacInitCall extends MethodCall { + MacInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "init") } Expr getKeyArg() { result = this.getArgument(0) and this.getMethod().getParameterType(0).hasName("Key") } - MACOperationCall getOperation() { - MACInitCallToMACOperationFlow::flow(DataFlow::exprNode(this.getQualifier()), + MacOperationCall getOperation() { + MacInitCallToMacOperationFlow::flow(DataFlow::exprNode(this.getQualifier()), DataFlow::exprNode(result.(MethodCall).getQualifier())) } } - class MACGetInstanceAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { - MACGetInstanceCall call; - - MACGetInstanceAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + class MacGetInstanceAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + MacGetInstanceAlgorithmValueConsumer() { this = any(MacGetInstanceCall c).getAlgorithmArg() } override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - exists(KnownMACAlgorithm l | l.getConsumer() = this and result = l) + exists(KnownMacAlgorithm l | l.getConsumer() = this and result = l) } } - class MACOperationCall extends Crypto::MACOperationInstance instanceof MethodCall { + class MacOperationCall extends Crypto::MacOperationInstance instanceof MethodCall { Expr output; - MACOperationCall() { + MacOperationCall() { super.getMethod().getDeclaringType().hasQualifiedName("javax.crypto", "Mac") and ( super.getMethod().hasStringSignature(["doFinal()", "doFinal(byte[])"]) and this = output @@ -1551,13 +1552,13 @@ module JCAModel { } override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(MACGetInstanceCall instantiation | + exists(MacGetInstanceCall instantiation | instantiation.getOperation() = this and result = instantiation.getAlgorithmArg() ) } override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { - exists(MACGetInstanceCall instantiation, MACInitCall initCall | + exists(MacGetInstanceCall instantiation, MacInitCall initCall | instantiation.getOperation() = this and initCall.getOperation() = this and instantiation.getInitCall() = initCall and @@ -1599,15 +1600,18 @@ module JCAModel { override string getRawEllipticCurveName() { result = super.getValue() } - override Crypto::TEllipticCurveType getEllipticCurveType() { - if Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, _) + override Crypto::EllipticCurveFamilyType getEllipticCurveFamilyType() { + if + Crypto::ellipticCurveNameToKnownKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, _) then - Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, result) + Crypto::ellipticCurveNameToKnownKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, + result) else result = Crypto::OtherEllipticCurveType() } override int getKeySize() { - Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), result, _) + Crypto::ellipticCurveNameToKnownKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), + result, _) } EllipticCurveAlgorithmValueConsumer getConsumer() { result = consumer } diff --git a/java/ql/lib/experimental/quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll index 59164901c10c..975a8ad8e1fe 100644 --- a/java/ql/lib/experimental/quantum/Language.qll +++ b/java/ql/lib/experimental/quantum/Language.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java as Language private import semmle.code.java.security.InsecureRandomnessQuery private import semmle.code.java.security.RandomQuery diff --git a/java/ql/lib/ext/com.alibaba.com.caucho.hessian.io.model.yml b/java/ql/lib/ext/com.alibaba.com.caucho.hessian.io.model.yml new file mode 100644 index 000000000000..af8824aae0c1 --- /dev/null +++ b/java/ql/lib/ext/com.alibaba.com.caucho.hessian.io.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.alibaba.com.caucho.hessian.io", "AbstractHessianInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"] + - ["com.alibaba.com.caucho.hessian.io", "Hessian2StreamingInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/com.caucho.burlap.io.model.yml b/java/ql/lib/ext/com.caucho.burlap.io.model.yml new file mode 100644 index 000000000000..862804438ca4 --- /dev/null +++ b/java/ql/lib/ext/com.caucho.burlap.io.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.caucho.burlap.io", "BurlapInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/com.caucho.hessian.io.model.yml b/java/ql/lib/ext/com.caucho.hessian.io.model.yml new file mode 100644 index 000000000000..73c3ddebf451 --- /dev/null +++ b/java/ql/lib/ext/com.caucho.hessian.io.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.caucho.hessian.io", "AbstractHessianInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"] + - ["com.caucho.hessian.io", "Hessian2StreamingInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/com.cedarsoftware.util.io.model.yml b/java/ql/lib/ext/com.cedarsoftware.util.io.model.yml new file mode 100644 index 000000000000..926a86238114 --- /dev/null +++ b/java/ql/lib/ext/com.cedarsoftware.util.io.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.cedarsoftware.util.io", "JsonReader", False, "jsonToJava", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["com.cedarsoftware.util.io", "JsonReader", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/com.esotericsoftware.yamlbeans.model.yml b/java/ql/lib/ext/com.esotericsoftware.yamlbeans.model.yml new file mode 100644 index 000000000000..944222c420b6 --- /dev/null +++ b/java/ql/lib/ext/com.esotericsoftware.yamlbeans.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.esotericsoftware.yamlbeans", "YamlReader", True, "read", "", "", "Argument[this]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/java.beans.model.yml b/java/ql/lib/ext/java.beans.model.yml index 30667ec69615..07291296612d 100644 --- a/java/ql/lib/ext/java.beans.model.yml +++ b/java/ql/lib/ext/java.beans.model.yml @@ -13,3 +13,8 @@ extensions: - ["java.beans", "PropertyEditor", "getValue", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - ["java.beans", "PropertyEditor", "setAsText", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - ["java.beans", "PropertyEditor", "setValue", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["java.beans", "XMLDecoder", True, "readObject", "()", "", "Argument[this]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.lang.model.yml b/java/ql/lib/ext/org.apache.commons.lang.model.yml index 8dd3fd003f9d..0d38b845c9ca 100644 --- a/java/ql/lib/ext/org.apache.commons.lang.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang.model.yml @@ -5,3 +5,8 @@ extensions: data: - ["org.apache.commons.lang", "StringEscapeUtils", true, "escapeHtml", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang", "StringEscapeUtils", true, "escapeHtml", "(Writer,String)", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.apache.commons.lang", "SerializationUtils", False, "deserialize", "", "", "Argument[0]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.lang3.model.yml b/java/ql/lib/ext/org.apache.commons.lang3.model.yml index 541db005f0b6..7c455d780b13 100644 --- a/java/ql/lib/ext/org.apache.commons.lang3.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang3.model.yml @@ -3,6 +3,7 @@ extensions: pack: codeql/java-all extensible: sinkModel data: + - ["org.apache.commons.lang3", "SerializationUtils", False, "deserialize", "", "", "Argument[0]", "unsafe-deserialization", "manual"] # Note these sinks do not use the sink kind `regex-use[0]` because the regex injection query needs to select them separately from # other `regex-use[0]` sinks in order to avoid FPs. As a result, these sinks are currently not used in the polynomial ReDoS query. # TODO: refactor the `regex-use%` sink kind so that the polynomial ReDoS query can also use these sinks. diff --git a/java/ql/lib/ext/org.exolab.castor.xml.model.yml b/java/ql/lib/ext/org.exolab.castor.xml.model.yml new file mode 100644 index 000000000000..7113a9ab94a7 --- /dev/null +++ b/java/ql/lib/ext/org.exolab.castor.xml.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.exolab.castor.xml", "Unmarshaller", True, "unmarshal", "", "", "Argument[0..1]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/org.ho.yaml.model.yml b/java/ql/lib/ext/org.ho.yaml.model.yml new file mode 100644 index 000000000000..fd6e0e363563 --- /dev/null +++ b/java/ql/lib/ext/org.ho.yaml.model.yml @@ -0,0 +1,13 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.ho.yaml", "Yaml", False, "load", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "Yaml", False, "loadStream", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "Yaml", False, "loadStreamOfType", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "Yaml", False, "loadType", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "YamlConfig", False, "load", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "YamlConfig", False, "loadStream", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "YamlConfig", False, "loadStreamOfType", "", "", "Argument[0]", "unsafe-deserialization", "manual"] + - ["org.ho.yaml", "YamlConfig", False, "loadType", "", "", "Argument[0]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/ext/org.jabsorb.model.yml b/java/ql/lib/ext/org.jabsorb.model.yml new file mode 100644 index 000000000000..5c50178e9937 --- /dev/null +++ b/java/ql/lib/ext/org.jabsorb.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.jabsorb", "JSONSerializer", True, "fromJSON", "", "", "Argument[0]", "unsafe-deserialization", "manual"] diff --git a/java/ql/lib/external/ExternalArtifact.qll b/java/ql/lib/external/ExternalArtifact.qll index 2e782a6a4da1..cdba653062ad 100644 --- a/java/ql/lib/external/ExternalArtifact.qll +++ b/java/ql/lib/external/ExternalArtifact.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java class ExternalData extends @externalDataElement { diff --git a/java/ql/lib/java.qll b/java/ql/lib/java.qll index ce0905184f40..9644343e93b6 100644 --- a/java/ql/lib/java.qll +++ b/java/ql/lib/java.qll @@ -1,4 +1,6 @@ /** Provides all default Java QL imports. */ +overlay[local?] +module; import Customizations import semmle.code.FileSystem diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 25c777b7cd00..9b87c8331017 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.3.2 +version: 7.5.0 groups: java dbscheme: config/semmlecode.dbscheme extractor: java @@ -24,3 +24,4 @@ dataExtensions: - ext/generated/*.model.yml - ext/experimental/*.model.yml warnOnImplicitThis: true +compileForOverlayEval: true diff --git a/java/ql/lib/semmle/code/FileSystem.qll b/java/ql/lib/semmle/code/FileSystem.qll index a7c38b41ca54..92c888304ff6 100644 --- a/java/ql/lib/semmle/code/FileSystem.qll +++ b/java/ql/lib/semmle/code/FileSystem.qll @@ -1,4 +1,6 @@ /** Provides classes for working with files and folders. */ +overlay[local?] +module; import Location private import codeql.util.FileSystem diff --git a/java/ql/lib/semmle/code/Location.qll b/java/ql/lib/semmle/code/Location.qll index abc1d19d0f89..fced632a6dd9 100644 --- a/java/ql/lib/semmle/code/Location.qll +++ b/java/ql/lib/semmle/code/Location.qll @@ -3,9 +3,12 @@ * * Locations represent parts of files and are used to map elements to their source location. */ +overlay[local?] +module; import FileSystem import semmle.code.java.Element +private import semmle.code.java.Overlay private import semmle.code.SMAP /** Holds if element `e` has name `name`. */ @@ -219,3 +222,16 @@ private predicate fixedHasLocation(Top l, Location loc, File f) { not hasSourceLocation(l, _, _) and locations_default(loc, f, _, _, _, _) } + +overlay[local] +private predicate discardableLocation(string file, @location l) { + not isOverlay() and + file = getRawFileForLoc(l) and + not exists(@file f | hasLocation(f, l)) +} + +/** Discard base locations in files fully extracted in the overlay. */ +overlay[discard_entity] +private predicate discardLocation(@location l) { + exists(string file | discardableLocation(file, l) and overlayChangedFiles(file)) +} diff --git a/java/ql/lib/semmle/code/SMAP.qll b/java/ql/lib/semmle/code/SMAP.qll index 575d54f92de1..96243a78d7b4 100644 --- a/java/ql/lib/semmle/code/SMAP.qll +++ b/java/ql/lib/semmle/code/SMAP.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with SMAP files (see JSR-045). */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/Unit.qll b/java/ql/lib/semmle/code/Unit.qll index 83a4a03321d9..e31457eae1aa 100644 --- a/java/ql/lib/semmle/code/Unit.qll +++ b/java/ql/lib/semmle/code/Unit.qll @@ -1,3 +1,5 @@ /** Provides the `Unit` class. */ +overlay[local?] +module; import codeql.util.Unit diff --git a/java/ql/lib/semmle/code/configfiles/ConfigFiles.qll b/java/ql/lib/semmle/code/configfiles/ConfigFiles.qll index 282f1c1228a3..0c69f45c56fa 100644 --- a/java/ql/lib/semmle/code/configfiles/ConfigFiles.qll +++ b/java/ql/lib/semmle/code/configfiles/ConfigFiles.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with configuration files, such * as Java `.properties` or `.ini` files. */ +overlay[local?] +module; import semmle.code.Location diff --git a/java/ql/lib/semmle/code/java/Annotation.qll b/java/ql/lib/semmle/code/java/Annotation.qll index f39b1f3420a5..ba5ce65daac8 100644 --- a/java/ql/lib/semmle/code/java/Annotation.qll +++ b/java/ql/lib/semmle/code/java/Annotation.qll @@ -8,6 +8,8 @@ * Each annotation type has zero or more annotation elements that contain a * name and possibly a value. */ +overlay[local?] +module; import Element import Expr diff --git a/java/ql/lib/semmle/code/java/Collections.qll b/java/ql/lib/semmle/code/java/Collections.qll index 9fd64dc60ee3..d121512c3196 100644 --- a/java/ql/lib/semmle/code/java/Collections.qll +++ b/java/ql/lib/semmle/code/java/Collections.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for reasoning about instances of * `java.util.Collection` and their methods. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/Compilation.qll b/java/ql/lib/semmle/code/java/Compilation.qll index c52f308e8e33..835505390468 100644 --- a/java/ql/lib/semmle/code/java/Compilation.qll +++ b/java/ql/lib/semmle/code/java/Compilation.qll @@ -1,6 +1,8 @@ /** * Provides a class representing individual compiler invocations that occurred during the build. */ +overlay[local?] +module; import semmle.code.FileSystem diff --git a/java/ql/lib/semmle/code/java/CompilationUnit.qll b/java/ql/lib/semmle/code/java/CompilationUnit.qll index 9b4b58e9a9bd..546c3d26ea39 100644 --- a/java/ql/lib/semmle/code/java/CompilationUnit.qll +++ b/java/ql/lib/semmle/code/java/CompilationUnit.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java compilation units. */ +overlay[local?] +module; import Element import Package diff --git a/java/ql/lib/semmle/code/java/Completion.qll b/java/ql/lib/semmle/code/java/Completion.qll index 6ccdb16df725..35d3c83e2ee9 100644 --- a/java/ql/lib/semmle/code/java/Completion.qll +++ b/java/ql/lib/semmle/code/java/Completion.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for representing completions. */ +overlay[local?] +module; /* * A completion represents how a statement or expression terminates. diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll index 61e76525ec87..0e510db3443b 100644 --- a/java/ql/lib/semmle/code/java/Concurrency.qll +++ b/java/ql/lib/semmle/code/java/Concurrency.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/Constants.qll b/java/ql/lib/semmle/code/java/Constants.qll index 9e35a925be33..0cad92b7fc6d 100644 --- a/java/ql/lib/semmle/code/java/Constants.qll +++ b/java/ql/lib/semmle/code/java/Constants.qll @@ -1,6 +1,8 @@ /** * Provdides a module to calculate constant integer and boolean values. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 0d9d685cc716..612bca35a600 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -7,6 +7,8 @@ * statement, an expression, or an exit node for a callable, indicating that * execution of the callable terminates. */ +overlay[local?] +module; /* * The implementation is centered around the concept of a _completion_, which @@ -80,6 +82,7 @@ */ import java +private import codeql.util.Boolean private import Completion private import controlflow.internal.Preconditions private import controlflow.internal.SwitchCases @@ -100,7 +103,9 @@ module ControlFlow { private newtype TNode = TExprNode(Expr e) { hasControlFlow(e) } or TStmtNode(Stmt s) or - TExitNode(Callable c) { exists(c.getBody()) } + TAnnotatedExitNode(Callable c, Boolean normal) { exists(c.getBody()) } or + TExitNode(Callable c) { exists(c.getBody()) } or + TAssertThrowNode(AssertStmt s) /** A node in the expression-level control-flow graph. */ class Node extends TNode { @@ -188,6 +193,38 @@ module ControlFlow { override Location getLocation() { result = s.getLocation() } } + /** A control flow node indicating the normal or exceptional termination of a callable. */ + class AnnotatedExitNode extends Node, TAnnotatedExitNode { + Callable c; + boolean normal; + + AnnotatedExitNode() { this = TAnnotatedExitNode(c, normal) } + + override Callable getEnclosingCallable() { result = c } + + override ExprParent getAstNode() { result = c } + + /** Gets a textual representation of this element. */ + override string toString() { + normal = true and result = "Normal Exit" + or + normal = false and result = "Exceptional Exit" + } + + /** Gets the source location for this element. */ + override Location getLocation() { result = c.getLocation() } + } + + /** A control flow node indicating normal termination of a callable. */ + class NormalExitNode extends AnnotatedExitNode { + NormalExitNode() { this = TAnnotatedExitNode(_, true) } + } + + /** A control flow node indicating exceptional termination of a callable. */ + class ExceptionalExitNode extends AnnotatedExitNode { + ExceptionalExitNode() { this = TAnnotatedExitNode(_, false) } + } + /** A control flow node indicating the termination of a callable. */ class ExitNode extends Node, TExitNode { Callable c; @@ -204,6 +241,25 @@ module ControlFlow { /** Gets the source location for this element. */ override Location getLocation() { result = c.getLocation() } } + + /** A control flow node indicating a failing assertion. */ + class AssertThrowNode extends Node, TAssertThrowNode { + AssertStmt s; + + AssertThrowNode() { this = TAssertThrowNode(s) } + + override Stmt getEnclosingStmt() { result = s } + + override Callable getEnclosingCallable() { result = s.getEnclosingCallable() } + + override ExprParent getAstNode() { result = s } + + /** Gets a textual representation of this element. */ + override string toString() { result = "Assert Throw" } + + /** Gets the source location for this element. */ + override Location getLocation() { result = s.getLocation() } + } } class ControlFlowNode = ControlFlow::Node; @@ -327,7 +383,17 @@ private module ControlFlowGraphImpl { ) } - private ThrowableType assertionError() { result.hasQualifiedName("java.lang", "AssertionError") } + private ThrowableType actualAssertionError() { + result.hasQualifiedName("java.lang", "AssertionError") + } + + private ThrowableType assertionError() { + result = actualAssertionError() + or + // In case `AssertionError` is not extracted, we use `Error` as a fallback. + not exists(actualAssertionError()) and + result.hasQualifiedName("java.lang", "Error") + } /** * Gets an exception type that may be thrown during execution of the @@ -1123,12 +1189,7 @@ private module ControlFlowGraphImpl { or // `assert` statements may throw completion = ThrowCompletion(assertionError()) and - ( - last(assertstmt.getMessage(), last, NormalCompletion()) - or - not exists(assertstmt.getMessage()) and - last(assertstmt.getExpr(), last, BooleanCompletion(false, _)) - ) + last.(AssertThrowNode).getAstNode() = assertstmt ) or // `throw` statements or throwing calls give rise to `Throw` completion @@ -1239,11 +1300,17 @@ private module ControlFlowGraphImpl { */ cached Node succ(Node n, Completion completion) { - // After executing the callable body, the final node is the exit node. + // After executing the callable body, the final nodes are first the + // annotated exit node and then the final exit node. exists(Callable c | last(c.getBody(), n, completion) | - result.(ExitNode).getEnclosingCallable() = c + if completion instanceof ThrowCompletion + then result.(ExceptionalExitNode).getEnclosingCallable() = c + else result.(NormalExitNode).getEnclosingCallable() = c ) or + completion = NormalCompletion() and + n.(AnnotatedExitNode).getEnclosingCallable() = result.(ExitNode).getEnclosingCallable() + or // Logic expressions and conditional expressions execute in AST pre-order. completion = NormalCompletion() and ( @@ -1547,7 +1614,16 @@ private module ControlFlowGraphImpl { or last(assertstmt.getExpr(), n, completion) and completion = BooleanCompletion(false, _) and - result = first(assertstmt.getMessage()) + ( + result = first(assertstmt.getMessage()) + or + not exists(assertstmt.getMessage()) and + result.(AssertThrowNode).getAstNode() = assertstmt + ) + or + last(assertstmt.getMessage(), n, completion) and + completion = NormalCompletion() and + result.(AssertThrowNode).getAstNode() = assertstmt ) or // When expressions: diff --git a/java/ql/lib/semmle/code/java/Conversions.qll b/java/ql/lib/semmle/code/java/Conversions.qll index f3deb311a3df..76b74fd1eb7c 100644 --- a/java/ql/lib/semmle/code/java/Conversions.qll +++ b/java/ql/lib/semmle/code/java/Conversions.qll @@ -4,6 +4,8 @@ * * See the Java Language Specification, Section 5, for details. */ +overlay[local?] +module; import java import semmle.code.java.arithmetic.Overflow diff --git a/java/ql/lib/semmle/code/java/Dependency.qll b/java/ql/lib/semmle/code/java/Dependency.qll index 8514bcb466a1..138ab7523a4d 100644 --- a/java/ql/lib/semmle/code/java/Dependency.qll +++ b/java/ql/lib/semmle/code/java/Dependency.qll @@ -1,6 +1,8 @@ /** * Provides utility predicates for representing dependencies between types. */ +overlay[local?] +module; import Type import Generics diff --git a/java/ql/lib/semmle/code/java/DependencyCounts.qll b/java/ql/lib/semmle/code/java/DependencyCounts.qll index 4cb958373a93..13709ebaf291 100644 --- a/java/ql/lib/semmle/code/java/DependencyCounts.qll +++ b/java/ql/lib/semmle/code/java/DependencyCounts.qll @@ -1,6 +1,8 @@ /** * This library provides utility predicates for representing the number of dependencies between types. */ +overlay[local?] +module; import Type import Generics diff --git a/java/ql/lib/semmle/code/java/Diagnostics.qll b/java/ql/lib/semmle/code/java/Diagnostics.qll index 0134b32c5c0e..8a4b543aa4a1 100644 --- a/java/ql/lib/semmle/code/java/Diagnostics.qll +++ b/java/ql/lib/semmle/code/java/Diagnostics.qll @@ -1,6 +1,8 @@ /** * Provides classes representing warnings generated during compilation. */ +overlay[local?] +module; import java @@ -59,3 +61,9 @@ class Diagnostic extends @diagnostic { /** Gets a textual representation of this diagnostic. */ string toString() { result = this.getMessage() } } + +/** + * Holds for extraction information keys that should be skipped from telemetry reports. + * This predicate can be extended by other packs to filter out specific telemetry keys. + */ +extensible predicate extractorInformationSkipKey(string key); diff --git a/java/ql/lib/semmle/code/java/Element.qll b/java/ql/lib/semmle/code/java/Element.qll index 2032d72ee5f9..dca3c8d91eb6 100644 --- a/java/ql/lib/semmle/code/java/Element.qll +++ b/java/ql/lib/semmle/code/java/Element.qll @@ -1,6 +1,8 @@ /** * Provides a class that represents named elements in Java programs. */ +overlay[local?] +module; import CompilationUnit import semmle.code.Location diff --git a/java/ql/lib/semmle/code/java/Exception.qll b/java/ql/lib/semmle/code/java/Exception.qll index 0b92975a580d..abd934994626 100644 --- a/java/ql/lib/semmle/code/java/Exception.qll +++ b/java/ql/lib/semmle/code/java/Exception.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java exceptions. */ +overlay[local?] +module; import Element import Type diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index e7dd817cecd9..282d90eaeee0 100644 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -1,10 +1,13 @@ /** * Provides classes for working with Java expressions. */ +overlay[local?] +module; import java private import semmle.code.java.frameworks.android.Compose private import semmle.code.java.Constants +private import semmle.code.java.Overlay /** A common super-class that represents all kinds of expressions. */ class Expr extends ExprParent, @expr { @@ -2699,3 +2702,6 @@ class RecordPatternExpr extends Expr, @recordpatternexpr { ) } } + +overlay[local] +private class DiscardableExpr extends DiscardableLocatable, @expr { } diff --git a/java/ql/lib/semmle/code/java/GeneratedFiles.qll b/java/ql/lib/semmle/code/java/GeneratedFiles.qll index 31a229f507f2..7c4a6d4cbb5a 100644 --- a/java/ql/lib/semmle/code/java/GeneratedFiles.qll +++ b/java/ql/lib/semmle/code/java/GeneratedFiles.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the most common types of generated files. */ +overlay[local?] +module; import Type private import semmle.code.java.frameworks.JavaxAnnotations diff --git a/java/ql/lib/semmle/code/java/Generics.qll b/java/ql/lib/semmle/code/java/Generics.qll index a50dcabe2245..fbd979a03694 100644 --- a/java/ql/lib/semmle/code/java/Generics.qll +++ b/java/ql/lib/semmle/code/java/Generics.qll @@ -30,6 +30,8 @@ * * The terminology for generic methods is analogous. */ +overlay[local?] +module; import Type @@ -519,7 +521,13 @@ private predicate unificationTargets(RefType t1, Type t2) { t2 = a2.getComponentType() ) or - exists(ParameterizedType pt1, ParameterizedType pt2, int pos | + unificationTargetsParameterized(_, _, t1, t2) +} + +private predicate unificationTargetsParameterized( + ParameterizedType pt1, ParameterizedType pt2, RefType t1, RefType t2 +) { + exists(int pos | unificationTargets(pt1, pt2) and t1 = pt1.getTypeArgument(pos) and t2 = pt2.getTypeArgument(pos) @@ -563,10 +571,12 @@ private predicate hasParameterSubstitution( GenericType g1, ParameterizedType pt1, GenericType g2, ParameterizedType pt2, TypeVariable v, RefType subst ) { - unificationTargets(pt1, pt2) and - exists(int pos | hasSubstitution(pt1.getTypeArgument(pos), pt2.getTypeArgument(pos), v, subst)) and - g1 = pt1.getGenericType() and - g2 = pt2.getGenericType() + exists(RefType t1, RefType t2 | + unificationTargetsParameterized(pt1, pt2, t1, t2) and + hasSubstitution(t1, t2, v, subst) and + g1 = pt1.getGenericType() and + g2 = pt2.getGenericType() + ) } /** diff --git a/java/ql/lib/semmle/code/java/Import.qll b/java/ql/lib/semmle/code/java/Import.qll index cef66c34ae15..aed041155555 100644 --- a/java/ql/lib/semmle/code/java/Import.qll +++ b/java/ql/lib/semmle/code/java/Import.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java imports. */ +overlay[local?] +module; import semmle.code.Location import CompilationUnit diff --git a/java/ql/lib/semmle/code/java/J2EE.qll b/java/ql/lib/semmle/code/java/J2EE.qll index 70c207a35794..4412b3715e34 100644 --- a/java/ql/lib/semmle/code/java/J2EE.qll +++ b/java/ql/lib/semmle/code/java/J2EE.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with J2EE bean types. */ +overlay[local?] +module; import Type diff --git a/java/ql/lib/semmle/code/java/JDK.qll b/java/ql/lib/semmle/code/java/JDK.qll index 27a8b2a9ca73..bdc2fb92fa05 100644 --- a/java/ql/lib/semmle/code/java/JDK.qll +++ b/java/ql/lib/semmle/code/java/JDK.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with standard classes and methods from the JDK. */ +overlay[local?] +module; import Member import semmle.code.java.security.ExternalProcess @@ -209,6 +211,11 @@ class TypeObjectOutputStream extends RefType { TypeObjectOutputStream() { this.hasQualifiedName("java.io", "ObjectOutputStream") } } +/** The type `java.io.ObjectInput`. */ +class TypeObjectInput extends RefType { + TypeObjectInput() { this.hasQualifiedName("java.io", "ObjectInput") } +} + /** The type `java.io.ObjectInputStream`. */ class TypeObjectInputStream extends RefType { TypeObjectInputStream() { this.hasQualifiedName("java.io", "ObjectInputStream") } diff --git a/java/ql/lib/semmle/code/java/JDKAnnotations.qll b/java/ql/lib/semmle/code/java/JDKAnnotations.qll index 5f3e70688558..aac7242ad4f1 100644 --- a/java/ql/lib/semmle/code/java/JDKAnnotations.qll +++ b/java/ql/lib/semmle/code/java/JDKAnnotations.qll @@ -1,6 +1,8 @@ /** * Provides classes that represent standard annotations from the JDK. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/JMX.qll b/java/ql/lib/semmle/code/java/JMX.qll index 11849be0beee..3f18e0ecf3d3 100644 --- a/java/ql/lib/semmle/code/java/JMX.qll +++ b/java/ql/lib/semmle/code/java/JMX.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with JMX bean types. */ +overlay[local?] +module; import Type diff --git a/java/ql/lib/semmle/code/java/Javadoc.qll b/java/ql/lib/semmle/code/java/Javadoc.qll index f14d8776ddc4..ac7a3c2cd6a5 100644 --- a/java/ql/lib/semmle/code/java/Javadoc.qll +++ b/java/ql/lib/semmle/code/java/Javadoc.qll @@ -1,8 +1,11 @@ /** * Provides classes and predicates for working with Javadoc documentation. */ +overlay[local?] +module; import semmle.code.Location +private import semmle.code.java.Overlay /** A Javadoc parent is an element whose child can be some Javadoc documentation. */ class JavadocParent extends @javadocParent, Top { @@ -194,3 +197,6 @@ class KtCommentSection extends @ktcommentsection { /** Gets the string representation of this section. */ string toString() { result = this.getContent() } } + +overlay[local] +private class DiscardableJavadoc extends DiscardableLocatable, @javadoc { } diff --git a/java/ql/lib/semmle/code/java/KotlinType.qll b/java/ql/lib/semmle/code/java/KotlinType.qll index 3e5597c5579d..9d29f3b441ef 100644 --- a/java/ql/lib/semmle/code/java/KotlinType.qll +++ b/java/ql/lib/semmle/code/java/KotlinType.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Kotlin types. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/Maps.qll b/java/ql/lib/semmle/code/java/Maps.qll index 1089e8924156..25c8659f2c9e 100644 --- a/java/ql/lib/semmle/code/java/Maps.qll +++ b/java/ql/lib/semmle/code/java/Maps.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for reasoning about instances of * `java.util.Map` and their methods. */ +overlay[local?] +module; import java import Collections diff --git a/java/ql/lib/semmle/code/java/Member.qll b/java/ql/lib/semmle/code/java/Member.qll index f6f4ca56f92d..1e814117e9ee 100644 --- a/java/ql/lib/semmle/code/java/Member.qll +++ b/java/ql/lib/semmle/code/java/Member.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with members of Java classes and interfaces, * that is, methods, constructors, fields and nested types. */ +overlay[local?] +module; import Element import Type @@ -9,6 +11,7 @@ import Annotation import Exception import metrics.MetricField private import dispatch.VirtualDispatch +private import semmle.code.java.Overlay /** * A common abstraction for type member declarations, @@ -621,7 +624,13 @@ class SrcMethod extends Method { then implementsInterfaceMethod(result, this) else result.getASourceOverriddenMethod*() = this ) and - (exists(result.getBody()) or result.hasModifier("native")) + ( + // We allow empty method bodies for the local overlay variant to allow + // calls to methods only fully extracted in base. + isOverlay() or + exists(result.getBody()) or + result.hasModifier("native") + ) } } @@ -895,3 +904,13 @@ class ExtensionMethod extends Method { else result = 0 } } + +overlay[local] +private class DiscardableAnonymousMethod extends DiscardableLocatable, @method { + DiscardableAnonymousMethod() { + exists(@classorinterface c | methods(this, _, _, _, c, _) and isAnonymClass(c, _)) + } +} + +overlay[local] +private class DiscardableMethod extends DiscardableReferableLocatable, @method { } diff --git a/java/ql/lib/semmle/code/java/Modifier.qll b/java/ql/lib/semmle/code/java/Modifier.qll index 150b65be6716..864691bf835b 100644 --- a/java/ql/lib/semmle/code/java/Modifier.qll +++ b/java/ql/lib/semmle/code/java/Modifier.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java modifiers. */ +overlay[local?] +module; import Element diff --git a/java/ql/lib/semmle/code/java/Modules.qll b/java/ql/lib/semmle/code/java/Modules.qll index c8aed33a0fc3..a1bceb72e0bb 100644 --- a/java/ql/lib/semmle/code/java/Modules.qll +++ b/java/ql/lib/semmle/code/java/Modules.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with Java modules. */ +overlay[local?] +module; import CompilationUnit diff --git a/java/ql/lib/semmle/code/java/NumberFormatException.qll b/java/ql/lib/semmle/code/java/NumberFormatException.qll index 841d64b0098d..83f66d1a709d 100644 --- a/java/ql/lib/semmle/code/java/NumberFormatException.qll +++ b/java/ql/lib/semmle/code/java/NumberFormatException.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for reasoning about `java.lang.NumberFormatException`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/Overlay.qll b/java/ql/lib/semmle/code/java/Overlay.qll new file mode 100644 index 000000000000..1d1a3896ba71 --- /dev/null +++ b/java/ql/lib/semmle/code/java/Overlay.qll @@ -0,0 +1,112 @@ +/** + * Defines entity discard predicates for Java overlay analysis. + */ +overlay[local?] +module; + +import java + +/** + * A local predicate that always holds for the overlay variant and + * never holds for the base variant. This is used to define local + * predicates that behave differently for the base and overlay variant. + */ +overlay[local] +predicate isOverlay() { databaseMetadata("isOverlay", "true") } + +/** Gets the raw file for a locatable. */ +overlay[local] +string getRawFile(@locatable el) { + exists(@location loc, @file file | + hasLocation(el, loc) and + locations_default(loc, file, _, _, _, _) and + files(file, result) + ) +} + +/** Gets the raw file for a location. */ +overlay[local] +string getRawFileForLoc(@location l) { + exists(@file f | locations_default(l, f, _, _, _, _) and files(f, result)) +} + +/** + * A `@locatable` that should be discarded in the base variant if its file is + * extracted in the overlay variant. + */ +overlay[local] +abstract class DiscardableLocatable extends @locatable { + /** Gets the raw file for a locatable in base. */ + string getRawFileInBase() { not isOverlay() and result = getRawFile(this) } + + /** Gets a textual representation of this discardable locatable. */ + string toString() { none() } +} + +overlay[discard_entity] +private predicate discardLocatable(@locatable el) { + overlayChangedFiles(el.(DiscardableLocatable).getRawFileInBase()) +} + +/** + * A `@locatable` that should be discarded in the base variant if its file is + * extracted in the overlay variant and it is itself not extracted in the + * overlay, that is, it is deleted in the overlay. + */ +overlay[local] +abstract class DiscardableReferableLocatable extends @locatable { + /** Gets the raw file for a locatable in base. */ + string getRawFileInBase() { not isOverlay() and result = getRawFile(this) } + + /** Holds if the locatable exists in the overlay. */ + predicate existsInOverlay() { isOverlay() and exists(this) } + + /** Gets a textual representation of this discardable locatable. */ + string toString() { none() } +} + +overlay[discard_entity] +private predicate discardReferableLocatable(@locatable el) { + exists(DiscardableReferableLocatable drl | drl = el | + overlayChangedFiles(drl.getRawFileInBase()) and + not drl.existsInOverlay() + ) +} + +overlay[local] +private predicate baseConfigLocatable(@configLocatable l) { not isOverlay() and exists(l) } + +overlay[local] +private predicate overlayHasConfigLocatables() { + isOverlay() and + exists(@configLocatable el) +} + +overlay[discard_entity] +private predicate discardBaseConfigLocatable(@configLocatable el) { + // The properties extractor is currently not incremental, so if + // the overlay contains any config locatables, the overlay should + // contain a full extraction and all config locatables from base + // should be discarded. + baseConfigLocatable(el) and overlayHasConfigLocatables() +} + +overlay[local] +private predicate baseXmlLocatable(@xmllocatable l) { + not isOverlay() and not files(l, _) and not xmlNs(l, _, _, _) +} + +overlay[local] +private predicate overlayHasXmlLocatable() { + isOverlay() and + exists(@xmllocatable l | not files(l, _) and not xmlNs(l, _, _, _)) +} + +overlay[discard_entity] +private predicate discardBaseXmlLocatable(@xmllocatable el) { + // The XML extractor is currently not incremental, so if + // the overlay contains any XML locatables, the overlay should + // contain a full extraction and all XML locatables from base + // should be discarded. + baseXmlLocatable(el) and overlayHasXmlLocatable() +} diff --git a/java/ql/lib/semmle/code/java/Package.qll b/java/ql/lib/semmle/code/java/Package.qll index 466c97e561d6..e0621f4de541 100644 --- a/java/ql/lib/semmle/code/java/Package.qll +++ b/java/ql/lib/semmle/code/java/Package.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java packages. */ +overlay[local?] +module; import Element import Type diff --git a/java/ql/lib/semmle/code/java/PrettyPrintAst.qll b/java/ql/lib/semmle/code/java/PrettyPrintAst.qll index de1bf3100a37..3d907a5a0991 100644 --- a/java/ql/lib/semmle/code/java/PrettyPrintAst.qll +++ b/java/ql/lib/semmle/code/java/PrettyPrintAst.qll @@ -2,6 +2,8 @@ * Provides pretty-printed representations of the AST, in particular top-level * classes and interfaces. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/PrintAst.qll b/java/ql/lib/semmle/code/java/PrintAst.qll index 0af012234bb2..52d344401d70 100644 --- a/java/ql/lib/semmle/code/java/PrintAst.qll +++ b/java/ql/lib/semmle/code/java/PrintAst.qll @@ -5,6 +5,8 @@ * extend `PrintAstConfiguration` and override `shouldPrint` to hold for only the elements * you wish to view the AST for. */ +overlay[local?] +module; import java import semmle.code.java.regex.RegexTreeView as RegexTreeView diff --git a/java/ql/lib/semmle/code/java/Reflection.qll b/java/ql/lib/semmle/code/java/Reflection.qll index da287387e173..e37187231b93 100644 --- a/java/ql/lib/semmle/code/java/Reflection.qll +++ b/java/ql/lib/semmle/code/java/Reflection.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java Reflection. */ +overlay[local?] +module; import java import JDKAnnotations diff --git a/java/ql/lib/semmle/code/java/Serializability.qll b/java/ql/lib/semmle/code/java/Serializability.qll index 479d1d8cdb01..639cc0c18eba 100644 --- a/java/ql/lib/semmle/code/java/Serializability.qll +++ b/java/ql/lib/semmle/code/java/Serializability.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Java Serialization. */ +overlay[local?] +module; import java private import frameworks.jackson.JacksonSerializability diff --git a/java/ql/lib/semmle/code/java/Statement.qll b/java/ql/lib/semmle/code/java/Statement.qll index da9621f9ce3a..a4872a32c914 100644 --- a/java/ql/lib/semmle/code/java/Statement.qll +++ b/java/ql/lib/semmle/code/java/Statement.qll @@ -1,9 +1,12 @@ /** * Provides classes and predicates for working with Java statements. */ +overlay[local?] +module; import Expr import metrics.MetricStmt +private import semmle.code.java.Overlay /** A common super-class of all statements. */ class Stmt extends StmtParent, ExprParent, @stmt { @@ -985,3 +988,6 @@ class SuperConstructorInvocationStmt extends Stmt, ConstructorCall, @superconstr override string getAPrimaryQlClass() { result = "SuperConstructorInvocationStmt" } } + +overlay[local] +private class DiscardableStmt extends DiscardableLocatable, @stmt { } diff --git a/java/ql/lib/semmle/code/java/StringFormat.qll b/java/ql/lib/semmle/code/java/StringFormat.qll index 4ed39c02a841..da69a5b9b8ff 100644 --- a/java/ql/lib/semmle/code/java/StringFormat.qll +++ b/java/ql/lib/semmle/code/java/StringFormat.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for reasoning about string formatting. */ +overlay[local?] +module; import java import dataflow.DefUse diff --git a/java/ql/lib/semmle/code/java/Type.qll b/java/ql/lib/semmle/code/java/Type.qll index 5036bbea6224..dd646e74285c 100644 --- a/java/ql/lib/semmle/code/java/Type.qll +++ b/java/ql/lib/semmle/code/java/Type.qll @@ -9,6 +9,8 @@ * Classes and interfaces can also be local (`LocalClassOrInterface`, `LocalClass`) or anonymous (`AnonymousClass`). * Enumerated types (`EnumType`) and records (`Record`) are special kinds of classes. */ +overlay[local?] +module; import Member import Modifier @@ -420,6 +422,7 @@ class RefType extends Type, Annotatable, Modifiable, @reftype { * This does not include itself, unless this type is part of a cycle * in the type hierarchy. */ + overlay[caller?] RefType getAStrictAncestor() { result = this.getASupertype().getAnAncestor() } /** @@ -668,6 +671,7 @@ class RefType extends Type, Annotatable, Modifiable, @reftype { * * For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure). */ + overlay[caller?] pragma[inline] RefType commonSubtype(RefType other) { result.getASourceSupertype*() = erase(this) and @@ -1257,13 +1261,21 @@ private Type erase(Type t) { * * For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure). */ -pragma[inline] +bindingset[t1, t2] +overlay[caller?] +pragma[inline_late] predicate haveIntersection(RefType t1, RefType t2) { exists(RefType e1, RefType e2 | e1 = erase(t1) and e2 = erase(t2) | - erasedHaveIntersection(e1, e2) + erasedHaveIntersectionFilter(e1, e2) ) } +bindingset[t1, t2] +pragma[inline_late] +private predicate erasedHaveIntersectionFilter(RefType t1, RefType t2) { + erasedHaveIntersection(t1, t2) +} + /** * Holds if there is no common (reflexive, transitive) subtype of the erasures * of types `t1` and `t2`. diff --git a/java/ql/lib/semmle/code/java/UnitTests.qll b/java/ql/lib/semmle/code/java/UnitTests.qll index f229440e4eed..6c05fecab01c 100644 --- a/java/ql/lib/semmle/code/java/UnitTests.qll +++ b/java/ql/lib/semmle/code/java/UnitTests.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with test classes and methods. */ +overlay[local?] +module; import Type import Member diff --git a/java/ql/lib/semmle/code/java/Variable.qll b/java/ql/lib/semmle/code/java/Variable.qll index a4cf09df055d..cb76fe3a9c9a 100644 --- a/java/ql/lib/semmle/code/java/Variable.qll +++ b/java/ql/lib/semmle/code/java/Variable.qll @@ -1,8 +1,11 @@ /** * Provides classes and predicates for working with Java variables and their declarations. */ +overlay[local?] +module; import Element +private import semmle.code.java.Overlay /** A variable is a field, a local variable or a parameter. */ class Variable extends @variable, Annotatable, Element, Modifiable { @@ -131,3 +134,6 @@ class Parameter extends Element, @param, LocalScopeVariable { /** Holds if this is an anonymous parameter, `_` */ predicate isAnonymous() { this.getName() = "" } } + +overlay[local] +private class DiscardableLocalScopeVariable extends DiscardableLocatable, @localscopevariable { } diff --git a/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll b/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll index e92d8352fe9b..471f271eb866 100644 --- a/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll +++ b/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** A subclass of `PrimitiveType` with width-based ordering methods. */ diff --git a/java/ql/lib/semmle/code/java/comparison/Comparison.qll b/java/ql/lib/semmle/code/java/comparison/Comparison.qll index 27ed9271e999..7aea0f6fb258 100644 --- a/java/ql/lib/semmle/code/java/comparison/Comparison.qll +++ b/java/ql/lib/semmle/code/java/comparison/Comparison.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index 284ee1dad0ce..844371da36b8 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with basic blocks in Java. */ +overlay[local?] +module; import java import Dominance @@ -85,6 +87,17 @@ class BasicBlock extends BbImpl::BasicBlock { */ predicate dominates(BasicBlock bb) { super.dominates(bb) } + /** + * Holds if this basic block strictly dominates basic block `bb`. + * + * That is, all paths reaching `bb` from the entry point basic block must + * go through this basic block and this basic block is different from `bb`. + */ + predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) } + + /** Gets an immediate successor of this basic block of a given type, if any. */ + BasicBlock getASuccessor(Input::SuccessorType t) { result = super.getASuccessor(t) } + /** * DEPRECATED: Use `getASuccessor` instead. * diff --git a/java/ql/lib/semmle/code/java/controlflow/Dominance.qll b/java/ql/lib/semmle/code/java/controlflow/Dominance.qll index 6f0cb3d255c5..e2a50ba06df6 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Dominance.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Dominance.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for control-flow graph dominance. */ +overlay[local?] +module; import java @@ -93,6 +95,7 @@ predicate iDominates(ControlFlowNode dominator, ControlFlowNode node) { } /** Holds if `dom` strictly dominates `node`. */ +overlay[caller?] pragma[inline] predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. @@ -102,6 +105,7 @@ predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) { } /** Holds if `dom` dominates `node`. (This is reflexive.) */ +overlay[caller?] pragma[inline] predicate dominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. @@ -111,6 +115,7 @@ predicate dominates(ControlFlowNode dom, ControlFlowNode node) { } /** Holds if `dom` strictly post-dominates `node`. */ +overlay[caller?] pragma[inline] predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. @@ -120,6 +125,7 @@ predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) { } /** Holds if `dom` post-dominates `node`. (This is reflexive.) */ +overlay[caller?] pragma[inline] predicate postDominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index 4042e7b29624..8cead5b666bb 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -2,12 +2,14 @@ * Provides classes and predicates for reasoning about guards and the control * flow elements controlled by those guards. */ +overlay[local?] +module; import java private import semmle.code.java.controlflow.Dominance -private import semmle.code.java.controlflow.internal.GuardsLogic private import semmle.code.java.controlflow.internal.Preconditions private import semmle.code.java.controlflow.internal.SwitchCases +private import codeql.controlflow.Guards as SharedGuards /** * A basic block that terminates in a condition, splitting the subsequent control flow. @@ -137,67 +139,378 @@ private predicate isNonFallThroughPredecessor(SwitchCase sc, ControlFlowNode pre ) } -/** - * A condition that can be evaluated to either true or false. This can either - * be an `Expr` of boolean type that isn't a boolean literal, or a case of a - * switch statement, or a method access that acts as a precondition check. - * - * Evaluating a switch case to true corresponds to taking that switch case, and - * evaluating it to false corresponds to taking some other branch. - */ -final class Guard extends ExprParent { - Guard() { - this.(Expr).getType() instanceof BooleanType and not this instanceof BooleanLiteral - or - this instanceof SwitchCase - or - conditionCheckArgument(this, _, _) +private module GuardsInput implements SharedGuards::InputSig { + private import java as J + private import semmle.code.java.dataflow.NullGuards as NullGuards + import SuccessorType + + class ControlFlowNode = J::ControlFlowNode; + + class BasicBlock = J::BasicBlock; + + predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { J::dominatingEdge(bb1, bb2) } + + class AstNode = ExprParent; + + class Expr = J::Expr; + + private newtype TConstantValue = + TCharValue(string c) { any(CharacterLiteral lit).getValue() = c } or + TStringValue(string value) { any(CompileTimeConstantExpr c).getStringValue() = value } or + TEnumValue(EnumConstant c) + + class ConstantValue extends TConstantValue { + string toString() { + this = TCharValue(result) + or + this = TStringValue(result) + or + exists(EnumConstant c | this = TEnumValue(c) and result = c.toString()) + } } - /** Gets the immediately enclosing callable whose body contains this guard. */ - Callable getEnclosingCallable() { - result = this.(Expr).getEnclosingCallable() or - result = this.(SwitchCase).getEnclosingCallable() + abstract class ConstantExpr extends Expr { + predicate isNull() { none() } + + boolean asBooleanValue() { none() } + + int asIntegerValue() { none() } + + ConstantValue asConstantValue() { none() } } - /** Gets the statement containing this guard. */ - Stmt getEnclosingStmt() { - result = this.(Expr).getEnclosingStmt() or - result = this.(SwitchCase).getSwitch() or - result = this.(SwitchCase).getSwitchExpr().getEnclosingStmt() + private class NullConstant extends ConstantExpr instanceof J::NullLiteral { + override predicate isNull() { any() } } - /** - * Gets the basic block containing this guard or the basic block that tests the - * applicability of this switch case -- for a pattern case this is the case statement - * itself; for a non-pattern case this is the most recent pattern case or the top of - * the switch block if there is none. - */ - BasicBlock getBasicBlock() { - // Not a switch case - result = this.(Expr).getBasicBlock() + private class BooleanConstant extends ConstantExpr instanceof J::BooleanLiteral { + override boolean asBooleanValue() { result = super.getBooleanValue() } + } + + private class IntegerConstant extends ConstantExpr instanceof J::CompileTimeConstantExpr { + override int asIntegerValue() { result = super.getIntValue() } + } + + private class CharConstant extends ConstantExpr instanceof J::CharacterLiteral { + override ConstantValue asConstantValue() { result = TCharValue(super.getValue()) } + } + + private class StringConstant extends ConstantExpr instanceof J::CompileTimeConstantExpr { + override ConstantValue asConstantValue() { result = TStringValue(super.getStringValue()) } + } + + private class EnumConstantExpr extends ConstantExpr instanceof J::VarAccess { + override ConstantValue asConstantValue() { + exists(EnumConstant c | this = c.getAnAccess() and result = TEnumValue(c)) + } + } + + class NonNullExpr extends Expr { + NonNullExpr() { + this = NullGuards::baseNotNullExpr() + or + exists(Field f | + this = f.getAnAccess() and + f.isFinal() and + f.getInitializer() = NullGuards::baseNotNullExpr() + ) + } + } + + class Case extends ExprParent instanceof J::SwitchCase { + Expr getSwitchExpr() { result = super.getSelectorExpr() } + + predicate isDefaultCase() { this instanceof DefaultCase } + + ConstantExpr asConstantCase() { + exists(ConstCase cc | this = cc | + cc.getValue() = result and + strictcount(cc.getValue(_)) = 1 + ) + } + + private predicate hasPatternCaseMatchEdge(BasicBlock bb1, BasicBlock bb2, boolean isMatch) { + exists(ConditionNode patterncase | + this instanceof PatternCase and + patterncase = super.getControlFlowNode() and + bb1.getLastNode() = patterncase and + bb2.getFirstNode() = patterncase.getABranchSuccessor(isMatch) + ) + } + + predicate matchEdge(BasicBlock bb1, BasicBlock bb2) { + exists(ControlFlowNode pred | + // Pattern cases are handled as ConditionBlocks. + not this instanceof PatternCase and + bb2.getFirstNode() = super.getControlFlowNode() and + isNonFallThroughPredecessor(this, pred) and + bb1 = pred.getBasicBlock() + ) + or + this.hasPatternCaseMatchEdge(bb1, bb2, true) + } + + predicate nonMatchEdge(BasicBlock bb1, BasicBlock bb2) { + this.hasPatternCaseMatchEdge(bb1, bb2, false) + } + } + + abstract private class BinExpr extends Expr { + Expr getAnOperand() { + result = this.(BinaryExpr).getAnOperand() or result = this.(AssignOp).getSource() + } + } + + class AndExpr extends BinExpr { + AndExpr() { + this instanceof AndBitwiseExpr or + this instanceof AndLogicalExpr or + this instanceof AssignAndExpr + } + } + + class OrExpr extends BinExpr { + OrExpr() { + this instanceof OrBitwiseExpr or + this instanceof OrLogicalExpr or + this instanceof AssignOrExpr + } + } + + class NotExpr extends Expr instanceof J::LogNotExpr { + Expr getOperand() { result = this.(J::LogNotExpr).getExpr() } + } + + class IdExpr extends Expr { + IdExpr() { this instanceof AssignExpr or this instanceof CastExpr } + + Expr getEqualChildExpr() { + result = this.(AssignExpr).getSource() + or + result = this.(CastExpr).getExpr() + } + } + + private predicate objectsEquals(Method equals) { + equals.hasQualifiedName("java.util", "Objects", "equals") and + equals.getNumberOfParameters() = 2 + } + + pragma[nomagic] + predicate equalityTest(Expr eqtest, Expr left, Expr right, boolean polarity) { + exists(EqualityTest eq | eq = eqtest | + eq.getLeftOperand() = left and + eq.getRightOperand() = right and + eq.polarity() = polarity + ) or - // Return the closest pattern case statement before this one, including this one. - result = getClosestPrecedingPatternCase(this).getBasicBlock() + exists(MethodCall call | call = eqtest and polarity = true | + call.getMethod() instanceof EqualsMethod and + call.getQualifier() = left and + call.getAnArgument() = right + or + objectsEquals(call.getMethod()) and + call.getArgument(0) = left and + call.getArgument(1) = right + ) + } + + class ConditionalExpr extends Expr instanceof J::ConditionalExpr { + Expr getCondition() { result = super.getCondition() } + + Expr getThen() { result = super.getTrueExpr() } + + Expr getElse() { result = super.getFalseExpr() } + } +} + +private module GuardsImpl = SharedGuards::Make; + +private module LogicInputCommon { + private import semmle.code.java.dataflow.NullGuards as NullGuards + + predicate additionalNullCheck( + GuardsImpl::PreGuard guard, GuardValue val, GuardsInput::Expr e, boolean isNull + ) { + guard.(InstanceOfExpr).getExpr() = e and val.asBooleanValue() = true and isNull = false or - // Not a pattern case and no preceding pattern case -- return the top of the switch block. - not exists(getClosestPrecedingPatternCase(this)) and - result = this.(SwitchCase).getSelectorExpr().getBasicBlock() + exists(MethodCall call | + call = guard and + call.getAnArgument() = e and + NullGuards::nullCheckMethod(call.getMethod(), val.asBooleanValue(), isNull) + ) } +} - /** - * Holds if this guard is an equality test between `e1` and `e2`. The test - * can be either `==`, `!=`, `.equals`, or a switch case. If the test is - * negated, that is `!=`, then `polarity` is false, otherwise `polarity` is - * true. - */ - predicate isEquality(Expr e1, Expr e2, boolean polarity) { - exists(Expr exp1, Expr exp2 | equalityGuard(this, exp1, exp2, polarity) | - e1 = exp1 and e2 = exp2 - or - e2 = exp1 and e1 = exp2 +private module LogicInput_v1 implements GuardsImpl::LogicInputSig { + private import semmle.code.java.dataflow.internal.BaseSSA + + final private class FinalBaseSsaVariable = BaseSsaVariable; + + class SsaDefinition extends FinalBaseSsaVariable { + GuardsInput::Expr getARead() { result = this.getAUse() } + } + + class SsaWriteDefinition extends SsaDefinition instanceof BaseSsaUpdate { + GuardsInput::Expr getDefinition() { + super.getDefiningExpr().(VariableAssign).getSource() = result or + super.getDefiningExpr().(AssignOp) = result + } + } + + class SsaPhiNode extends SsaDefinition instanceof BaseSsaPhiNode { + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { + super.hasInputFromBlock(inp, bb) + } + } + + predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; + + predicate additionalImpliesStep( + GuardsImpl::PreGuard g1, GuardValue v1, GuardsImpl::PreGuard g2, GuardValue v2 + ) { + exists(MethodCall check, int argIndex | + g1 = check and + v1.getDualValue().isThrowsException() and + conditionCheckArgument(check, argIndex, v2.asBooleanValue()) and + g2 = check.getArgument(argIndex) ) } +} + +private module LogicInput_v2 implements GuardsImpl::LogicInputSig { + private import semmle.code.java.dataflow.SSA as SSA + + final private class FinalSsaVariable = SSA::SsaVariable; + + class SsaDefinition extends FinalSsaVariable { + GuardsInput::Expr getARead() { result = this.getAUse() } + } + + class SsaWriteDefinition extends SsaDefinition instanceof SSA::SsaExplicitUpdate { + GuardsInput::Expr getDefinition() { + super.getDefiningExpr().(VariableAssign).getSource() = result or + super.getDefiningExpr().(AssignOp) = result + } + } + + class SsaPhiNode extends SsaDefinition instanceof SSA::SsaPhiNode { + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { + super.hasInputFromBlock(inp, bb) + } + } + + predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; + + predicate additionalImpliesStep( + GuardsImpl::PreGuard g1, GuardValue v1, GuardsImpl::PreGuard g2, GuardValue v2 + ) { + LogicInput_v1::additionalImpliesStep(g1, v1, g2, v2) + or + CustomGuard::additionalImpliesStep(g1, v1, g2, v2) + } +} + +private module LogicInput_v3 implements GuardsImpl::LogicInputSig { + private import semmle.code.java.dataflow.IntegerGuards as IntegerGuards + import LogicInput_v2 + + predicate rangeGuard(GuardsImpl::PreGuard guard, GuardValue val, Expr e, int k, boolean upper) { + IntegerGuards::rangeGuard(guard, val.asBooleanValue(), e, k, upper) + } + + predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; + + predicate additionalImpliesStep = LogicInput_v2::additionalImpliesStep/4; +} + +private module CustomGuardInput implements Guards_v2::CustomGuardInputSig { + private import semmle.code.java.dataflow.SSA + + private int parameterPosition() { result in [-1, any(Parameter p).getPosition()] } + + /** A parameter position represented by an integer. */ + class ParameterPosition extends int { + ParameterPosition() { this = parameterPosition() } + } + + /** An argument position represented by an integer. */ + class ArgumentPosition extends int { + ArgumentPosition() { this = parameterPosition() } + } + + /** Holds if arguments at position `apos` match parameters at position `ppos`. */ + overlay[caller?] + pragma[inline] + predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } + + final private class FinalMethod = Method; + + class BooleanMethod extends FinalMethod { + BooleanMethod() { + super.getReturnType().(PrimitiveType).hasName("boolean") and + not super.isOverridable() + } + + LogicInput_v2::SsaDefinition getParameter(ParameterPosition ppos) { + exists(Parameter p | + super.getParameter(ppos) = p and + not p.isVarargs() and + result.(SsaImplicitInit).isParameterDefinition(p) + ) + } + + GuardsInput::Expr getAReturnExpr() { + exists(ReturnStmt ret | + this = ret.getEnclosingCallable() and + ret.getResult() = result + ) + } + } + + private predicate booleanMethodCall(MethodCall call, BooleanMethod m) { + call.getMethod().getSourceDeclaration() = m + } + + class BooleanMethodCall extends GuardsInput::Expr instanceof MethodCall { + BooleanMethodCall() { booleanMethodCall(this, _) } + + BooleanMethod getMethod() { booleanMethodCall(this, result) } + + GuardsInput::Expr getArgument(ArgumentPosition apos) { result = super.getArgument(apos) } + } +} + +class GuardValue = GuardsImpl::GuardValue; + +private module CustomGuard = Guards_v2::CustomGuard; + +/** INTERNAL: Don't use. */ +module Guards_v1 = GuardsImpl::Logic; + +/** INTERNAL: Don't use. */ +module Guards_v2 = GuardsImpl::Logic; + +/** INTERNAL: Don't use. */ +module Guards_v3 = GuardsImpl::Logic; + +/** INTERNAL: Don't use. */ +predicate implies_v3(Guard g1, boolean b1, Guard g2, boolean b2) { + Guards_v3::boolImplies(g1, any(GuardValue v | v.asBooleanValue() = b1), g2, + any(GuardValue v | v.asBooleanValue() = b2)) +} + +/** + * A guard. This may be any expression whose value determines subsequent + * control flow. It may also be a switch case, which as a guard is considered + * to evaluate to either true or false depending on whether the case matches. + */ +final class Guard extends Guards_v3::Guard { + /** Gets the immediately enclosing callable whose body contains this guard. */ + Callable getEnclosingCallable() { + result = this.(Expr).getEnclosingCallable() or + result = this.(SwitchCase).getEnclosingCallable() + } /** * Holds if this guard tests whether `testedExpr` has type `testedType`. @@ -231,211 +544,14 @@ final class Guard extends ExprParent { else restricted = false ) } - - /** - * Holds if the evaluation of this guard to `branch` corresponds to the edge - * from `bb1` to `bb2`. - */ - predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - exists(ConditionBlock cb | - cb = bb1 and - cb.getCondition() = this and - bb2 = cb.getTestSuccessor(branch) - ) - or - exists(SwitchCase sc, ControlFlowNode pred | - sc = this and - // Pattern cases are handled as ConditionBlocks above. - not sc instanceof PatternCase and - branch = true and - bb2.getFirstNode() = sc.getControlFlowNode() and - isNonFallThroughPredecessor(sc, pred) and - bb1 = pred.getBasicBlock() - ) - or - preconditionBranchEdge(this, bb1, bb2, branch) - } - - /** - * Holds if this guard evaluating to `branch` directly controls the block - * `controlled`. That is, the `true`- or `false`-successor of this guard (as - * given by `branch`) dominates `controlled`. - */ - predicate directlyControls(BasicBlock controlled, boolean branch) { - exists(ConditionBlock cb | - cb.getCondition() = this and - cb.controls(controlled, branch) - ) - or - switchCaseControls(this, controlled) and branch = true - or - preconditionControls(this, controlled, branch) - } - - /** - * Holds if this guard evaluating to `branch` controls the control-flow - * branch edge from `bb1` to `bb2`. That is, following the edge from - * `bb1` to `bb2` implies that this guard evaluated to `branch`. - */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - guardControlsBranchEdge_v3(this, bb1, bb2, branch) - } - - /** - * Holds if this guard evaluating to `branch` directly or indirectly controls - * the block `controlled`. That is, the evaluation of `controlled` is - * dominated by this guard evaluating to `branch`. - */ - predicate controls(BasicBlock controlled, boolean branch) { - guardControls_v3(this, controlled, branch) - } -} - -private predicate switchCaseControls(SwitchCase sc, BasicBlock bb) { - exists(BasicBlock caseblock | - // Pattern cases are handled as condition blocks - not sc instanceof PatternCase and - caseblock.getFirstNode() = sc.getControlFlowNode() and - caseblock.dominates(bb) and - // Check we can't fall through from a previous block: - forall(ControlFlowNode pred | pred = sc.getControlFlowNode().getAPredecessor() | - isNonFallThroughPredecessor(sc, pred) - ) - ) -} - -private predicate preconditionBranchEdge( - MethodCall ma, BasicBlock bb1, BasicBlock bb2, boolean branch -) { - conditionCheckArgument(ma, _, branch) and - bb1.getLastNode() = ma.getControlFlowNode() and - bb2.getFirstNode() = bb1.getLastNode().getANormalSuccessor() -} - -private predicate preconditionControls(MethodCall ma, BasicBlock controlled, boolean branch) { - exists(BasicBlock check, BasicBlock succ | - preconditionBranchEdge(ma, check, succ, branch) and - dominatingEdge(check, succ) and - succ.dominates(controlled) - ) } /** - * INTERNAL: Use `Guards.controls` instead. + * INTERNAL: Use `Guard.controls` instead. * * Holds if `guard.controls(controlled, branch)`, except this only relies on * BaseSSA-based reasoning. */ -predicate guardControls_v1(Guard guard, BasicBlock controlled, boolean branch) { - guard.directlyControls(controlled, branch) - or - exists(Guard g, boolean b | - guardControls_v1(g, controlled, b) and - implies_v1(g, b, guard, branch) - ) -} - -/** - * INTERNAL: Use `Guards.controls` instead. - * - * Holds if `guard.controls(controlled, branch)`, except this doesn't rely on - * RangeAnalysis. - */ -predicate guardControls_v2(Guard guard, BasicBlock controlled, boolean branch) { - guard.directlyControls(controlled, branch) - or - exists(Guard g, boolean b | - guardControls_v2(g, controlled, b) and - implies_v2(g, b, guard, branch) - ) -} - -pragma[nomagic] -private predicate guardControls_v3(Guard guard, BasicBlock controlled, boolean branch) { - guard.directlyControls(controlled, branch) - or - exists(Guard g, boolean b | - guardControls_v3(g, controlled, b) and - implies_v3(g, b, guard, branch) - ) -} - -pragma[nomagic] -private predicate guardControlsBranchEdge_v2( - Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch -) { - guard.hasBranchEdge(bb1, bb2, branch) - or - exists(Guard g, boolean b | - guardControlsBranchEdge_v2(g, bb1, bb2, b) and - implies_v2(g, b, guard, branch) - ) -} - -pragma[nomagic] -private predicate guardControlsBranchEdge_v3( - Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch -) { - guard.hasBranchEdge(bb1, bb2, branch) - or - exists(Guard g, boolean b | - guardControlsBranchEdge_v3(g, bb1, bb2, b) and - implies_v3(g, b, guard, branch) - ) -} - -/** INTERNAL: Use `Guard` instead. */ -final class Guard_v2 extends Guard { - /** - * Holds if this guard evaluating to `branch` controls the control-flow - * branch edge from `bb1` to `bb2`. That is, following the edge from - * `bb1` to `bb2` implies that this guard evaluated to `branch`. - */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - guardControlsBranchEdge_v2(this, bb1, bb2, branch) - } - - /** - * Holds if this guard evaluating to `branch` directly or indirectly controls - * the block `controlled`. That is, the evaluation of `controlled` is - * dominated by this guard evaluating to `branch`. - */ - predicate controls(BasicBlock controlled, boolean branch) { - guardControls_v2(this, controlled, branch) - } -} - -private predicate equalityGuard(Guard g, Expr e1, Expr e2, boolean polarity) { - exists(EqualityTest eqtest | - eqtest = g and - polarity = eqtest.polarity() and - eqtest.hasOperands(e1, e2) - ) - or - exists(MethodCall ma | - ma = g and - ma.getMethod() instanceof EqualsMethod and - polarity = true and - ma.getAnArgument() = e1 and - ma.getQualifier() = e2 - ) - or - exists(MethodCall ma, Method equals | - ma = g and - ma.getMethod() = equals and - polarity = true and - equals.hasName("equals") and - equals.getNumberOfParameters() = 2 and - equals.getDeclaringType().hasQualifiedName("java.util", "Objects") and - ma.getArgument(0) = e1 and - ma.getArgument(1) = e2 - ) - or - exists(ConstCase cc | - cc = g and - polarity = true and - cc.getSelectorExpr() = e1 and - cc.getValue() = e2 and - strictcount(cc.getValue(_)) = 1 - ) +predicate guardControls_v1(Guards_v1::Guard guard, BasicBlock controlled, boolean branch) { + guard.controls(controlled, branch) } diff --git a/java/ql/lib/semmle/code/java/controlflow/Paths.qll b/java/ql/lib/semmle/code/java/controlflow/Paths.qll index 8f87e19404a6..abc56e32b5ca 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Paths.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Paths.qll @@ -2,6 +2,8 @@ * This library provides predicates for reasoning about the set of all paths * through a callable. */ +overlay[local?] +module; import java import semmle.code.java.dispatch.VirtualDispatch @@ -64,6 +66,10 @@ private class JoinBlock extends BasicBlock { JoinBlock() { 2 <= strictcount(this.getAPredecessor()) } } +private class ReachableBlock extends BasicBlock { + ReachableBlock() { hasDominanceInformation(this) } +} + /** * Holds if `bb` is a block that is collectively dominated by a set of one or * more actions that individually does not dominate the exit. @@ -72,7 +78,7 @@ private predicate postActionBlock(BasicBlock bb, ActionConfiguration conf) { bb = nonDominatingActionBlock(conf) or if bb instanceof JoinBlock - then forall(BasicBlock pred | pred = bb.getAPredecessor() | postActionBlock(pred, conf)) + then forall(ReachableBlock pred | pred = bb.getAPredecessor() | postActionBlock(pred, conf)) else postActionBlock(bb.getAPredecessor(), conf) } diff --git a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll index f03e4690a95a..feabc47552f3 100644 --- a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll +++ b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll @@ -1,6 +1,8 @@ /** * Provides different types of control flow successor types. */ +overlay[local?] +module; import java private import codeql.util.Boolean diff --git a/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll index 0ade780bc00c..0247417c6bb6 100644 --- a/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for identifying unreachable blocks under a "closed-world" assumption. */ +overlay[local?] +module; import java import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/controlflow/internal/Preconditions.qll b/java/ql/lib/semmle/code/java/controlflow/internal/Preconditions.qll index 6e6c5ec47f9c..a0d2e4ef03ec 100644 --- a/java/ql/lib/semmle/code/java/controlflow/internal/Preconditions.qll +++ b/java/ql/lib/semmle/code/java/controlflow/internal/Preconditions.qll @@ -3,6 +3,8 @@ * `com.google.common.base.Preconditions` and * `org.apache.commons.lang3.Validate`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/controlflow/internal/SwitchCases.qll b/java/ql/lib/semmle/code/java/controlflow/internal/SwitchCases.qll index 1d94f075abbe..5366fa78a539 100644 --- a/java/ql/lib/semmle/code/java/controlflow/internal/SwitchCases.qll +++ b/java/ql/lib/semmle/code/java/controlflow/internal/SwitchCases.qll @@ -1,4 +1,6 @@ /** Provides utility predicates relating to switch cases. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/controlflow/unreachableblocks/ExcludeDebuggingProfilingLogging.qll b/java/ql/lib/semmle/code/java/controlflow/unreachableblocks/ExcludeDebuggingProfilingLogging.qll index 7b7a5943f6c6..bda7f9bee740 100644 --- a/java/ql/lib/semmle/code/java/controlflow/unreachableblocks/ExcludeDebuggingProfilingLogging.qll +++ b/java/ql/lib/semmle/code/java/controlflow/unreachableblocks/ExcludeDebuggingProfilingLogging.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.controlflow.UnreachableBlocks diff --git a/java/ql/lib/semmle/code/java/dataflow/ApiSinks.qll b/java/ql/lib/semmle/code/java/dataflow/ApiSinks.qll index c600bb1672d8..56027a4507c8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ApiSinks.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ApiSinks.qll @@ -1,4 +1,6 @@ /** Provides classes representing various flow sinks for data flow / taint tracking. */ +overlay[local?] +module; private import semmle.code.java.dataflow.FlowSinks as FlowSinks diff --git a/java/ql/lib/semmle/code/java/dataflow/ApiSources.qll b/java/ql/lib/semmle/code/java/dataflow/ApiSources.qll index 8649b5cf830d..add0ec0d9a5b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ApiSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ApiSources.qll @@ -1,4 +1,6 @@ /** Provides classes representing various flow sources for data flow / taint tracking. */ +overlay[local?] +module; private import semmle.code.java.dataflow.FlowSources as FlowSources diff --git a/java/ql/lib/semmle/code/java/dataflow/Bound.qll b/java/ql/lib/semmle/code/java/dataflow/Bound.qll index 08826b7ae8f1..65af6fb13a81 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Bound.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Bound.qll @@ -1,6 +1,8 @@ /** * Provides classes for representing abstract bounds for use in, for example, range analysis. */ +overlay[local?] +module; private import internal.rangeanalysis.BoundSpecific diff --git a/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll b/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll index ab48577c02e7..54eb809c7b97 100644 --- a/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll @@ -2,6 +2,8 @@ * Provides classes for performing local (intra-procedural) and * global (inter-procedural) data flow analyses. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/dataflow/DefUse.qll b/java/ql/lib/semmle/code/java/dataflow/DefUse.qll index 9fa08d62c27f..a93f2e30b462 100644 --- a/java/ql/lib/semmle/code/java/dataflow/DefUse.qll +++ b/java/ql/lib/semmle/code/java/dataflow/DefUse.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for def-use and use-use pairs. Built on top of the SSA library for * maximal precision. */ +overlay[local?] +module; import java private import SSA diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index a38e54f05134..d1849df0f3ec 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -86,6 +86,8 @@ * This information is used in a heuristic for dataflow analysis to determine, if a * model or source code should be used for determining flow. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow::DataFlow diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSinks.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSinks.qll index 72cd96f6745c..61066774e52b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSinks.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSinks.qll @@ -1,4 +1,6 @@ /** Provides classes representing various flow sinks for data flow / taint tracking. */ +overlay[local?] +module; private import java private import semmle.code.java.dataflow.ExternalFlow diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index f63eae183c49..8c6ac60eb24f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -1,6 +1,8 @@ /** * Provides classes representing various flow sources for taint tracking. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll index d081a6289ecd..6dd8de89e213 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll @@ -1,6 +1,8 @@ /** * Provides classes representing various flow steps for taint tracking. */ +overlay[local?] +module; private import java private import semmle.code.java.dataflow.DataFlow @@ -160,7 +162,7 @@ private class NumberTaintPreservingCallable extends TaintPreservingCallable { int argument; NumberTaintPreservingCallable() { - this.getDeclaringType().getAnAncestor().hasQualifiedName("java.lang", "Number") and + this.getDeclaringType().getASourceSupertype*().hasQualifiedName("java.lang", "Number") and ( this instanceof Constructor and argument = 0 diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSummary.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSummary.qll index acea2a10784f..d038851d8374 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSummary.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSummary.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for defining flow summaries. */ +overlay[local?] +module; import java private import internal.FlowSummaryImpl as Impl diff --git a/java/ql/lib/semmle/code/java/dataflow/InstanceAccess.qll b/java/ql/lib/semmle/code/java/dataflow/InstanceAccess.qll index 0bae1b5e9c10..feeb0d100c64 100644 --- a/java/ql/lib/semmle/code/java/dataflow/InstanceAccess.qll +++ b/java/ql/lib/semmle/code/java/dataflow/InstanceAccess.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for reasoning about explicit and implicit * instance accesses. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll index 58d77b649788..042fd5194f23 100644 --- a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for integer guards. */ +overlay[local?] +module; import java private import SSA @@ -32,6 +34,58 @@ class IntComparableExpr extends Expr { } } +/** + * 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 + * than or equal to `e2`. + */ +private predicate comparison(ComparisonExpr comp, boolean branch, Expr e1, Expr e2, boolean strict) { + branch = true and + e1 = comp.getLesserOperand() and + e2 = comp.getGreaterOperand() and + (if comp.isStrict() then strict = true else strict = false) + or + branch = false and + e1 = comp.getGreaterOperand() and + e2 = comp.getLesserOperand() and + (if comp.isStrict() then strict = false else strict = true) +} + +/** + * Holds if `guard` evaluating to `branch` ensures that: + * `e <= k` when `upper = true` + * `e >= k` when `upper = false` + */ +pragma[nomagic] +predicate rangeGuard(Expr guard, boolean branch, Expr e, int k, boolean upper) { + exists(EqualityTest eqtest, Expr c | + eqtest = guard and + eqtest.hasOperands(e, c) and + bounded(c, any(ZeroBound zb), k, upper, _) and + branch = eqtest.polarity() + ) + or + exists(Expr c, int val, boolean strict, int d | + bounded(c, any(ZeroBound zb), val, upper, _) and + ( + upper = true and + comparison(guard, branch, e, c, strict) and + d = -1 + or + upper = false and + comparison(guard, branch, c, e, strict) and + d = 1 + ) and + ( + strict = false and k = val + or + // e < c <= val ==> e <= c - 1 <= val - 1 + // e > c >= val ==> e >= c + 1 >= val + 1 + strict = true and k = val + d + ) + ) +} + /** * 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 @@ -53,75 +107,14 @@ Expr integerGuard(IntComparableExpr e, boolean branch, int k, boolean is_k) { ) ) or - exists(EqualityTest eqtest, int val, Expr c, boolean upper | - k = e.relevantInt() and - eqtest = result and - eqtest.hasOperands(e, c) and - bounded(c, any(ZeroBound zb), val, upper, _) and - is_k = false and - ( - upper = true and val < k - or - upper = false and val > k - ) and - branch = eqtest.polarity() - ) - or - exists(ComparisonExpr comp, Expr c, int val, boolean upper | + exists(int val, boolean upper | + rangeGuard(result, branch, e, val, upper) and k = e.relevantInt() and - comp = result and - comp.hasOperands(e, c) and - bounded(c, any(ZeroBound zb), val, upper, _) and is_k = false | - // k <= val <= c < e, so e != k - comp.getLesserOperand() = c and - comp.isStrict() and - branch = true and - val >= k and - upper = false - or - comp.getLesserOperand() = c and - comp.isStrict() and - branch = false and - val < k and - upper = true - or - comp.getLesserOperand() = c and - not comp.isStrict() and - branch = true and - val > k and - upper = false + upper = true and val < k // e <= val < k ==> e != k or - comp.getLesserOperand() = c and - not comp.isStrict() and - branch = false and - val <= k and - upper = true - or - comp.getGreaterOperand() = c and - comp.isStrict() and - branch = true and - val <= k and - upper = true - or - comp.getGreaterOperand() = c and - comp.isStrict() and - branch = false and - val > k and - upper = false - or - comp.getGreaterOperand() = c and - not comp.isStrict() and - branch = true and - val < k and - upper = true - or - comp.getGreaterOperand() = c and - not comp.isStrict() and - branch = false and - val >= k and - upper = false + upper = false and val > k // e >= val > k ==> e != k ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll index 3e5a45da247d..1451a605cdb0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll @@ -3,6 +3,8 @@ * an expression, `b` is a `Bound` (typically zero or the value of an SSA * variable), and `v` is an integer in the range `[0 .. m-1]`. */ +overlay[local?] +module; private import internal.rangeanalysis.ModulusAnalysisSpecific::Private private import Bound diff --git a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll index 2dd72d78a2ea..bf9a166e0489 100644 --- a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll @@ -1,10 +1,12 @@ /** * Provides classes and predicates for null guards. */ +overlay[local?] +module; import java import SSA -private import semmle.code.java.controlflow.internal.GuardsLogic +private import semmle.code.java.controlflow.Guards private import semmle.code.java.frameworks.apache.Collections private import IntegerGuards @@ -41,33 +43,44 @@ EqualityTest varEqualityTestExpr(SsaVariable v1, SsaVariable v2, boolean isEqual } /** Gets an expression that is provably not `null`. */ -Expr clearlyNotNullExpr(Expr reason) { - result instanceof ClassInstanceExpr and reason = result +Expr baseNotNullExpr() { + result instanceof ClassInstanceExpr or - result instanceof ArrayCreationExpr and reason = result + result instanceof ArrayCreationExpr or - result instanceof TypeLiteral and reason = result + result instanceof TypeLiteral or - result instanceof ThisAccess and reason = result + result instanceof ThisAccess or - result instanceof StringLiteral and reason = result + result instanceof StringLiteral or - result instanceof AddExpr and result.getType() instanceof TypeString and reason = result + result instanceof AddExpr and result.getType() instanceof TypeString or exists(Field f | result = f.getAnAccess() and (f.hasName("TRUE") or f.hasName("FALSE")) and - f.getDeclaringType().hasQualifiedName("java.lang", "Boolean") and - reason = result + f.getDeclaringType().hasQualifiedName("java.lang", "Boolean") ) or - result.(CastExpr).getExpr() = clearlyNotNullExpr(reason) + result = any(EnumConstant c).getAnAccess() or - result.(ImplicitCastExpr).getExpr() = clearlyNotNullExpr(reason) + result instanceof ImplicitNotNullExpr or - result instanceof ImplicitNotNullExpr and reason = result + result instanceof ImplicitCoercionToUnitExpr or - result instanceof ImplicitCoercionToUnitExpr and reason = result + result + .(MethodCall) + .getMethod() + .hasQualifiedName("com.google.common.base", "Strings", "nullToEmpty") +} + +/** Gets an expression that is provably not `null`. */ +Expr clearlyNotNullExpr(Expr reason) { + result = baseNotNullExpr() and reason = result + or + result.(CastExpr).getExpr() = clearlyNotNullExpr(reason) + or + result.(ImplicitCastExpr).getExpr() = clearlyNotNullExpr(reason) or result.(AssignExpr).getSource() = clearlyNotNullExpr(reason) or @@ -83,14 +96,14 @@ Expr clearlyNotNullExpr(Expr reason) { guard.controls(rval.getBasicBlock(), branch) and reason = guard and rval = v.getAUse() and - result = rval + result = rval and + not result = baseNotNullExpr() ) or - exists(SsaVariable v | clearlyNotNull(v, reason) and result = v.getAUse()) - or - exists(Method m | m = result.(MethodCall).getMethod() and reason = result | - m.getDeclaringType().hasQualifiedName("com.google.common.base", "Strings") and - m.hasName("nullToEmpty") + exists(SsaVariable v | + clearlyNotNull(v, reason) and + result = v.getAUse() and + not result = baseNotNullExpr() ) } @@ -173,50 +186,19 @@ predicate nullCheckMethod(Method m, boolean branch, boolean isnull) { * is true, and non-null if `isnull` is false. */ Expr basicNullGuard(Expr e, boolean branch, boolean isnull) { - exists(EqualityTest eqtest, boolean polarity | - eqtest = result and - eqtest.hasOperands(e, any(NullLiteral n)) and - polarity = eqtest.polarity() and - ( - branch = true and isnull = polarity - or - branch = false and isnull = polarity.booleanNot() - ) - ) - or - result.(InstanceOfExpr).getExpr() = e and branch = true and isnull = false - or - exists(MethodCall call | - call = result and - call.getAnArgument() = e and - nullCheckMethod(call.getMethod(), branch, isnull) - ) - or - exists(EqualityTest eqtest | - eqtest = result and - eqtest.hasOperands(e, clearlyNotNullExpr()) and - isnull = false and - branch = eqtest.polarity() - ) - or - result = enumConstEquality(e, branch, _) and isnull = false + Guards_v3::nullGuard(result, any(GuardValue v | v.asBooleanValue() = branch), e, isnull) } /** + * DEPRECATED: Use `basicNullGuard` instead. + * * Gets an expression that directly tests whether a given expression, `e`, is null or not. * * If `result` evaluates to `branch`, then `e` is guaranteed to be null if `isnull` * is true, and non-null if `isnull` is false. */ -Expr basicOrCustomNullGuard(Expr e, boolean branch, boolean isnull) { +deprecated Expr basicOrCustomNullGuard(Expr e, boolean branch, boolean isnull) { result = basicNullGuard(e, branch, isnull) - or - exists(MethodCall call, Method m, int ix | - call = result and - call.getArgument(ix) = e and - call.getMethod().getSourceDeclaration() = m and - m = customNullGuard(ix, branch, isnull) - ) } /** @@ -226,80 +208,61 @@ Expr basicOrCustomNullGuard(Expr e, boolean branch, boolean isnull) { * is true, and non-null if `isnull` is false. */ Expr directNullGuard(SsaVariable v, boolean branch, boolean isnull) { - result = basicOrCustomNullGuard(sameValue(v, _), branch, isnull) + result = basicNullGuard(sameValue(v, _), branch, isnull) } /** + * DEPRECATED: Use `nullGuardControls`/`nullGuardControlsBranchEdge` instead. + * * Gets a `Guard` that tests (possibly indirectly) whether a given SSA variable is null or not. * * If `result` evaluates to `branch`, then `v` is guaranteed to be null if `isnull` * is true, and non-null if `isnull` is false. */ -Guard nullGuard(SsaVariable v, boolean branch, boolean isnull) { - result = directNullGuard(v, branch, isnull) or - exists(boolean branch0 | implies_v3(result, branch, nullGuard(v, branch0, isnull), branch0)) +deprecated Guard nullGuard(SsaVariable v, boolean branch, boolean isnull) { + result = directNullGuard(v, branch, isnull) } /** - * A return statement in a non-overridable method that on a return value of - * `retval` allows the conclusion that the parameter `p` either is null or - * non-null as specified by `isnull`. + * Holds if there exists a null check on `v`, such that taking the branch edge + * from `bb1` to `bb2` implies that `v` is guaranteed to be null if `isnull` is + * true, and non-null if `isnull` is false. */ -private predicate validReturnInCustomNullGuard( - ReturnStmt ret, Parameter p, boolean retval, boolean isnull -) { - exists(Method m | - ret.getEnclosingCallable() = m and - p.getCallable() = m and - m.getReturnType().(PrimitiveType).hasName("boolean") and - not p.isVarargs() and - p.getType() instanceof RefType and - not m.isOverridable() - ) and - exists(SsaImplicitInit ssa | ssa.isParameterDefinition(p) | - nullGuardedReturn(ret, ssa, isnull) and - (retval = true or retval = false) - or - exists(Expr res | res = ret.getResult() | res = nullGuard(ssa, retval, isnull)) +predicate nullGuardControlsBranchEdge(SsaVariable v, boolean isnull, BasicBlock bb1, BasicBlock bb2) { + exists(GuardValue gv | + Guards_v3::ssaControlsBranchEdge(v, bb1, bb2, gv) and + gv.isNullness(isnull) ) } -private predicate nullGuardedReturn(ReturnStmt ret, SsaImplicitInit ssa, boolean isnull) { - exists(boolean branch | - nullGuard(ssa, branch, isnull).directlyControls(ret.getBasicBlock(), branch) +/** + * Holds if there exists a null check on `v` that controls `bb`, such that in + * `bb` `v` is guaranteed to be null if `isnull` is true, and non-null if + * `isnull` is false. + */ +predicate nullGuardControls(SsaVariable v, boolean isnull, BasicBlock bb) { + exists(GuardValue gv | + Guards_v3::ssaControls(v, bb, gv) and + gv.isNullness(isnull) ) } -pragma[nomagic] -private Method returnStmtGetEnclosingCallable(ReturnStmt ret) { - ret.getEnclosingCallable() = result -} - /** - * Gets a non-overridable method with a boolean return value that performs a null-check - * on the `index`th parameter. A return value equal to `retval` allows us to conclude - * that the argument either is null or non-null as specified by `isnull`. + * Holds if `guard` is a guard expression that suggests that `e` might be null. */ -private Method customNullGuard(int index, boolean retval, boolean isnull) { - exists(Parameter p | - p.getCallable() = result and - p.getPosition() = index and - forex(ReturnStmt ret | - returnStmtGetEnclosingCallable(ret) = result and - exists(Expr res | res = ret.getResult() | - not res.(BooleanLiteral).getBooleanValue() = retval.booleanNot() - ) - | - validReturnInCustomNullGuard(ret, p, retval, isnull) - ) +predicate guardSuggestsExprMaybeNull(Expr guard, Expr e) { + guard.(EqualityTest).hasOperands(e, any(NullLiteral n)) + or + exists(MethodCall call | + call = guard and + call.getAnArgument() = e and + nullCheckMethod(call.getMethod(), _, true) ) } /** - * `guard` is a guard expression that suggests that `v` might be null. - * - * This is equivalent to `guard = basicNullGuard(sameValue(v, _), _, true)`. + * Holds if `guard` is a guard expression that suggests that `v` might be null. */ predicate guardSuggestsVarMaybeNull(Expr guard, SsaVariable v) { - guard = basicNullGuard(sameValue(v, _), _, true) + guardSuggestsExprMaybeNull(guard, sameValue(v, _)) } diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 36ad96c497f0..02f228d17dbe 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -6,6 +6,8 @@ * hold, so results guarded by, for example, `assert x != null;` or * `if (x == null) { assert false; }` are excluded. */ +overlay[local?] +module; /* * Implementation details: @@ -141,9 +143,9 @@ private ControlFlowNode varDereference(SsaVariable v, VarAccess va) { private ControlFlowNode ensureNotNull(SsaVariable v) { result = varDereference(v, _) or - exists(AssertTrueMethod m | result.asCall() = m.getACheck(nullGuard(v, true, false))) + exists(AssertTrueMethod m | result.asCall() = m.getACheck(directNullGuard(v, true, false))) or - exists(AssertFalseMethod m | result.asCall() = m.getACheck(nullGuard(v, false, false))) + exists(AssertFalseMethod m | result.asCall() = m.getACheck(directNullGuard(v, false, false))) or exists(AssertNotNullMethod m | result.asCall() = m.getACheck(v.getAUse())) or @@ -339,7 +341,7 @@ private predicate nullVarStep( not assertFail(mid, _) and bb = mid.getASuccessor() and not impossibleEdge(mid, bb) and - not exists(boolean branch | nullGuard(midssa, branch, false).hasBranchEdge(mid, bb, branch)) and + not nullGuardControlsBranchEdge(midssa, false, mid, bb) and not (leavingFinally(mid, bb, true) and midstoredcompletion = true) and if bb.getFirstNode().asStmt() = any(TryStmt try | | try.getFinally()) then @@ -476,6 +478,11 @@ private ConditionBlock ssaEnumConstEquality(SsaVariable v, boolean polarity, Enu result.getCondition() = enumConstEquality(v.getAUse(), polarity, c) } +private predicate conditionChecksNull(ConditionBlock cond, SsaVariable v, boolean branchIsNull) { + nullGuardControlsBranchEdge(v, true, cond, cond.getTestSuccessor(branchIsNull)) and + nullGuardControlsBranchEdge(v, false, cond, cond.getTestSuccessor(branchIsNull.booleanNot())) +} + /** A pair of correlated conditions for a given NPE candidate. */ private predicate correlatedConditions( SsaSourceVariable npecand, ConditionBlock cond1, ConditionBlock cond2, boolean inverted @@ -491,10 +498,8 @@ private predicate correlatedConditions( ) or exists(SsaVariable v, boolean branch1, boolean branch2 | - cond1.getCondition() = nullGuard(v, branch1, true) and - cond1.getCondition() = nullGuard(v, branch1.booleanNot(), false) and - cond2.getCondition() = nullGuard(v, branch2, true) and - cond2.getCondition() = nullGuard(v, branch2.booleanNot(), false) and + conditionChecksNull(cond1, v, branch1) and + conditionChecksNull(cond2, v, branch2) and inverted = branch1.booleanXor(branch2) ) or @@ -620,7 +625,7 @@ private Expr trackingVarGuard( SsaVariable trackssa, SsaSourceVariable trackvar, TrackVarKind kind, boolean branch, boolean isA ) { exists(Expr init | trackingVar(_, trackssa, trackvar, kind, init) | - result = basicOrCustomNullGuard(trackvar.getAnAccess(), branch, isA) and + result = basicNullGuard(trackvar.getAnAccess(), branch, isA) and kind = TrackVarKindNull() or result = trackvar.getAnAccess() and @@ -831,15 +836,13 @@ predicate alwaysNullDeref(SsaSourceVariable v, VarAccess va) { def.(SsaExplicitUpdate).getDefiningExpr().(VariableAssign).getSource() = alwaysNullExpr() ) or - exists(boolean branch | - nullGuard(ssa, branch, true).directlyControls(bb, branch) and - not clearlyNotNull(ssa) - ) + nullGuardControls(ssa, true, bb) and + not clearlyNotNull(ssa) | // Exclude fields as they might not have an accurate ssa representation. not v.getVariable() instanceof Field and firstVarDereferenceInBlock(bb, ssa, va) and ssa.getSourceVariable() = v and - not exists(boolean branch | nullGuard(ssa, branch, false).directlyControls(bb, branch)) + not nullGuardControls(ssa, false, bb) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll index 64f68b9c075a..f65e15d1c61b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll @@ -8,6 +8,8 @@ * If an inferred bound relies directly on a condition, then this condition is * reported as the reason for the bound. */ +overlay[local?] +module; /* * This library tackles range analysis as a flow problem. Consider e.g.: @@ -66,7 +68,6 @@ import java private import SSA private import RangeUtils -private import semmle.code.java.controlflow.internal.GuardsLogic private import semmle.code.java.security.RandomDataSource private import SignAnalysis private import semmle.code.java.Reflection @@ -79,7 +80,7 @@ module Sem implements Semantic { private import java as J private import SSA as SSA private import RangeUtils as RU - private import semmle.code.java.controlflow.internal.GuardsLogic as GL + private import semmle.code.java.controlflow.Guards as G class Expr = J::Expr; @@ -219,7 +220,7 @@ module Sem implements Semantic { int getBlockId1(BasicBlock bb) { idOf(bb, result) } - class Guard extends GL::Guard_v2 { + class Guard extends G::Guards_v2::Guard { Expr asExpr() { result = this } } diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll b/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll index 444fec8f8659..efd7bcd80889 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll @@ -1,10 +1,12 @@ /** * Provides utility predicates for range analysis. */ +overlay[local?] +module; import java private import SSA -private import semmle.code.java.controlflow.internal.GuardsLogic +private import semmle.code.java.controlflow.Guards private import semmle.code.java.Constants private import semmle.code.java.dataflow.RangeAnalysis private import codeql.rangeanalysis.internal.RangeUtils diff --git a/java/ql/lib/semmle/code/java/dataflow/SSA.qll b/java/ql/lib/semmle/code/java/dataflow/SSA.qll index 680088b7c554..dd902b70e35a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/SSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/SSA.qll @@ -10,6 +10,8 @@ * of the field in case the field is not amenable to a non-trivial SSA * representation. */ +overlay[local?] +module; import java private import internal.SsaImpl diff --git a/java/ql/lib/semmle/code/java/dataflow/SignAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/SignAnalysis.qll index 9cd629f4ef97..568bc8b6d580 100644 --- a/java/ql/lib/semmle/code/java/dataflow/SignAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/SignAnalysis.qll @@ -5,5 +5,7 @@ * The analysis is implemented as an abstract interpretation over the * three-valued domain `{negative, zero, positive}`. */ +overlay[local?] +module; import semmle.code.java.dataflow.internal.rangeanalysis.SignAnalysisCommon diff --git a/java/ql/lib/semmle/code/java/dataflow/StringPrefixes.qll b/java/ql/lib/semmle/code/java/dataflow/StringPrefixes.qll index ed10d8aa4bb8..4b1bd0131bd4 100644 --- a/java/ql/lib/semmle/code/java/dataflow/StringPrefixes.qll +++ b/java/ql/lib/semmle/code/java/dataflow/StringPrefixes.qll @@ -25,6 +25,8 @@ * String.format("%sfoo:%s", notSuffix, suffix4); * ``` */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.TaintTracking diff --git a/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll b/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll index e62850fbc389..159604a95bd6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll @@ -2,6 +2,8 @@ * Provides classes for performing local (intra-procedural) and * global (inter-procedural) taint-tracking analyses. */ +overlay[local?] +module; import semmle.code.java.dataflow.DataFlow import semmle.code.java.dataflow.internal.TaintTrackingUtil::StringBuilderVarModule diff --git a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll index f2fcbc5951d4..8ce9b1b91202 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll @@ -7,6 +7,8 @@ * type has a subtype or if an inferred upper bound passed through at least one * explicit or implicit cast that lost type information. */ +overlay[local?] +module; import java as J private import semmle.code.java.dispatch.VirtualDispatch diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll index 874aca871832..5c0fbb88d664 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll @@ -10,6 +10,8 @@ * This is a restricted version of SSA.qll that only handles `LocalScopeVariable`s * in order to not depend on virtual dispatch. */ +overlay[local?] +module; import java private import codeql.ssa.Ssa as SsaImplCommon @@ -372,5 +374,10 @@ class BaseSsaImplicitInit extends BaseSsaVariable instanceof Impl::WriteDefiniti /** An SSA phi node. */ class BaseSsaPhiNode extends BaseSsaVariable instanceof Impl::PhiNode { /** Gets an input to the phi node defining the SSA variable. */ - BaseSsaVariable getAPhiInput() { phiHasInputFromBlock(this, result, _) } + BaseSsaVariable getAPhiInput() { this.hasInputFromBlock(result, _) } + + /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ + predicate hasInputFromBlock(BaseSsaVariable inp, BasicBlock bb) { + phiHasInputFromBlock(this, inp, bb) + } } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll index e007ecd85ae5..f93139592269 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.Collections import semmle.code.java.Maps diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContentDataFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContentDataFlow.qll index 2c9b12170440..ec14f494dd95 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ContentDataFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContentDataFlow.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java private import DataFlowImplSpecific private import codeql.dataflow.internal.ContentDataFlowImpl diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll index f63df6ad09ec..dc58529ed263 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java private import DataFlowPrivate private import DataFlowUtil @@ -210,6 +213,7 @@ private module DispatchImpl { } /** Holds if arguments at position `apos` match parameters at position `ppos`. */ + overlay[caller?] pragma[inline] predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 689e58daab89..1917c2007fe1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl private import semmle.code.Location diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll index 00f388dfdf3a..d9a6a98b4598 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import DataFlowImplSpecific private import semmle.code.Location private import codeql.dataflow.internal.DataFlowImplCommon diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll index 0272af417ace..164bc9abbbdb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll @@ -2,6 +2,8 @@ * Provides consistency queries for checking invariants in the language-specific * data-flow classes and predicates. */ +overlay[local?] +module; private import java private import DataFlowImplSpecific diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll index 95b2baeab1ce..65034ee08b93 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll @@ -1,6 +1,8 @@ /** * Provides Java-specific definitions for use in the data flow library. */ +overlay[local?] +module; private import semmle.code.Location private import codeql.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll index 7778f6ebc353..674c2380a5f5 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java private import semmle.code.java.dataflow.InstanceAccess private import semmle.code.java.dataflow.ExternalFlow @@ -60,8 +63,6 @@ module SsaFlow { cached private module Cached { - private import semmle.code.java.controlflow.internal.GuardsLogic as GuardsLogic - cached newtype TNode = TExprNode(Expr e) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll index 9e924df12780..164e2d8aa262 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java private import DataFlowUtil private import DataFlowImplCommon diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll index 6000c37c6cdd..ab2f7f89cb46 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -1,6 +1,8 @@ /** * Basic definitions for use in the data flow library. */ +overlay[local?] +module; private import java private import DataFlowPrivate @@ -77,6 +79,7 @@ private module ThisFlow { * Holds if data can flow from `node1` to `node2` in zero or more * local (intra-procedural) steps. */ +overlay[caller?] pragma[inline] predicate localFlow(Node node1, Node node2) { node1 = node2 or localFlowStepPlus(node1, node2) } @@ -86,6 +89,7 @@ private predicate localFlowStepPlus(Node node1, Node node2) = fastTC(localFlowSt * Holds if data can flow from `e1` to `e2` in zero or more * local (intra-procedural) steps. */ +overlay[caller?] pragma[inline] predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index ff931cbc5cee..32b5d289e28c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -1,6 +1,8 @@ /** * This module provides extensible predicates for defining MaD models. */ +overlay[local?] +module; /** * Holds if a source model exists for the given parameters. diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index bbb40785d6b4..a2d25cadd883 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for defining flow summaries. */ +overlay[local?] +module; private import java private import codeql.dataflow.internal.FlowSummaryImpl diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll index cc95a2b5c1ff..9635592476fa 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for exclusions related to MaD models. */ +overlay[local?] +module; import java 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 2a1ea8b0e068..5a6c5ff6339b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java private import codeql.ssa.Ssa as SsaImplCommon private import semmle.code.java.dataflow.SSA @@ -560,9 +563,9 @@ private module Cached { cached // nothing is actually cached module BarrierGuard { private predicate guardChecksAdjTypes( - DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e, boolean branch + DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e, Guards::GuardValue val ) { - guardChecks(g, e, branch) + guardChecks(g, e, val.asBooleanValue()) } private Node getABarrierNodeImpl() { @@ -654,16 +657,18 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu def instanceof SsaUncertainImplicitUpdate } + class GuardValue = Guards::GuardValue; + class Guard = Guards::Guard; - /** Holds if the guard `guard` directly controls block `bb` upon evaluating to `branch`. */ - predicate guardDirectlyControlsBlock(Guard guard, BasicBlock bb, boolean branch) { - guard.directlyControls(bb, branch) + /** Holds if the guard `guard` directly controls block `bb` upon evaluating to `val`. */ + predicate guardDirectlyControlsBlock(Guard guard, BasicBlock bb, GuardValue val) { + guard.directlyValueControls(bb, val) } - /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ - predicate guardControlsBlock(Guard guard, BasicBlock bb, boolean branch) { - guard.controls(bb, branch) + /** Holds if the guard `guard` controls block `bb` upon evaluating to `val`. */ + predicate guardControlsBlock(Guard guard, BasicBlock bb, GuardValue val) { + guard.valueControls(bb, val) } predicate includeWriteDefsInFlowStep() { none() } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll index 0f756200abeb..1ac2c7c60fe8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll @@ -1,6 +1,8 @@ /** * Provides Java-specific definitions for use in the taint tracking library. */ +overlay[local?] +module; private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll index d4890b96f8e8..40e361ed1588 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.Collections @@ -20,6 +23,7 @@ private import semmle.code.java.frameworks.JaxWS * Holds if taint can flow from `src` to `sink` in zero or more * local (intra-procedural) steps. */ +overlay[caller?] pragma[inline] predicate localTaint(DataFlow::Node src, DataFlow::Node sink) { localTaintStep*(src, sink) } @@ -27,6 +31,7 @@ predicate localTaint(DataFlow::Node src, DataFlow::Node sink) { localTaintStep*( * Holds if taint can flow from `src` to `sink` in zero or more * local (intra-procedural) steps. */ +overlay[caller?] pragma[inline] predicate localExprTaint(Expr src, Expr sink) { localTaint(DataFlow::exprNode(src), DataFlow::exprNode(sink)) @@ -69,6 +74,7 @@ module LocalTaintFlow { * (intra-procedural) steps that are restricted to be part of a path between * `source` and `sink`. */ + overlay[caller?] pragma[inline] predicate hasFlow(DataFlow::Node n1, DataFlow::Node n2) { step*(n1, n2) } @@ -77,6 +83,7 @@ module LocalTaintFlow { * (intra-procedural) steps that are restricted to be part of a path between * `source` and `sink`. */ + overlay[caller?] pragma[inline] predicate hasExprFlow(Expr n1, Expr n2) { hasFlow(DataFlow::exprNode(n1), DataFlow::exprNode(n2)) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/BoundSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/BoundSpecific.qll index 0af549f1f7ee..a1c690b7df4c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/BoundSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/BoundSpecific.qll @@ -1,6 +1,8 @@ /** * Provides Java-specific definitions for bounds. */ +overlay[local?] +module; private import java as J private import semmle.code.java.dataflow.SSA as Ssa diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll index b639947793b5..e124b8f71378 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + module Private { private import java as J private import semmle.code.java.dataflow.SSA as Ssa @@ -14,7 +17,7 @@ module Private { class Expr = J::Expr; - class Guard = G::Guard_v2; + class Guard = G::Guards_v2::Guard; class ConstantIntegerExpr = RU::ConstantIntegerExpr; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/Sign.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/Sign.qll index 30cc089f30bb..a8b715648321 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/Sign.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/Sign.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + newtype TSign = TNeg() or TZero() or diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll index 6f0067517f90..8f8d884c9566 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisCommon.qll @@ -5,6 +5,8 @@ * The analysis is implemented as an abstract interpretation over the * three-valued domain `{negative, zero, positive}`. */ +overlay[local?] +module; private import SignAnalysisSpecific::Private private import SsaReadPositionCommon diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index 04e896b26011..8789661af7d2 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + /** * Provides Java-specific definitions for use in sign analysis. */ @@ -12,7 +15,7 @@ module Private { class ConstantIntegerExpr = RU::ConstantIntegerExpr; - class Guard = G::Guard_v2; + class Guard = G::Guards_v2::Guard; class SsaVariable = Ssa::SsaVariable; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll index 08335f6680dd..1e3c4db95bed 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll @@ -1,6 +1,8 @@ /** * Provides classes for representing a position at which an SSA variable is read. */ +overlay[local?] +module; private import SsaReadPositionSpecific import SsaReadPositionSpecific::Public diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll index 9b081150e893..dbd7736acde4 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll @@ -1,6 +1,8 @@ /** * Provides Java-specific definitions for use in the `SsaReadPosition`. */ +overlay[local?] +module; private import semmle.code.java.dataflow.SSA as Ssa private import semmle.code.java.controlflow.BasicBlocks as BB diff --git a/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll b/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll index cab159b18043..140d5e9e2c81 100644 --- a/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll +++ b/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadEnumConstant import semmle.code.java.deadcode.DeadCodeCustomizations diff --git a/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll b/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll index e87671dba714..3a8491b8428e 100644 --- a/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll +++ b/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/deadcode/DeadField.qll b/java/ql/lib/semmle/code/java/deadcode/DeadField.qll index 2dcbb96f3b59..016350f23ec2 100644 --- a/java/ql/lib/semmle/code/java/deadcode/DeadField.qll +++ b/java/ql/lib/semmle/code/java/deadcode/DeadField.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadCode import semmle.code.java.frameworks.javaee.Persistence diff --git a/java/ql/lib/semmle/code/java/deadcode/EntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/EntryPoints.qll index 7c0a2fdc2d37..ec8ad6e2d4ff 100644 --- a/java/ql/lib/semmle/code/java/deadcode/EntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/EntryPoints.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadCode import semmle.code.java.deadcode.frameworks.CamelEntryPoints diff --git a/java/ql/lib/semmle/code/java/deadcode/SpringEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/SpringEntryPoints.qll index f280d9bf8285..7ee7416cecc4 100644 --- a/java/ql/lib/semmle/code/java/deadcode/SpringEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/SpringEntryPoints.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadCode import semmle.code.java.frameworks.spring.Spring diff --git a/java/ql/lib/semmle/code/java/deadcode/StrutsEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/StrutsEntryPoints.qll index 86910a921f8a..a40417debcb5 100644 --- a/java/ql/lib/semmle/code/java/deadcode/StrutsEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/StrutsEntryPoints.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadCode import semmle.code.java.frameworks.struts.StrutsActions diff --git a/java/ql/lib/semmle/code/java/deadcode/TestEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/TestEntryPoints.qll index b8013d2947a8..d8674817b17c 100644 --- a/java/ql/lib/semmle/code/java/deadcode/TestEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/TestEntryPoints.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadCode import semmle.code.java.frameworks.Cucumber diff --git a/java/ql/lib/semmle/code/java/deadcode/WebEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/WebEntryPoints.qll index fc2d5f69df9a..df9ef0a7b7c5 100644 --- a/java/ql/lib/semmle/code/java/deadcode/WebEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/WebEntryPoints.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.deadcode.DeadCode import semmle.code.java.frameworks.gwt.GWT diff --git a/java/ql/lib/semmle/code/java/deadcode/frameworks/CamelEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/frameworks/CamelEntryPoints.qll index a96565c606e4..453d75e179b5 100644 --- a/java/ql/lib/semmle/code/java/deadcode/frameworks/CamelEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/frameworks/CamelEntryPoints.qll @@ -1,6 +1,8 @@ /** * Apache Camel is a messaging framework, which can integrate with Spring. */ +overlay[local?] +module; import java import semmle.code.java.deadcode.DeadCode diff --git a/java/ql/lib/semmle/code/java/deadcode/frameworks/FitNesseEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/frameworks/FitNesseEntryPoints.qll index a829ccef7d27..c817a9b7dac9 100644 --- a/java/ql/lib/semmle/code/java/deadcode/frameworks/FitNesseEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/frameworks/FitNesseEntryPoints.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import default import semmle.code.java.deadcode.DeadCode import external.ExternalArtifact diff --git a/java/ql/lib/semmle/code/java/deadcode/frameworks/GigaSpacesXAPEntryPoints.qll b/java/ql/lib/semmle/code/java/deadcode/frameworks/GigaSpacesXAPEntryPoints.qll index 39cb18db80a7..3e231e23fc31 100644 --- a/java/ql/lib/semmle/code/java/deadcode/frameworks/GigaSpacesXAPEntryPoints.qll +++ b/java/ql/lib/semmle/code/java/deadcode/frameworks/GigaSpacesXAPEntryPoints.qll @@ -1,6 +1,8 @@ /** * GigaSpaces XAP (eXtreme Application Platform) is a distributed in-memory "datagrid". */ +overlay[local?] +module; import java import semmle.code.java.deadcode.DeadCode diff --git a/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll b/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll index bd293eed6b3a..a9988e920c62 100644 --- a/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll +++ b/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll @@ -5,6 +5,8 @@ * data flow check for lambdas, anonymous classes, and other sufficiently * private classes where all object instantiations are accounted for. */ +overlay[local?] +module; import java private import VirtualDispatch diff --git a/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll b/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll index 293ba894fdfb..12fe1cba5e99 100644 --- a/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll +++ b/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll @@ -6,6 +6,8 @@ * The set of dispatch targets for `Object.toString()` calls are reduced based * on possible data flow from objects of more specific types to the qualifier. */ +overlay[local?] +module; import java private import VirtualDispatch diff --git a/java/ql/lib/semmle/code/java/dispatch/VirtualDispatch.qll b/java/ql/lib/semmle/code/java/dispatch/VirtualDispatch.qll index 78bf1ad0bdc1..877a62fb9455 100644 --- a/java/ql/lib/semmle/code/java/dispatch/VirtualDispatch.qll +++ b/java/ql/lib/semmle/code/java/dispatch/VirtualDispatch.qll @@ -2,6 +2,8 @@ * Provides predicates for reasoning about runtime call targets through virtual * dispatch. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.TypeFlow diff --git a/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll b/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll index f7840f197853..e76c252662a3 100644 --- a/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll +++ b/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for reasoning about calls that may invoke one * of their arguments. */ +overlay[local?] +module; import java import VirtualDispatch diff --git a/java/ql/lib/semmle/code/java/dispatch/internal/Unification.qll b/java/ql/lib/semmle/code/java/dispatch/internal/Unification.qll index 6c92f7298d92..cd585de58e4e 100644 --- a/java/ql/lib/semmle/code/java/dispatch/internal/Unification.qll +++ b/java/ql/lib/semmle/code/java/dispatch/internal/Unification.qll @@ -1,6 +1,8 @@ /** * Provides a module to check whether two `ParameterizedType`s are unifiable. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/environment/SystemProperty.qll b/java/ql/lib/semmle/code/java/environment/SystemProperty.qll index bee91d7c6b7f..add93ee56c39 100644 --- a/java/ql/lib/semmle/code/java/environment/SystemProperty.qll +++ b/java/ql/lib/semmle/code/java/environment/SystemProperty.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with java system properties. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/ApacheHttp.qll b/java/ql/lib/semmle/code/java/frameworks/ApacheHttp.qll index 61f6aa9a34ea..73078c1da83c 100644 --- a/java/ql/lib/semmle/code/java/frameworks/ApacheHttp.qll +++ b/java/ql/lib/semmle/code/java/frameworks/ApacheHttp.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates related to `org.apache.http.*` and `org.apache.hc.*`. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSteps diff --git a/java/ql/lib/semmle/code/java/frameworks/ApacheLdap.qll b/java/ql/lib/semmle/code/java/frameworks/ApacheLdap.qll index 8bcba2f044eb..6d76caf36d55 100644 --- a/java/ql/lib/semmle/code/java/frameworks/ApacheLdap.qll +++ b/java/ql/lib/semmle/code/java/frameworks/ApacheLdap.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Apache LDAP API. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Assertions.qll b/java/ql/lib/semmle/code/java/frameworks/Assertions.qll index e1601c854e4e..9849be5f3603 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Assertions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Assertions.qll @@ -5,6 +5,8 @@ * `org.junit.jupiter.api.Assertions`, `com.google.common.base.Preconditions`, * and `java.util.Objects`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Camel.qll b/java/ql/lib/semmle/code/java/frameworks/Camel.qll index 381ee3cb28e2..137855b5fa1a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Camel.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Camel.qll @@ -1,6 +1,8 @@ /** * Apache Camel messaging framework. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.spring.SpringCamel diff --git a/java/ql/lib/semmle/code/java/frameworks/Castor.qll b/java/ql/lib/semmle/code/java/frameworks/Castor.qll index f1e1b8257252..5be64575bc2a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Castor.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Castor.qll @@ -1,6 +1,10 @@ /** + * DEPRECATED: Now modeled using data extensions instead. + * * Provides classes and predicates for working with the Castor framework. */ +overlay[local?] +deprecated module; import java @@ -11,7 +15,9 @@ class CastorUnmarshaller extends RefType { CastorUnmarshaller() { this.hasQualifiedName("org.exolab.castor.xml", "Unmarshaller") } } -/** A method with the name `unmarshal` declared in `org.exolab.castor.xml.Unmarshaller`. */ +/** + * A method with the name `unmarshal` declared in `org.exolab.castor.xml.Unmarshaller`. + */ class CastorUnmarshalMethod extends Method { CastorUnmarshalMethod() { this.getDeclaringType() instanceof CastorUnmarshaller and diff --git a/java/ql/lib/semmle/code/java/frameworks/Cucumber.qll b/java/ql/lib/semmle/code/java/frameworks/Cucumber.qll index 9bcfb24bae5a..15e71a25f890 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Cucumber.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Cucumber.qll @@ -1,6 +1,8 @@ /** * Cucumber is an open-source project for writing executable acceptance tests in human-readable `.feature` files. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/FastJson.qll b/java/ql/lib/semmle/code/java/frameworks/FastJson.qll index c9f7d9e8b89d..305f795017a6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/FastJson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/FastJson.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the FastJson framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Flexjson.qll b/java/ql/lib/semmle/code/java/frameworks/Flexjson.qll index 55a8e2624386..2e5cb2ce9593 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Flexjson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Flexjson.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with the Flexjson framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Guice.qll b/java/ql/lib/semmle/code/java/frameworks/Guice.qll index 8dfb63983982..bf6a3d5467cc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Guice.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Guice.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Guice framework. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.FlowSteps diff --git a/java/ql/lib/semmle/code/java/frameworks/HessianBurlap.qll b/java/ql/lib/semmle/code/java/frameworks/HessianBurlap.qll index e3c5269e5b20..25449b351abd 100644 --- a/java/ql/lib/semmle/code/java/frameworks/HessianBurlap.qll +++ b/java/ql/lib/semmle/code/java/frameworks/HessianBurlap.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the HessianBurlap framework. */ +overlay[local?] +module; import java @@ -15,10 +17,12 @@ class UnsafeHessianInput extends RefType { } /** + * DEPRECATED: Now modeled using data extensions instead. + * * A AbstractHessianInput or Hessian2StreamingInput subclass readObject method. * This is either `AbstractHessianInput.readObject` or `Hessian2StreamingInput.readObject`. */ -class UnsafeHessianInputReadObjectMethod extends Method { +deprecated class UnsafeHessianInputReadObjectMethod extends Method { UnsafeHessianInputReadObjectMethod() { this.getDeclaringType().getAnAncestor() instanceof UnsafeHessianInput and this.getName() = "readObject" @@ -32,8 +36,12 @@ class BurlapInput extends RefType { BurlapInput() { this.hasQualifiedName("com.caucho.burlap.io", "BurlapInput") } } -/** A method with the name `readObject` declared in `com.caucho.burlap.io.BurlapInput`. */ -class BurlapInputReadObjectMethod extends Method { +/** + * DEPRECATED: Now modeled using data extensions instead. + * + * A method with the name `readObject` declared in `com.caucho.burlap.io.BurlapInput`. + */ +deprecated class BurlapInputReadObjectMethod extends Method { BurlapInputReadObjectMethod() { this.getDeclaringType() instanceof BurlapInput and this.getName() = "readObject" diff --git a/java/ql/lib/semmle/code/java/frameworks/Hibernate.qll b/java/ql/lib/semmle/code/java/frameworks/Hibernate.qll index 28b281014547..4e5050b412ca 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Hibernate.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Hibernate.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Hibernate framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/InputStream.qll b/java/ql/lib/semmle/code/java/frameworks/InputStream.qll index 8f37ecc24ea0..f6097e8c4492 100644 --- a/java/ql/lib/semmle/code/java/frameworks/InputStream.qll +++ b/java/ql/lib/semmle/code/java/frameworks/InputStream.qll @@ -1,4 +1,6 @@ /** Provides definitions related to `java.io.InputStream`. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/IoJsonWebToken.qll b/java/ql/lib/semmle/code/java/frameworks/IoJsonWebToken.qll index 3da90bb7e67a..b4573013295b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/IoJsonWebToken.qll +++ b/java/ql/lib/semmle/code/java/frameworks/IoJsonWebToken.qll @@ -1,4 +1,6 @@ /** Predicates and classes to reason about the `io.jsonwebtoken` library. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/JAXB.qll b/java/ql/lib/semmle/code/java/frameworks/JAXB.qll index e25add17ccb1..96075bbccf3c 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JAXB.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JAXB.qll @@ -1,4 +1,6 @@ /** Definitions related to JAXB. */ +overlay[local?] +module; import semmle.code.java.Type diff --git a/java/ql/lib/semmle/code/java/frameworks/JUnitAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/JUnitAnnotations.qll index d74fe683f063..ad58cd486e16 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JUnitAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JUnitAnnotations.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with annotations from the `JUnit` framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/JYaml.qll b/java/ql/lib/semmle/code/java/frameworks/JYaml.qll index 9d77b86f6c1d..4f39c8cd23fc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JYaml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JYaml.qll @@ -1,6 +1,10 @@ /** + * DEPRECATED: Now modeled using data extensions instead. + * * Provides classes and predicates for working with the JYaml framework. */ +overlay[local?] +deprecated module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Jabsorb.qll b/java/ql/lib/semmle/code/java/frameworks/Jabsorb.qll index eede97b411cb..1997fd74f645 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Jabsorb.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Jabsorb.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with the Jabsorb JSON-RPC ORB framework. */ +overlay[local?] +module; import java @@ -17,8 +19,12 @@ class JabsorbUnmarshallMethod extends Method { } } -/** The deserialization method `fromJSON`. */ -class JabsorbFromJsonMethod extends Method { +/** + * DEPRECATED: Now modeled using data extensions instead. + * + * The deserialization method `fromJSON`. + */ +deprecated class JabsorbFromJsonMethod extends Method { JabsorbFromJsonMethod() { this.getDeclaringType().getAnAncestor() instanceof JabsorbSerializer and this.getName() = "fromJSON" diff --git a/java/ql/lib/semmle/code/java/frameworks/Jackson.qll b/java/ql/lib/semmle/code/java/frameworks/Jackson.qll index 605370ec594f..5c1d02759231 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Jackson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Jackson.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Jackson serialization framework. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll index 0f5da6c39eac..22f33d346df0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with annotations in the `javax` package. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll b/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll index a0f891fd36ea..62289f737c02 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll @@ -2,6 +2,8 @@ * Definitions relating to JAX-WS (Java/Jakarta API for XML Web Services) and JAX-RS * (Java/Jakarta API for RESTful Web Services). */ +overlay[local?] +module; import java private import semmle.code.java.frameworks.Networking diff --git a/java/ql/lib/semmle/code/java/frameworks/Jdbc.qll b/java/ql/lib/semmle/code/java/frameworks/Jdbc.qll index 37be7dcf09a7..c7172527d1fe 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Jdbc.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Jdbc.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Java JDBC API. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Jms.qll b/java/ql/lib/semmle/code/java/frameworks/Jms.qll index 653582100bdb..3cc76771a776 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Jms.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Jms.qll @@ -1,4 +1,6 @@ /** Provides definitions for working with the JMS library. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Jndi.qll b/java/ql/lib/semmle/code/java/frameworks/Jndi.qll index 267cdcd59dc8..0d7d481dc1d0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Jndi.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Jndi.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Java JNDI API. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/JoddJson.qll b/java/ql/lib/semmle/code/java/frameworks/JoddJson.qll index d92b80ca32b5..3f28b2e8c7e4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JoddJson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JoddJson.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Jodd JSON framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/JsonIo.qll b/java/ql/lib/semmle/code/java/frameworks/JsonIo.qll index 85f3a5ef06bb..433277a64728 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JsonIo.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JsonIo.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Json-io framework. */ +overlay[local?] +module; import java import semmle.code.java.Maps diff --git a/java/ql/lib/semmle/code/java/frameworks/Kryo.qll b/java/ql/lib/semmle/code/java/frameworks/Kryo.qll index 7dde62c4ba4b..77a423a8a9ef 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Kryo.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Kryo.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Kryo serialization framework. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/Lombok.qll b/java/ql/lib/semmle/code/java/frameworks/Lombok.qll index 39ee7c5393d5..84a890c498f8 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Lombok.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Lombok.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for identifying use of the Lombok framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Mail.qll b/java/ql/lib/semmle/code/java/frameworks/Mail.qll index eeb9665dc2ed..c61e5ae34f99 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Mail.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Mail.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to work with email */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Mockito.qll b/java/ql/lib/semmle/code/java/frameworks/Mockito.qll index 0f5971a68ace..1a8d987a38e4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Mockito.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Mockito.qll @@ -3,6 +3,8 @@ * * QL classes are provided for detecting uses of Mockito annotations on fields. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll b/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll index c7fc09a33b4d..e3f89186821b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll +++ b/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the MyBatis framework. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/Netty.qll b/java/ql/lib/semmle/code/java/frameworks/Netty.qll index 9a72c7f64043..caaa429d69ec 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Netty.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Netty.qll @@ -1,4 +1,6 @@ /** Provides definitions related to the Netty framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Networking.qll b/java/ql/lib/semmle/code/java/frameworks/Networking.qll index 1139d0d00621..6eeb5aa90241 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Networking.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Networking.qll @@ -1,6 +1,8 @@ /** * Definitions related to `java.net.*`. */ +overlay[local?] +module; import semmle.code.java.Type private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/OpenSaml.qll b/java/ql/lib/semmle/code/java/frameworks/OpenSaml.qll index c8b9a320ec1b..5327db3af865 100644 --- a/java/ql/lib/semmle/code/java/frameworks/OpenSaml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/OpenSaml.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the OpenSAML libraries. */ +overlay[local?] +module; import java private import semmle.code.java.security.InsecureRandomnessQuery diff --git a/java/ql/lib/semmle/code/java/frameworks/Properties.qll b/java/ql/lib/semmle/code/java/frameworks/Properties.qll index 15e7b6878858..50a13c236744 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Properties.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Properties.qll @@ -1,4 +1,6 @@ /** Definitions related to `java.util.Properties`. */ +overlay[local?] +module; import semmle.code.java.Type private import semmle.code.java.dataflow.FlowSteps diff --git a/java/ql/lib/semmle/code/java/frameworks/Protobuf.qll b/java/ql/lib/semmle/code/java/frameworks/Protobuf.qll index 14224bc148de..bbaa56f46119 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Protobuf.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Protobuf.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Protobuf framework. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.FlowSteps diff --git a/java/ql/lib/semmle/code/java/frameworks/Regex.qll b/java/ql/lib/semmle/code/java/frameworks/Regex.qll index 780dec48b923..f63f46c38780 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Regex.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Regex.qll @@ -1,4 +1,6 @@ /** Definitions related to `java.util.regex`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Rmi.qll b/java/ql/lib/semmle/code/java/frameworks/Rmi.qll index 922f90bccb62..03ea238982d6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Rmi.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Rmi.qll @@ -1,4 +1,6 @@ /** Remote Method Invocation. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/Selenium.qll b/java/ql/lib/semmle/code/java/frameworks/Selenium.qll index 0ea61ae0ecfe..6a85d5b09159 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Selenium.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Selenium.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for identifying classes reflectively constructed by Selenium using the * `PageFactory.initElements(...)` method. */ +overlay[local?] +module; import default import semmle.code.java.Reflection diff --git a/java/ql/lib/semmle/code/java/frameworks/Servlets.qll b/java/ql/lib/semmle/code/java/frameworks/Servlets.qll index 80e80c019b0a..7d7beb74fc30 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Servlets.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Servlets.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Java Servlet API. */ +overlay[local?] +module; import semmle.code.java.Type diff --git a/java/ql/lib/semmle/code/java/frameworks/SnakeYaml.qll b/java/ql/lib/semmle/code/java/frameworks/SnakeYaml.qll index 3bde32912180..0edbad2196e1 100644 --- a/java/ql/lib/semmle/code/java/frameworks/SnakeYaml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/SnakeYaml.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the SnakeYaml serialization framework. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/SpringJdbc.qll b/java/ql/lib/semmle/code/java/frameworks/SpringJdbc.qll index 82eedca44e88..192e579a4f6b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/SpringJdbc.qll +++ b/java/ql/lib/semmle/code/java/frameworks/SpringJdbc.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Spring JDBC framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/SpringLdap.qll b/java/ql/lib/semmle/code/java/frameworks/SpringLdap.qll index da40caf37445..79c3739dde4f 100644 --- a/java/ql/lib/semmle/code/java/frameworks/SpringLdap.qll +++ b/java/ql/lib/semmle/code/java/frameworks/SpringLdap.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Spring LDAP API. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/SpringWeb.qll b/java/ql/lib/semmle/code/java/frameworks/SpringWeb.qll index a011af98cd5c..9bb856e22604 100644 --- a/java/ql/lib/semmle/code/java/frameworks/SpringWeb.qll +++ b/java/ql/lib/semmle/code/java/frameworks/SpringWeb.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import spring.SpringController import spring.SpringWeb diff --git a/java/ql/lib/semmle/code/java/frameworks/Stream.qll b/java/ql/lib/semmle/code/java/frameworks/Stream.qll index a449f8bd99a6..8927355d6377 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Stream.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Stream.qll @@ -1,4 +1,6 @@ /** Definitions related to `java.util.stream`. */ +overlay[local?] +module; private import semmle.code.java.dataflow.FlowSummary diff --git a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll index 826eed8dffcc..c813c0383eb6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll +++ b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll @@ -1,4 +1,6 @@ /** Definitions related to `java.lang.ThreadLocal`. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/Thrift.qll b/java/ql/lib/semmle/code/java/frameworks/Thrift.qll index 4e07a2730dc2..5272745b4e97 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Thrift.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Thrift.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Apache Thrift framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/UnboundId.qll b/java/ql/lib/semmle/code/java/frameworks/UnboundId.qll index bfb7a6604246..6359fbf2afbc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/UnboundId.qll +++ b/java/ql/lib/semmle/code/java/frameworks/UnboundId.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the UnboundID API. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/XStream.qll b/java/ql/lib/semmle/code/java/frameworks/XStream.qll index 0e62459e13d8..aca6117023ee 100644 --- a/java/ql/lib/semmle/code/java/frameworks/XStream.qll +++ b/java/ql/lib/semmle/code/java/frameworks/XStream.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the XStream XML serialization framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/YamlBeans.qll b/java/ql/lib/semmle/code/java/frameworks/YamlBeans.qll index b5db59926be4..55ff862d3410 100644 --- a/java/ql/lib/semmle/code/java/frameworks/YamlBeans.qll +++ b/java/ql/lib/semmle/code/java/frameworks/YamlBeans.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the YamlBeans framework. */ +overlay[local?] +module; import java @@ -11,8 +13,12 @@ class YamlBeansReader extends RefType { YamlBeansReader() { this.hasQualifiedName("com.esotericsoftware.yamlbeans", "YamlReader") } } -/** A method with the name `read` declared in `com.esotericsoftware.yamlbeans.YamlReader`. */ -class YamlBeansReaderReadMethod extends Method { +/** + * DEPRECATED: Now modeled using data extensions instead. + * + * A method with the name `read` declared in `com.esotericsoftware.yamlbeans.YamlReader`. + */ +deprecated class YamlBeansReaderReadMethod extends Method { YamlBeansReaderReadMethod() { this.getDeclaringType() instanceof YamlBeansReader and this.getName() = "read" diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Android.qll b/java/ql/lib/semmle/code/java/frameworks/android/Android.qll index befcc036205e..85df4366ec27 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Android.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Android.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Android components. */ +overlay[local?] +module; import java private import semmle.code.xml.AndroidManifest diff --git a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll index 226a80709456..1aba64a4c7e0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about `AsyncTask`s in Android. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll b/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll index 0e6399cba1f0..9123600d4e48 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with components generated by the Android's Jetpack Compose compiler. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll b/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll index 7bcd4baa3e50..f344377b9cd8 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ContentProviders.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Content Providers. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll index 7eb088a9514f..c07ddea6dbab 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/ExternalStorage.qll @@ -1,4 +1,6 @@ /** Provides definitions for working with uses of Android external storage */ +overlay[local?] +module; import java private import semmle.code.java.security.FileReadWrite diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Fragment.qll b/java/ql/lib/semmle/code/java/frameworks/android/Fragment.qll index debdd69e1944..64c92955ee7b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Fragment.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Fragment.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to track Android fragments. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll b/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll index 6e321b0ad900..c3b58873d1f0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java private import semmle.code.java.frameworks.android.Android private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Layout.qll b/java/ql/lib/semmle/code/java/frameworks/android/Layout.qll index ee430b62d577..0f6f5d845b86 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Layout.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Layout.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with Android layouts and UI elements. */ +overlay[local?] +module; import java import semmle.code.xml.AndroidManifest diff --git a/java/ql/lib/semmle/code/java/frameworks/android/OnActivityResultSource.qll b/java/ql/lib/semmle/code/java/frameworks/android/OnActivityResultSource.qll index 5253526f0fd1..5a1a9bf8c7a0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/OnActivityResultSource.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/OnActivityResultSource.qll @@ -1,4 +1,6 @@ /** Provides a remote flow source for Android's `Activity.onActivityResult` method. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/android/PendingIntent.qll b/java/ql/lib/semmle/code/java/frameworks/android/PendingIntent.qll index 1c17d3c9b8df..720be6dce03a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/PendingIntent.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/PendingIntent.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to the class `PendingIntent`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll b/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll index 2898b6aee54f..f46f4e0e51d6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/SQLite.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with SQLite databases. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSteps diff --git a/java/ql/lib/semmle/code/java/frameworks/android/SharedPreferences.qll b/java/ql/lib/semmle/code/java/frameworks/android/SharedPreferences.qll index a3298fd70d87..a11857e9f1f4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/SharedPreferences.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/SharedPreferences.qll @@ -1,4 +1,6 @@ /** Provides classes related to `android.content.SharedPreferences`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Slice.qll b/java/ql/lib/semmle/code/java/frameworks/android/Slice.qll index 96ccb2a4401e..60811d9bc2d6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Slice.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Slice.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to `androidx.slice`. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/android/WebView.qll b/java/ql/lib/semmle/code/java/frameworks/android/WebView.qll index 78eeae4bdf22..8fa804f52797 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/WebView.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/WebView.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** The class `android.webkit.WebView`. */ diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll b/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll index 9a2729f5b794..7b277a797f90 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Widget.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with Android widgets. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.ExternalFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/android/XmlParsing.qll b/java/ql/lib/semmle/code/java/frameworks/android/XmlParsing.qll index 4e6c39f25757..2235bc5eaecc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/XmlParsing.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/XmlParsing.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java class XmlPullParser extends Interface { diff --git a/java/ql/lib/semmle/code/java/frameworks/apache/Collections.qll b/java/ql/lib/semmle/code/java/frameworks/apache/Collections.qll index 24030e35045d..97d51fc2cbc4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/apache/Collections.qll +++ b/java/ql/lib/semmle/code/java/frameworks/apache/Collections.qll @@ -1,4 +1,6 @@ /** Definitions related to the Apache Commons Collections library. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSteps diff --git a/java/ql/lib/semmle/code/java/frameworks/apache/CommonsXml.qll b/java/ql/lib/semmle/code/java/frameworks/apache/CommonsXml.qll index 5e72b26e009b..163bd773dad0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/apache/CommonsXml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/apache/CommonsXml.qll @@ -1,4 +1,6 @@ /** Provides XML definitions related to the `org.apache.commons` package. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.RangeUtils diff --git a/java/ql/lib/semmle/code/java/frameworks/apache/Lang.qll b/java/ql/lib/semmle/code/java/frameworks/apache/Lang.qll index 9ea2400b8718..a58500eb20df 100644 --- a/java/ql/lib/semmle/code/java/frameworks/apache/Lang.qll +++ b/java/ql/lib/semmle/code/java/frameworks/apache/Lang.qll @@ -1,4 +1,6 @@ /** Definitions related to the Apache Commons Lang library. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSteps @@ -14,10 +16,12 @@ class TypeApacheRandomStringUtils extends Class { } /** + * DEPRECATED: Now modeled using data extensions instead. + * * The method `deserialize` in either `org.apache.commons.lang.SerializationUtils` * or `org.apache.commons.lang3.SerializationUtils`. */ -class MethodApacheSerializationUtilsDeserialize extends Method { +deprecated class MethodApacheSerializationUtilsDeserialize extends Method { MethodApacheSerializationUtilsDeserialize() { this.getDeclaringType() .hasQualifiedName(["org.apache.commons.lang", "org.apache.commons.lang3"], diff --git a/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaAnnotations.qll index 1d42bd4c94b4..b1637038b99a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaAnnotations.qll @@ -14,6 +14,8 @@ * * This creates a route to the `ConsumeMdb` class for messages sent to "activemq:queue:sayhello". */ +overlay[local?] +module; import java import semmle.code.java.Reflection diff --git a/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaDSL.qll b/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaDSL.qll index ed09baf8ead2..df8903266592 100644 --- a/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaDSL.qll +++ b/java/ql/lib/semmle/code/java/frameworks/camel/CamelJavaDSL.qll @@ -13,6 +13,8 @@ * * This creates a route to the `TargetBean` class for messages sent to "direct.start". */ +overlay[local?] +module; import java import semmle.code.java.Reflection diff --git a/java/ql/lib/semmle/code/java/frameworks/gigaspaces/GigaSpaces.qll b/java/ql/lib/semmle/code/java/frameworks/gigaspaces/GigaSpaces.qll index 2b99e0fcff0b..a03ed1c5266e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/gigaspaces/GigaSpaces.qll +++ b/java/ql/lib/semmle/code/java/frameworks/gigaspaces/GigaSpaces.qll @@ -1,6 +1,8 @@ /** * GigaSpaces XAP (eXtreme Application Platform) is a distributed in-memory "datagrid". */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/google/GoogleHttpClientApi.qll b/java/ql/lib/semmle/code/java/frameworks/google/GoogleHttpClientApi.qll index db8bc2574c13..5e0304ca7b2a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/google/GoogleHttpClientApi.qll +++ b/java/ql/lib/semmle/code/java/frameworks/google/GoogleHttpClientApi.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.Serializability import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/google/Gson.qll b/java/ql/lib/semmle/code/java/frameworks/google/Gson.qll index 9dc38a529415..7185c87b09f2 100644 --- a/java/ql/lib/semmle/code/java/frameworks/google/Gson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/google/Gson.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with the Gson framework. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/google/GsonSerializability.qll b/java/ql/lib/semmle/code/java/frameworks/google/GsonSerializability.qll index 6abaee8ff720..bd8973b0adb8 100644 --- a/java/ql/lib/semmle/code/java/frameworks/google/GsonSerializability.qll +++ b/java/ql/lib/semmle/code/java/frameworks/google/GsonSerializability.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with Java Serialization in the context of * the `com.google.gson` JSON processing framework. */ +overlay[local?] +module; import java private import semmle.code.java.Serializability diff --git a/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll b/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll index 94dd356f62d7..aebdb22f42ac 100644 --- a/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll +++ b/java/ql/lib/semmle/code/java/frameworks/guava/Collections.qll @@ -1,4 +1,6 @@ /** Definitions of flow steps through the collection types in the Guava framework */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/guava/Guava.qll b/java/ql/lib/semmle/code/java/frameworks/guava/Guava.qll index 5dd8aaa18eeb..545aae763d55 100644 --- a/java/ql/lib/semmle/code/java/frameworks/guava/Guava.qll +++ b/java/ql/lib/semmle/code/java/frameworks/guava/Guava.qll @@ -1,6 +1,8 @@ /** * Definitions for tracking taint steps through the Guava framework. */ +overlay[local?] +module; import java import Collections diff --git a/java/ql/lib/semmle/code/java/frameworks/gwt/GWT.qll b/java/ql/lib/semmle/code/java/frameworks/gwt/GWT.qll index 6780a9261b9b..a58e49aa76f0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/gwt/GWT.qll +++ b/java/ql/lib/semmle/code/java/frameworks/gwt/GWT.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with the GWT framework. */ +overlay[local?] +module; import java import GwtXml diff --git a/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinder.qll b/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinder.qll index 8532cc81bb30..d692740f40e6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinder.qll +++ b/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinder.qll @@ -4,6 +4,8 @@ * The UiBinder framework allows the specification of user interfaces in XML template files. These * can then be interacted with programmatically by writing an associated owner class. */ +overlay[local?] +module; import java import GwtUiBinderXml diff --git a/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinderXml.qll b/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinderXml.qll index 0fb8ed3cd70d..fef34f1bc44d 100644 --- a/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinderXml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/gwt/GwtUiBinderXml.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for identifying GWT UiBinder framework XML templates. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/gwt/GwtXml.qll b/java/ql/lib/semmle/code/java/frameworks/gwt/GwtXml.qll index e143d06cccbc..b36824543005 100644 --- a/java/ql/lib/semmle/code/java/frameworks/gwt/GwtXml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/gwt/GwtXml.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with `*.gwt.xml` files. */ +overlay[local?] +module; import semmle.code.xml.XML diff --git a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll index ae316cf649e5..44752f94576b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to the Hudson framework. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSources diff --git a/java/ql/lib/semmle/code/java/frameworks/j2objc/J2ObjC.qll b/java/ql/lib/semmle/code/java/frameworks/j2objc/J2ObjC.qll index 2e9b04d6a8ce..abb24b909e97 100644 --- a/java/ql/lib/semmle/code/java/frameworks/j2objc/J2ObjC.qll +++ b/java/ql/lib/semmle/code/java/frameworks/j2objc/J2ObjC.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with OCNI (Objective-C Native Interface). */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/jOOQ.qll b/java/ql/lib/semmle/code/java/frameworks/jOOQ.qll index 2aa78e9425da..e5bad7435d58 100644 --- a/java/ql/lib/semmle/code/java/frameworks/jOOQ.qll +++ b/java/ql/lib/semmle/code/java/frameworks/jOOQ.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the jOOQ framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/jackson/JacksonSerializability.qll b/java/ql/lib/semmle/code/java/frameworks/jackson/JacksonSerializability.qll index 8e1077d8bc01..aa7da753f434 100644 --- a/java/ql/lib/semmle/code/java/frameworks/jackson/JacksonSerializability.qll +++ b/java/ql/lib/semmle/code/java/frameworks/jackson/JacksonSerializability.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with Java Serialization in the context of * the `com.fasterxml.jackson` JSON processing framework. */ +overlay[local?] +module; import java import semmle.code.java.Serializability diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/JavaServerFaces.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/JavaServerFaces.qll index b4ae1b1c19cb..2f749962e94d 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/JavaServerFaces.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/JavaServerFaces.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with Java Server Faces. */ +overlay[local?] +module; import default import semmle.code.java.frameworks.javaee.jsf.JSFAnnotations diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/Persistence.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/Persistence.qll index b38cba889e00..b5031d7dff08 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/Persistence.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/Persistence.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the JavaEE Persistence API. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/PersistenceXML.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/PersistenceXML.qll index 7564dafa37e0..e6ada894fc6f 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/PersistenceXML.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/PersistenceXML.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with JavaEE * persistence configuration XML files (`persistence.xml`). */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/Xml.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/Xml.qll index c1a0b08d8e7c..222b778ba588 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/Xml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/Xml.qll @@ -1,4 +1,6 @@ /** Provides definitions related to the `javax.xml` package. */ +overlay[local?] +module; import java private import semmle.code.java.security.XmlParsers diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll index d165370d1391..2b003b3c94e7 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with Enterprise Java Beans. */ +overlay[local?] +module; import java import EJBJarXML diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBJarXML.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBJarXML.qll index f44d77d89bd3..dc465ddc4c62 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBJarXML.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBJarXML.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with * EJB deployment descriptor XML files (`ejb-jar.xml`). */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll index f5a52490768c..2f5a88ba5c81 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for modeling * EJB Programming Restrictions (see EJB 3.0 specification, section 21.1.2). */ +overlay[local?] +module; import java import EJB diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFAnnotations.qll index 1db82875ad94..3338fa840ab0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFAnnotations.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with Java Server Faces annotations. */ +overlay[local?] +module; import default diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFFacesContextXML.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFFacesContextXML.qll index 13ed765638d9..060398f648c1 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFFacesContextXML.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFFacesContextXML.qll @@ -1,6 +1,8 @@ /** * Provides classes for JSF "Application Configuration Resources File", usually called `faces-config.xml`. */ +overlay[local?] +module; import default diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFRenderer.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFRenderer.qll index 546d3be69833..df646e8a9a2c 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFRenderer.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/jsf/JSFRenderer.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with JavaServer Faces renderer. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/javase/Beans.qll b/java/ql/lib/semmle/code/java/frameworks/javase/Beans.qll index dbdaf6960f31..1aa39c638286 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javase/Beans.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javase/Beans.qll @@ -1,4 +1,6 @@ /** Provides definitions related to the `java.beans` package. */ +overlay[local?] +module; import java private import semmle.code.java.security.XmlParsers diff --git a/java/ql/lib/semmle/code/java/frameworks/javase/Http.qll b/java/ql/lib/semmle/code/java/frameworks/javase/Http.qll index 5f03c0b190fd..addc4a576bdc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javase/Http.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javase/Http.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates related to `java.net.http.*`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/javase/WebSocket.qll b/java/ql/lib/semmle/code/java/frameworks/javase/WebSocket.qll index 17d3d4579d2a..2ea26630619b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javase/WebSocket.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javase/WebSocket.qll @@ -1,6 +1,8 @@ /** * Provides classes for identifying methods called by the Java SE WebSocket package. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/kotlin/IO.qll b/java/ql/lib/semmle/code/java/frameworks/kotlin/IO.qll index 38af34bc6900..1c8181206f54 100644 --- a/java/ql/lib/semmle/code/java/frameworks/kotlin/IO.qll +++ b/java/ql/lib/semmle/code/java/frameworks/kotlin/IO.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to `kotlin.io`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/kotlin/Kotlin.qll b/java/ql/lib/semmle/code/java/frameworks/kotlin/Kotlin.qll index 206996af321d..3f4d0e04c691 100644 --- a/java/ql/lib/semmle/code/java/frameworks/kotlin/Kotlin.qll +++ b/java/ql/lib/semmle/code/java/frameworks/kotlin/Kotlin.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to `kotlin`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/kotlin/Serialization.qll b/java/ql/lib/semmle/code/java/frameworks/kotlin/Serialization.qll index c0269266a59e..1dc22be1a8b9 100644 --- a/java/ql/lib/semmle/code/java/frameworks/kotlin/Serialization.qll +++ b/java/ql/lib/semmle/code/java/frameworks/kotlin/Serialization.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the `kotlinx.serialization` plugin. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/kotlin/Text.qll b/java/ql/lib/semmle/code/java/frameworks/kotlin/Text.qll index 8521b2847848..1b576251f873 100644 --- a/java/ql/lib/semmle/code/java/frameworks/kotlin/Text.qll +++ b/java/ql/lib/semmle/code/java/frameworks/kotlin/Text.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to `kotlin.text`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/mdht/MdhtXml.qll b/java/ql/lib/semmle/code/java/frameworks/mdht/MdhtXml.qll index b762fbcc8639..dc5ea6809948 100644 --- a/java/ql/lib/semmle/code/java/frameworks/mdht/MdhtXml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/mdht/MdhtXml.qll @@ -1,4 +1,6 @@ /** Provides definitions related to XML parsing in Model-Driven Health Tools. */ +overlay[local?] +module; import java private import semmle.code.java.security.XmlParsers diff --git a/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll b/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll index 19cabda7073f..fe95cd0d39d3 100644 --- a/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll +++ b/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll @@ -1,4 +1,6 @@ /** Classes and predicates for reasoning about the `owasp.easpi` package. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/play/Play.qll b/java/ql/lib/semmle/code/java/frameworks/play/Play.qll index 7b99b23704e3..bbf6385fc0ad 100644 --- a/java/ql/lib/semmle/code/java/frameworks/play/Play.qll +++ b/java/ql/lib/semmle/code/java/frameworks/play/Play.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with the Play framework. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/ratpack/RatpackExec.qll b/java/ql/lib/semmle/code/java/frameworks/ratpack/RatpackExec.qll index 7efa72c3164a..f8259e95a2ee 100644 --- a/java/ql/lib/semmle/code/java/frameworks/ratpack/RatpackExec.qll +++ b/java/ql/lib/semmle/code/java/frameworks/ratpack/RatpackExec.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates related to `ratpack.exec.*`. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/rundeck/RundeckXml.qll b/java/ql/lib/semmle/code/java/frameworks/rundeck/RundeckXml.qll index 0f271e073e6e..78e7fbf30a9b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/rundeck/RundeckXml.qll +++ b/java/ql/lib/semmle/code/java/frameworks/rundeck/RundeckXml.qll @@ -1,4 +1,6 @@ /** Provides definitions related to XML parsing in Rundeck. */ +overlay[local?] +module; import java private import semmle.code.java.security.XmlParsers diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/Spring.qll b/java/ql/lib/semmle/code/java/frameworks/spring/Spring.qll index 2b09288610e4..1c9c67838d48 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/Spring.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/Spring.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringAbstractRef import semmle.code.java.frameworks.spring.SpringAlias diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAbstractRef.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAbstractRef.qll index 4dd4b0ab9478..23ea64bd898e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAbstractRef.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAbstractRef.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAlias.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAlias.qll index cbc4f025dacd..aab0bba6be2b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAlias.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAlias.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringArgType.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringArgType.qll index bddf5f01f9ea..37a162cc8901 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringArgType.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringArgType.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAttribute.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAttribute.qll index a20eef4d0d75..d99a28c56181 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAttribute.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAttribute.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAutowire.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAutowire.qll index 966db95afce6..e758811b368e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringAutowire.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringAutowire.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for identifying methods and constructors called by Spring injection. */ +overlay[local?] +module; import java import SpringComponentScan diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBean.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBean.qll index a53cbf67090f..ec06e9f28905 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBean.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBean.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBeanRefType diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanFile.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanFile.qll index d96f264b91f5..810182d8f1f0 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanFile.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanFile.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanRefType.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanRefType.qll index 4d85a56ab2bf..490fe3e05610 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanRefType.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBeanRefType.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBoot.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBoot.qll index d77e4549e4e7..155afd41ba5e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringBoot.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringBoot.qll @@ -2,6 +2,8 @@ * Provides classes for working with Spring classes and interfaces from * `org.springframework.boot.*`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringCamel.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringCamel.qll index 6fec620ccd55..28108865af41 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringCamel.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringCamel.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for identifying Spring integration for the Apache Camel messaging framework. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringComponentScan.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringComponentScan.qll index d285e9d0e6a5..b5b3e9834c05 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringComponentScan.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringComponentScan.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringAutowire import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringConstructorArg.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringConstructorArg.qll index e434e53ca3dd..3f0cc6a25af2 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringConstructorArg.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringConstructorArg.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll index c93993336d95..ee00433da129 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.Maps import SpringWeb diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringDescription.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringDescription.qll index 34cf13a95716..5bcc2e896eb1 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringDescription.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringDescription.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringEntry.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringEntry.qll index e2ce38ea44e0..a568a6ee8c77 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringEntry.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringEntry.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringExpression.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringExpression.qll index 49ec6e1fd8a5..aa02643d698e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringExpression.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringExpression.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with the Spring Expression Language (SpEL). */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringFlex.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringFlex.qll index af0afa91f4c3..a7b1b655693b 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringFlex.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringFlex.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for the Spring BlazeDS integration. BlazeDS allows Java applications to integrate with * Apache Flex applications, which are ultimately deployed as Adobe Flash applications. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll index e12e2b2643a0..5f9271c01490 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll @@ -2,6 +2,8 @@ * Provides classes for working with Spring classes and interfaces from * `org.springframework.http`. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringIdRef.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringIdRef.qll index 0b8b3e3a87b4..6dc2b313841a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringIdRef.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringIdRef.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringAbstractRef diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringImport.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringImport.qll index 688a14da32e2..1081b157d224 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringImport.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringImport.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringInitializingBean.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringInitializingBean.qll index 216333da38ae..2766df0b8bc9 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringInitializingBean.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringInitializingBean.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringKey.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringKey.qll index 5f07b2277067..b48834dc738e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringKey.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringKey.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringList.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringList.qll index 455fb956eb19..7e9b3423f888 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringList.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringList.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringListOrSet diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringListOrSet.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringListOrSet.qll index 521795d8b221..075cf7b7d8b4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringListOrSet.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringListOrSet.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringMergable diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringLookupMethod.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringLookupMethod.qll index 4b17c23612a6..7371991cdaa6 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringLookupMethod.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringLookupMethod.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringMap.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringMap.qll index 19b2cfffdac7..a5766d7c7111 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringMap.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringMap.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringMergable diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringMergable.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringMergable.qll index baef7d3b91af..94402918b8ee 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringMergable.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringMergable.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringMeta.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringMeta.qll index 640305b313a2..d4a524c3502f 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringMeta.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringMeta.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringNull.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringNull.qll index c3f2c00a2b72..f08746dae5a3 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringNull.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringNull.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProfile.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProfile.qll index 48a2b3679901..2d8a4577e567 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProfile.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProfile.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringComponentScan diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProp.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProp.qll index 771370a3e7a1..96da7fa271c5 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProp.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProp.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProperty.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProperty.qll index a83eeed13fab..aec85de58d4e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProperty.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProperty.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProps.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProps.qll index 59a094f67612..00e7e8e52536 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringProps.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringProps.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringMergable diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringQualifier.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringQualifier.qll index eb57b37efe0a..ad927f48cbbc 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringQualifier.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringQualifier.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringRef.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringRef.qll index 89d58ff47fcd..8b799d632c23 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringRef.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringRef.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringAbstractRef diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringReplacedMethod.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringReplacedMethod.qll index 47e8d182898a..cf32c940f864 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringReplacedMethod.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringReplacedMethod.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringSecurity.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringSecurity.qll index 835b679d50a6..694dae05773a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringSecurity.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringSecurity.qll @@ -2,6 +2,8 @@ * Provides classes for working with Spring classes and interfaces from * `org.springframework.security.*`. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringSet.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringSet.qll index 21aca5ff54eb..4f75d08401b7 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringSet.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringSet.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringListOrSet diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringValue.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringValue.qll index 55854d60f9c7..68cdfa7efcc2 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringValue.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringValue.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringXMLElement diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWeb.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWeb.qll index 88db87e7e21e..362d4b323648 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWeb.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWeb.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with Spring web requests. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index e84108394704..0580415a3448 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -1,6 +1,8 @@ /** * Provides classes for working with Spring web clients. */ +overlay[local?] +module; import java import SpringHttp diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringXMLElement.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringXMLElement.qll index 312cd659b398..21bea51cd223 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringXMLElement.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringXMLElement.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.spring.SpringBeanFile import semmle.code.java.frameworks.spring.SpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBean.qll b/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBean.qll index ffbc5c9e5ecc..7624d4665719 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBean.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBean.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import semmle.code.java.frameworks.spring.SpringBean import semmle.code.java.frameworks.spring.SpringBeanFile import semmle.code.java.frameworks.spring.SpringEntry diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBeanFile.qll b/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBeanFile.qll index 999e34d1cea3..45d432848838 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBeanFile.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/metrics/MetricSpringBeanFile.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import semmle.code.java.frameworks.spring.SpringBean import semmle.code.java.frameworks.spring.SpringBeanFile import semmle.code.java.frameworks.spring.metrics.MetricSpringBean diff --git a/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll b/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll index 599a08094dd4..28ca95b55413 100644 --- a/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll +++ b/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to the Stapler framework. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/Struts2Serializability.qll b/java/ql/lib/semmle/code/java/frameworks/struts/Struts2Serializability.qll index cb8b876be7ad..f9981a30393e 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/Struts2Serializability.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/Struts2Serializability.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for working with objects bound from Http requests in the context of * the Struts2 web framework. */ +overlay[local?] +module; import java private import semmle.code.java.Serializability diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll index 4200e83d4db2..641fb0c6e6f4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.struts.StrutsConventions import semmle.code.java.frameworks.struts.StrutsXML @@ -130,7 +133,7 @@ class Struts2PrepareMethod extends Method { */ class Struts2ActionSupportClass extends Class { Struts2ActionSupportClass() { - this.getAStrictAncestor().hasQualifiedName("com.opensymphony.xwork2", "ActionSupport") + this.getASourceSupertype+().hasQualifiedName("com.opensymphony.xwork2", "ActionSupport") } /** diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll index d97415354b35..823951b1d3c5 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsAnnotations.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll index 17ff35371945..3e2fd5c0b974 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java import semmle.code.java.frameworks.struts.StrutsAnnotations import semmle.code.java.frameworks.struts.StrutsXML diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsXML.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsXML.qll index 273034978d17..33131a1641da 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsXML.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsXML.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/metrics/MetricCallable.qll b/java/ql/lib/semmle/code/java/metrics/MetricCallable.qll index d3dca781e54b..e6fa5d9e5c26 100644 --- a/java/ql/lib/semmle/code/java/metrics/MetricCallable.qll +++ b/java/ql/lib/semmle/code/java/metrics/MetricCallable.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for computing metrics on Java methods and constructors. */ +overlay[local?] +module; import semmle.code.java.Member diff --git a/java/ql/lib/semmle/code/java/metrics/MetricElement.qll b/java/ql/lib/semmle/code/java/metrics/MetricElement.qll index 086389e143cd..f9d57df7f800 100644 --- a/java/ql/lib/semmle/code/java/metrics/MetricElement.qll +++ b/java/ql/lib/semmle/code/java/metrics/MetricElement.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for computing metrics on Java elements. */ +overlay[local?] +module; import semmle.code.java.Element import semmle.code.java.Type diff --git a/java/ql/lib/semmle/code/java/metrics/MetricField.qll b/java/ql/lib/semmle/code/java/metrics/MetricField.qll index ef8e692ba5f8..32e3b263c282 100644 --- a/java/ql/lib/semmle/code/java/metrics/MetricField.qll +++ b/java/ql/lib/semmle/code/java/metrics/MetricField.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for computing metrics on Java fields. */ +overlay[local?] +module; import semmle.code.java.Member diff --git a/java/ql/lib/semmle/code/java/metrics/MetricPackage.qll b/java/ql/lib/semmle/code/java/metrics/MetricPackage.qll index eafdd57dd8ac..fa7556316429 100644 --- a/java/ql/lib/semmle/code/java/metrics/MetricPackage.qll +++ b/java/ql/lib/semmle/code/java/metrics/MetricPackage.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for computing metrics on Java packages. */ +overlay[local?] +module; import semmle.code.java.Package import MetricElement diff --git a/java/ql/lib/semmle/code/java/metrics/MetricRefType.qll b/java/ql/lib/semmle/code/java/metrics/MetricRefType.qll index 17271394b2e6..1652a1200708 100644 --- a/java/ql/lib/semmle/code/java/metrics/MetricRefType.qll +++ b/java/ql/lib/semmle/code/java/metrics/MetricRefType.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for computing metrics on Java classes and interfaces. */ +overlay[local?] +module; import semmle.code.java.Type import MetricElement diff --git a/java/ql/lib/semmle/code/java/metrics/MetricStmt.qll b/java/ql/lib/semmle/code/java/metrics/MetricStmt.qll index b818c30edf6f..bc2cf5ae1072 100644 --- a/java/ql/lib/semmle/code/java/metrics/MetricStmt.qll +++ b/java/ql/lib/semmle/code/java/metrics/MetricStmt.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for computing metrics on Java statements. */ +overlay[local?] +module; import semmle.code.java.Statement diff --git a/java/ql/lib/semmle/code/java/os/OSCheck.qll b/java/ql/lib/semmle/code/java/os/OSCheck.qll index e3b3e56f72ce..97ad27c83dfb 100644 --- a/java/ql/lib/semmle/code/java/os/OSCheck.qll +++ b/java/ql/lib/semmle/code/java/os/OSCheck.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for guards that check for the current OS. */ +overlay[local?] +module; import java import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll b/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll index 763b96f5a02d..6a934bdd5785 100644 --- a/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll +++ b/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll @@ -1,6 +1,8 @@ /** * Defines configurations and steps for handling regexes */ +overlay[local?] +module; import java import semmle.code.java.dataflow.ExternalFlow diff --git a/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll b/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll index a07d7c741faa..0fe4b47ec485 100644 --- a/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll +++ b/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll @@ -1,4 +1,6 @@ /** Provides a class hierarchy corresponding to a parse tree of regular expressions. */ +overlay[local?] +module; private import semmle.code.java.regex.regex as RE // importing under a namescape to avoid naming conflict for `Top`. private import codeql.regex.nfa.NfaUtils as NfaUtils diff --git a/java/ql/lib/semmle/code/java/regex/regex.qll b/java/ql/lib/semmle/code/java/regex/regex.qll index f0336c2d0235..13f398699663 100644 --- a/java/ql/lib/semmle/code/java/regex/regex.qll +++ b/java/ql/lib/semmle/code/java/regex/regex.qll @@ -1,6 +1,8 @@ /** * Definitions for parsing regular expressions. */ +overlay[local?] +module; import java private import RegexFlowConfigs diff --git a/java/ql/lib/semmle/code/java/security/AndroidIntentRedirection.qll b/java/ql/lib/semmle/code/java/security/AndroidIntentRedirection.qll index 56c45611b142..08a86092afbb 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidIntentRedirection.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidIntentRedirection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about Android Intent redirect vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/security/AndroidLocalAuthQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidLocalAuthQuery.qll index 4a31dc2568d1..aaa7dbc562b8 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidLocalAuthQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidLocalAuthQuery.qll @@ -1,4 +1,6 @@ /** Definitions for the insecure local authentication query. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/AndroidSensitiveCommunicationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidSensitiveCommunicationQuery.qll index 2ba13c06feb8..9aa60e391dc4 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidSensitiveCommunicationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidSensitiveCommunicationQuery.qll @@ -149,6 +149,8 @@ module SensitiveCommunicationConfig implements DataFlow::ConfigSig { predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c) { isSink(node) and exists(c) } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll index 8d53766e0080..728eca0eaf10 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -1,4 +1,6 @@ /** Definitions for the web view certificate validation query */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallation.qll b/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallation.qll index 0402aca69872..8600ecda7ad1 100644 --- a/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallation.qll +++ b/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallation.qll @@ -1,4 +1,6 @@ /** Provide classes to reason about Android Intents that can install APKs. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.android.Intent diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll b/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll index 785dce3da7ed..e0d6ff305c30 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll @@ -1,4 +1,6 @@ /** Provides guards and predicates to reason about arithmetic. */ +overlay[local?] +module; import semmle.code.java.arithmetic.Overflow import semmle.code.java.controlflow.Guards @@ -7,7 +9,6 @@ private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.RangeAnalysis private import semmle.code.java.dataflow.RangeUtils private import semmle.code.java.dataflow.SignAnalysis -private import semmle.code.java.controlflow.internal.GuardsLogic /** * Holds if the type of `exp` is narrower than or equal to `numType`, diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll b/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll index 51d6c284e1ca..fbb8509f48f9 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll @@ -13,6 +13,14 @@ module ArithmeticOverflowConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node n) { overflowBarrier(n) } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { + any() // merged with ArithmeticUnderflow in ArithmeticTainted.ql + } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(ArithExpr exp | result = exp.getLocation() | overflowSink(exp, sink.asExpr())) + } } /** @@ -29,6 +37,14 @@ module ArithmeticUnderflowConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node n) { underflowBarrier(n) } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { + any() // merged with ArithmeticOverflow in ArithmeticTainted.ql + } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(ArithExpr exp | result = exp.getLocation() | underflowSink(exp, sink.asExpr())) + } } /** diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll b/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll index a5fa0d3ee4b1..6b7b337ad656 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll @@ -19,6 +19,14 @@ module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } predicate isBarrier(DataFlow::Node n) { overflowBarrier(n) } + + predicate observeDiffInformedIncrementalMode() { + any() // merged with ArithmeticUncontrolledUnderflow in ArithmeticUncontrolled.ql + } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(ArithExpr exp | result = exp.getLocation() | overflowSink(exp, sink.asExpr())) + } } /** Taint-tracking flow to reason about overflow from arithmetic with uncontrolled values. */ @@ -32,6 +40,14 @@ module ArithmeticUncontrolledUnderflowConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } predicate isBarrier(DataFlow::Node n) { underflowBarrier(n) } + + predicate observeDiffInformedIncrementalMode() { + any() // merged with ArithmeticUncontrolledOverflow in ArithmeticUncontrolled.ql + } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(ArithExpr exp | result = exp.getLocation() | underflowSink(exp, sink.asExpr())) + } } /** Taint-tracking flow to reason about underflow from arithmetic with uncontrolled values. */ diff --git a/java/ql/lib/semmle/code/java/security/CleartextStorageCookieQuery.qll b/java/ql/lib/semmle/code/java/security/CleartextStorageCookieQuery.qll index 1f262ad57d61..1c99821386da 100644 --- a/java/ql/lib/semmle/code/java/security/CleartextStorageCookieQuery.qll +++ b/java/ql/lib/semmle/code/java/security/CleartextStorageCookieQuery.qll @@ -7,7 +7,17 @@ private import semmle.code.java.dataflow.FlowSinks private import semmle.code.java.dataflow.FlowSources private class CookieCleartextStorageSink extends CleartextStorageSink { - CookieCleartextStorageSink() { this.asExpr() = cookieInput(_) } + Cookie cookie; + + CookieCleartextStorageSink() { this.asExpr() = cookieInput(cookie) } + + override Location getASelectedLocation() { + result = this.getLocation() + or + result = cookie.getLocation() + or + result = cookie.getAStore().getLocation() + } } /** The instantiation of a cookie, which can act as storage. */ diff --git a/java/ql/lib/semmle/code/java/security/CleartextStorageQuery.qll b/java/ql/lib/semmle/code/java/security/CleartextStorageQuery.qll index a607fd8c8d2b..21d82bef657e 100644 --- a/java/ql/lib/semmle/code/java/security/CleartextStorageQuery.qll +++ b/java/ql/lib/semmle/code/java/security/CleartextStorageQuery.qll @@ -5,7 +5,14 @@ private import semmle.code.java.dataflow.TaintTracking private import semmle.code.java.security.SensitiveActions /** A sink representing persistent storage that saves data in clear text. */ -abstract class CleartextStorageSink extends DataFlow::Node { } +abstract class CleartextStorageSink extends DataFlow::Node { + /** + * Gets a location that will be selected in the diff-informed query where + * this sink is found. If this has no results for any sink, that's taken to + * mean the query is not diff-informed. + */ + Location getASelectedLocation() { none() } +} /** A sanitizer for flows tracking sensitive data being stored in persistent storage. */ abstract class CleartextStorageSanitizer extends DataFlow::Node { } @@ -46,6 +53,17 @@ private module SensitiveSourceFlowConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { any(CleartextStorageAdditionalTaintStep c).step(n1, n2) } + + predicate observeDiffInformedIncrementalMode() { + // This configuration is used by several queries. A query can opt in to + // diff-informed mode by implementing `getASelectedLocation` on its sinks, + // indicating that it has considered which sinks are selected. + exists(CleartextStorageSink sink | exists(sink.getASelectedLocation())) + } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(CleartextStorageSink).getASelectedLocation() + } } private module SensitiveSourceFlow = TaintTracking::Global; diff --git a/java/ql/lib/semmle/code/java/security/CommandArguments.qll b/java/ql/lib/semmle/code/java/security/CommandArguments.qll index eb4f589ac7f7..f161a83d17b0 100644 --- a/java/ql/lib/semmle/code/java/security/CommandArguments.qll +++ b/java/ql/lib/semmle/code/java/security/CommandArguments.qll @@ -1,6 +1,8 @@ /** * Definitions for reasoning about lists and arrays that are to be used as arguments to an external process. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.SSA diff --git a/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll b/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll index 03ba8d461979..314570369377 100644 --- a/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll @@ -47,6 +47,15 @@ module ConditionalBypassFlowConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { endsWithStep(node1, node2) } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(MethodCall m, Expr e | result = [m, e].getLocation() | + conditionControlsMethod(m, e) and + sink.asExpr() = e + ) + } } /** diff --git a/java/ql/lib/semmle/code/java/security/ControlledString.qll b/java/ql/lib/semmle/code/java/security/ControlledString.qll index c760bf14e855..fa201b2e8b6f 100644 --- a/java/ql/lib/semmle/code/java/security/ControlledString.qll +++ b/java/ql/lib/semmle/code/java/security/ControlledString.qll @@ -3,6 +3,8 @@ * There is positive evidence that they are fully controlled by * the program source code. */ +overlay[local?] +module; import semmle.code.java.Expr import semmle.code.java.security.Validation diff --git a/java/ql/lib/semmle/code/java/security/Cookies.qll b/java/ql/lib/semmle/code/java/security/Cookies.qll index 202f18921ca6..b4db1b8fe467 100644 --- a/java/ql/lib/semmle/code/java/security/Cookies.qll +++ b/java/ql/lib/semmle/code/java/security/Cookies.qll @@ -1,4 +1,6 @@ /** Provides definitions to reason about HTTP cookies. */ +overlay[local?] +module; import java private import semmle.code.java.frameworks.Netty diff --git a/java/ql/lib/semmle/code/java/security/CsrfUnprotectedRequestTypeQuery.qll b/java/ql/lib/semmle/code/java/security/CsrfUnprotectedRequestTypeQuery.qll index 42d6db246c0e..80d100d3d9e1 100644 --- a/java/ql/lib/semmle/code/java/security/CsrfUnprotectedRequestTypeQuery.qll +++ b/java/ql/lib/semmle/code/java/security/CsrfUnprotectedRequestTypeQuery.qll @@ -237,12 +237,35 @@ private predicate sink(CallPathNode sinkMethodCall) { ) } +private predicate fwdFlow(CallPathNode n) { + source(n) + or + exists(CallPathNode mid | fwdFlow(mid) and CallGraph::edges(mid, n)) +} + +private predicate revFlow(CallPathNode n) { + fwdFlow(n) and + ( + sink(n) + or + exists(CallPathNode mid | revFlow(mid) and CallGraph::edges(n, mid)) + ) +} + +/** + * Holds if `pred` has a successor node `succ` and this edge is in an + * `unprotectedStateChange` path. + */ +predicate relevantEdge(CallPathNode pred, CallPathNode succ) { + CallGraph::edges(pred, succ) and revFlow(pred) and revFlow(succ) +} + /** * Holds if `sourceMethod` is an unprotected request handler that reaches a * `sinkMethodCall` that updates a database. */ private predicate unprotectedDatabaseUpdate(CallPathNode sourceMethod, CallPathNode sinkMethodCall) = - doublyBoundedFastTC(CallGraph::edges/2, source/1, sink/1)(sourceMethod, sinkMethodCall) + doublyBoundedFastTC(relevantEdge/2, source/1, sink/1)(sourceMethod, sinkMethodCall) /** * Holds if `sourceMethod` is an unprotected request handler that appears to diff --git a/java/ql/lib/semmle/code/java/security/Encryption.qll b/java/ql/lib/semmle/code/java/security/Encryption.qll index ee8c1f5fbedc..b948a94962c7 100644 --- a/java/ql/lib/semmle/code/java/security/Encryption.qll +++ b/java/ql/lib/semmle/code/java/security/Encryption.qll @@ -1,6 +1,8 @@ /** * Provides predicates and classes relating to encryption in Java. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/security/ExternalAPIs.qll b/java/ql/lib/semmle/code/java/security/ExternalAPIs.qll index 360493e26356..df941be97448 100644 --- a/java/ql/lib/semmle/code/java/security/ExternalAPIs.qll +++ b/java/ql/lib/semmle/code/java/security/ExternalAPIs.qll @@ -2,6 +2,8 @@ * Definitions for reasoning about untrusted data used in APIs defined outside the * database. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.FlowSources @@ -99,6 +101,10 @@ module UntrustedDataToExternalApiConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof ActiveThreatModelSource } predicate isSink(DataFlow::Node sink) { sink instanceof ExternalApiDataNode } + + predicate observeDiffInformedIncrementalMode() { + any() // Simple use in UntrustedDataToExternalAPI.ql; also used through ExternalApiUsedWithUntrustedData in ExternalAPIsUsedWithUntrustedData.ql + } } /** diff --git a/java/ql/lib/semmle/code/java/security/ExternalProcess.qll b/java/ql/lib/semmle/code/java/security/ExternalProcess.qll index 58f7457e9e30..600a45e509a0 100644 --- a/java/ql/lib/semmle/code/java/security/ExternalProcess.qll +++ b/java/ql/lib/semmle/code/java/security/ExternalProcess.qll @@ -1,4 +1,6 @@ /** Definitions related to external processes. */ +overlay[local?] +module; import semmle.code.java.Member private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/FileReadWrite.qll b/java/ql/lib/semmle/code/java/security/FileReadWrite.qll index 34d7ca1f2014..ae1b3f025a1a 100644 --- a/java/ql/lib/semmle/code/java/security/FileReadWrite.qll +++ b/java/ql/lib/semmle/code/java/security/FileReadWrite.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/security/FileWritable.qll b/java/ql/lib/semmle/code/java/security/FileWritable.qll index bb5d952802d1..d1833bf64d4d 100644 --- a/java/ql/lib/semmle/code/java/security/FileWritable.qll +++ b/java/ql/lib/semmle/code/java/security/FileWritable.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/java/security/FragmentInjection.qll b/java/ql/lib/semmle/code/java/security/FragmentInjection.qll index a22fad4d85e7..8cd5e32a5ecd 100644 --- a/java/ql/lib/semmle/code/java/security/FragmentInjection.qll +++ b/java/ql/lib/semmle/code/java/security/FragmentInjection.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about Android Fragment injection vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.TaintTracking diff --git a/java/ql/lib/semmle/code/java/security/GroovyInjection.qll b/java/ql/lib/semmle/code/java/security/GroovyInjection.qll index ea688a26f6ec..45d664897775 100644 --- a/java/ql/lib/semmle/code/java/security/GroovyInjection.qll +++ b/java/ql/lib/semmle/code/java/security/GroovyInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about Groovy code injection attacks. */ +overlay[local?] +module; private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.ExternalFlow diff --git a/java/ql/lib/semmle/code/java/security/HardcodedCredentials.qll b/java/ql/lib/semmle/code/java/security/HardcodedCredentials.qll index c8a12c72dadd..7ba95108432c 100644 --- a/java/ql/lib/semmle/code/java/security/HardcodedCredentials.qll +++ b/java/ql/lib/semmle/code/java/security/HardcodedCredentials.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates relating to hardcoded credentials. */ +overlay[local?] +module; import java import SensitiveApi @@ -66,7 +68,7 @@ class CredentialsApiSink extends CredentialsSink { */ class PasswordVariable extends Variable { PasswordVariable() { - this.getName().regexpMatch("(?i).*pass(w|wd|wrd|word|code|phrase|key|_)(chars|value)?(?!.*(size|length|question|path|prompt)).*") or + this.getName().regexpMatch("(?i)(encrypted|old|new)?pass(w|wd|wrd|word|code|phrase|key|_)(chars|value)?(?!.*(size|length|question|path|prompt)).*") or this.getName().regexpMatch("(?i)pwd") } } diff --git a/java/ql/lib/semmle/code/java/security/HardcodedCredentialsComparison.qll b/java/ql/lib/semmle/code/java/security/HardcodedCredentialsComparison.qll index d15d9d05d301..c6ad9458ba91 100644 --- a/java/ql/lib/semmle/code/java/security/HardcodedCredentialsComparison.qll +++ b/java/ql/lib/semmle/code/java/security/HardcodedCredentialsComparison.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates to detect comparing a parameter to a hard-coded credential. */ +overlay[local?] +module; import java import HardcodedCredentials diff --git a/java/ql/lib/semmle/code/java/security/HardcodedPasswordField.qll b/java/ql/lib/semmle/code/java/security/HardcodedPasswordField.qll index 995428b8e94f..03b3f7500809 100644 --- a/java/ql/lib/semmle/code/java/security/HardcodedPasswordField.qll +++ b/java/ql/lib/semmle/code/java/security/HardcodedPasswordField.qll @@ -1,6 +1,8 @@ /** * Provides a predicate identifying assignments of harcoded values to password fields. */ +overlay[local?] +module; import java import HardcodedCredentials diff --git a/java/ql/lib/semmle/code/java/security/HttpsUrls.qll b/java/ql/lib/semmle/code/java/security/HttpsUrls.qll index b56b8ba9c9f5..071f95b49902 100644 --- a/java/ql/lib/semmle/code/java/security/HttpsUrls.qll +++ b/java/ql/lib/semmle/code/java/security/HttpsUrls.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about plaintext HTTP vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/ImplicitPendingIntents.qll b/java/ql/lib/semmle/code/java/security/ImplicitPendingIntents.qll index 650527e88e45..94951c10c532 100644 --- a/java/ql/lib/semmle/code/java/security/ImplicitPendingIntents.qll +++ b/java/ql/lib/semmle/code/java/security/ImplicitPendingIntents.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for working with implicit `PendingIntent`s. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.ExternalFlow diff --git a/java/ql/lib/semmle/code/java/security/ImplicitPendingIntentsQuery.qll b/java/ql/lib/semmle/code/java/security/ImplicitPendingIntentsQuery.qll index a57f643d8176..f66309c97bec 100644 --- a/java/ql/lib/semmle/code/java/security/ImplicitPendingIntentsQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImplicitPendingIntentsQuery.qll @@ -1,4 +1,6 @@ /** Provides taint tracking configurations to be used in queries related to implicit `PendingIntent`s. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.TaintTracking diff --git a/java/ql/lib/semmle/code/java/security/ImplicitlyExportedAndroidComponent.qll b/java/ql/lib/semmle/code/java/security/ImplicitlyExportedAndroidComponent.qll index 4aa21c4a260b..11cfcb1c6e57 100644 --- a/java/ql/lib/semmle/code/java/security/ImplicitlyExportedAndroidComponent.qll +++ b/java/ql/lib/semmle/code/java/security/ImplicitlyExportedAndroidComponent.qll @@ -1,4 +1,6 @@ /** Provides a class to identify implicitly exported Android components. */ +overlay[local?] +module; private import semmle.code.xml.AndroidManifest diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll index a6f10913da58..e952971c389f 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll @@ -17,6 +17,15 @@ module BoundedFlowSourceConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { any(CheckableArrayAccess caa).canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), _) } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(ArrayCreationExpr arrayCreation, CheckableArrayAccess arrayAccess | + result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() and + arrayAccess.canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), arrayCreation) + ) + } } /** diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll index 2af9396a119e..913d50b3159d 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll @@ -14,6 +14,15 @@ module ImproperValidationOfArrayConstructionConfig implements DataFlow::ConfigSi predicate isSink(DataFlow::Node sink) { any(CheckableArrayAccess caa).canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), _) } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(ArrayCreationExpr arrayCreation, CheckableArrayAccess arrayAccess | + result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() and + arrayAccess.canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), arrayCreation) + ) + } } /** diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexCodeSpecifiedQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexCodeSpecifiedQuery.qll index 2ae9eb2c696f..01a924de78e4 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexCodeSpecifiedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexCodeSpecifiedQuery.qll @@ -14,6 +14,8 @@ module BoundedFlowSourceConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { exists(CheckableArrayAccess arrayAccess | arrayAccess.canThrowOutOfBounds(sink.asExpr())) } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexQuery.qll index 6d11962f2f45..7cb3d1724830 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayIndexQuery.qll @@ -18,6 +18,8 @@ module ImproperValidationOfArrayIndexConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { node.getType() instanceof BooleanType } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/InformationLeak.qll b/java/ql/lib/semmle/code/java/security/InformationLeak.qll index 8fe7d2151650..ba7a7a52a707 100644 --- a/java/ql/lib/semmle/code/java/security/InformationLeak.qll +++ b/java/ql/lib/semmle/code/java/security/InformationLeak.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about System Information Leak vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/InsecureBasicAuth.qll b/java/ql/lib/semmle/code/java/security/InsecureBasicAuth.qll index b21492406adf..9d26077396bf 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureBasicAuth.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureBasicAuth.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about Insecure Basic Authentication vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/InsecureCookieQuery.qll b/java/ql/lib/semmle/code/java/security/InsecureCookieQuery.qll index e8c3052acdfb..eda07658866c 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureCookieQuery.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureCookieQuery.qll @@ -35,6 +35,10 @@ module SecureCookieConfig implements DataFlow::ConfigSig { sink.asExpr() = any(MethodCall add | add.getMethod() instanceof ResponseAddCookieMethod).getArgument(0) } + + predicate observeDiffInformedIncrementalMode() { + none() // only used negatively in InsecureCookie.ql + } } /** Data flow to reason about the failure to use secure cookies. */ diff --git a/java/ql/lib/semmle/code/java/security/InsecureLdapAuth.qll b/java/ql/lib/semmle/code/java/security/InsecureLdapAuth.qll index 52d58afc9e76..117484b0241e 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureLdapAuth.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureLdapAuth.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about insecure LDAP authentication. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/InsecureLdapAuthQuery.qll b/java/ql/lib/semmle/code/java/security/InsecureLdapAuthQuery.qll index 94d80b9b37b0..a4cbf474dded 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureLdapAuthQuery.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureLdapAuthQuery.qll @@ -40,6 +40,10 @@ private module BasicAuthConfig implements DataFlow::ConfigSig { } predicate isSink(DataFlow::Node sink) { sink instanceof InsecureLdapUrlSink } + + predicate observeDiffInformedIncrementalMode() { + none() // used as secondary flow to InsecureLdapUrlFlow in InsecureLdapAuth.ql + } } module BasicAuthFlow = DataFlow::Global; @@ -56,6 +60,10 @@ private module RequiresSslConfig implements DataFlow::ConfigSig { } predicate isSink(DataFlow::Node sink) { sink instanceof InsecureLdapUrlSink } + + predicate observeDiffInformedIncrementalMode() { + none() // only used negatively in InsecureLdapAuth.ql + } } module RequiresSslFlow = DataFlow::Global; diff --git a/java/ql/lib/semmle/code/java/security/InsecureTrustManager.qll b/java/ql/lib/semmle/code/java/security/InsecureTrustManager.qll index 41d8f28573ca..54e2b00b8f4b 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureTrustManager.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureTrustManager.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about insecure `TrustManager`s. */ +overlay[local?] +module; import java private import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/security/InsufficientKeySize.qll b/java/ql/lib/semmle/code/java/security/InsufficientKeySize.qll index 1f80136fdf19..6d28a124b854 100644 --- a/java/ql/lib/semmle/code/java/security/InsufficientKeySize.qll +++ b/java/ql/lib/semmle/code/java/security/InsufficientKeySize.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to insufficient key sizes in Java. */ +overlay[local?] +module; private import semmle.code.java.security.Encryption private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/InsufficientKeySizeQuery.qll b/java/ql/lib/semmle/code/java/security/InsufficientKeySizeQuery.qll index 876b2efd8409..d105db336101 100644 --- a/java/ql/lib/semmle/code/java/security/InsufficientKeySizeQuery.qll +++ b/java/ql/lib/semmle/code/java/security/InsufficientKeySizeQuery.qll @@ -1,4 +1,6 @@ /** Provides data flow configurations to be used in queries related to insufficient key sizes. */ +overlay[local?] +module; import semmle.code.java.dataflow.DataFlow import semmle.code.java.security.InsufficientKeySize diff --git a/java/ql/lib/semmle/code/java/security/IntentUriPermissionManipulation.qll b/java/ql/lib/semmle/code/java/security/IntentUriPermissionManipulation.qll index 2f9470f2bb9a..5ba3a6723467 100644 --- a/java/ql/lib/semmle/code/java/security/IntentUriPermissionManipulation.qll +++ b/java/ql/lib/semmle/code/java/security/IntentUriPermissionManipulation.qll @@ -2,6 +2,8 @@ * Provides classes and predicates to reason about Intent URI permission manipulation * vulnerabilities on Android. */ +overlay[local?] +module; import java private import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/security/JWT.qll b/java/ql/lib/semmle/code/java/security/JWT.qll index c282d32ea099..3f546d4edc05 100644 --- a/java/ql/lib/semmle/code/java/security/JWT.qll +++ b/java/ql/lib/semmle/code/java/security/JWT.qll @@ -1,4 +1,6 @@ /** Provides classes for working with JSON Web Token (JWT) libraries. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSinks diff --git a/java/ql/lib/semmle/code/java/security/JndiInjection.qll b/java/ql/lib/semmle/code/java/security/JndiInjection.qll index 3df8d6df378e..0e61a53c0ab0 100644 --- a/java/ql/lib/semmle/code/java/security/JndiInjection.qll +++ b/java/ql/lib/semmle/code/java/security/JndiInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about JNDI injection vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/LdapInjection.qll b/java/ql/lib/semmle/code/java/security/LdapInjection.qll index 54c8e28ba63d..ff92d40cf556 100644 --- a/java/ql/lib/semmle/code/java/security/LdapInjection.qll +++ b/java/ql/lib/semmle/code/java/security/LdapInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about LDAP injection attacks. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.TaintTracking diff --git a/java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll b/java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll index cc57fbce648d..4294ac84f687 100644 --- a/java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll @@ -2,6 +2,8 @@ * Provides a default taint sanitizer identifying comparisons against lists of * compile-time constants. */ +overlay[local?] +module; import java private import codeql.typeflow.UniversalFlow as UniversalFlow diff --git a/java/ql/lib/semmle/code/java/security/LogInjection.qll b/java/ql/lib/semmle/code/java/security/LogInjection.qll index 554aa8e4ebc9..da5a1dc73a0c 100644 --- a/java/ql/lib/semmle/code/java/security/LogInjection.qll +++ b/java/ql/lib/semmle/code/java/security/LogInjection.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to Log Injection vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/LogInjectionQuery.qll b/java/ql/lib/semmle/code/java/security/LogInjectionQuery.qll index 64d59993b3da..c34ba0e48499 100644 --- a/java/ql/lib/semmle/code/java/security/LogInjectionQuery.qll +++ b/java/ql/lib/semmle/code/java/security/LogInjectionQuery.qll @@ -19,6 +19,10 @@ module LogInjectionConfig implements DataFlow::ConfigSig { } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { + none() // straightforward case; but the large test source is causing OOMs under `--check-diff-informed`. + } } /** diff --git a/java/ql/lib/semmle/code/java/security/Mail.qll b/java/ql/lib/semmle/code/java/security/Mail.qll index 64bc22e4622f..5c68355ec3ee 100644 --- a/java/ql/lib/semmle/code/java/security/Mail.qll +++ b/java/ql/lib/semmle/code/java/security/Mail.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about email vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.Mail diff --git a/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll b/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll index 060a30f87e6a..57622b367f31 100644 --- a/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll +++ b/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll @@ -77,6 +77,12 @@ module InsecureCryptoConfig implements DataFlow::ConfigSig { objectToString(n.asExpr()) or n.getType().getErasure() instanceof TypeObject } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + exists(CryptoAlgoSpec c | result = c.getLocation() | sink.asExpr() = c.getAlgoSpec()) + } } /** diff --git a/java/ql/lib/semmle/code/java/security/MvelInjection.qll b/java/ql/lib/semmle/code/java/security/MvelInjection.qll index a9773ffe1860..dc804d4a1854 100644 --- a/java/ql/lib/semmle/code/java/security/MvelInjection.qll +++ b/java/ql/lib/semmle/code/java/security/MvelInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about MVEL injection attacks. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/OgnlInjection.qll b/java/ql/lib/semmle/code/java/security/OgnlInjection.qll index 37f31618fc32..e3f93b39ece1 100644 --- a/java/ql/lib/semmle/code/java/security/OgnlInjection.qll +++ b/java/ql/lib/semmle/code/java/security/OgnlInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about OGNL injection vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll b/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll index aaf578a6225f..63ffb62ef63b 100644 --- a/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll +++ b/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about partial path traversal vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll index f3385c94646b..e789d3c47785 100644 --- a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about sanitization of path injection vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.controlflow.Guards @@ -29,20 +31,10 @@ private module ValidationMethod { * Holds if `m` validates its `arg`th parameter by using `validationGuard`. */ private predicate validationMethod(Method m, int arg) { - exists( - Guard g, SsaImplicitInit var, ControlFlow::ExitNode exit, ControlFlowNode normexit, - boolean branch - | + exists(Guard g, SsaImplicitInit var, ControlFlow::NormalExitNode normexit, boolean branch | validationGuard(g, var.getAUse(), branch) and var.isParameterDefinition(m.getParameter(arg)) and - exit.getEnclosingCallable() = m and - normexit.getANormalSuccessor() = exit and - 1 = strictcount(ControlFlowNode n | n.getANormalSuccessor() = exit) - | - exists(ConditionNode conditionNode | - g = conditionNode.getCondition() and conditionNode.getABranchSuccessor(branch) = exit - ) - or + normexit.getEnclosingCallable() = m and g.controls(normexit.getBasicBlock(), branch) ) } diff --git a/java/ql/lib/semmle/code/java/security/QueryInjection.qll b/java/ql/lib/semmle/code/java/security/QueryInjection.qll index df316155ba1a..583a41ce9335 100644 --- a/java/ql/lib/semmle/code/java/security/QueryInjection.qll +++ b/java/ql/lib/semmle/code/java/security/QueryInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about database query language injection vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/RandomDataSource.qll b/java/ql/lib/semmle/code/java/security/RandomDataSource.qll index b44bcc07efe2..f040c858d9ce 100644 --- a/java/ql/lib/semmle/code/java/security/RandomDataSource.qll +++ b/java/ql/lib/semmle/code/java/security/RandomDataSource.qll @@ -1,6 +1,8 @@ /** * Defines classes representing random data sources. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.TypeFlow diff --git a/java/ql/lib/semmle/code/java/security/RelativePaths.qll b/java/ql/lib/semmle/code/java/security/RelativePaths.qll index 458bb7aea5d4..0c9e145268b6 100644 --- a/java/ql/lib/semmle/code/java/security/RelativePaths.qll +++ b/java/ql/lib/semmle/code/java/security/RelativePaths.qll @@ -1,4 +1,6 @@ /** Detection of strings and arrays of strings containing relative paths. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index 1f3ce61406f7..5eb35c05cd47 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about server-side request forgery (SSRF) attacks. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.Networking diff --git a/java/ql/lib/semmle/code/java/security/ResponseSplitting.qll b/java/ql/lib/semmle/code/java/security/ResponseSplitting.qll index 340f696db622..1238793ffd70 100644 --- a/java/ql/lib/semmle/code/java/security/ResponseSplitting.qll +++ b/java/ql/lib/semmle/code/java/security/ResponseSplitting.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about header splitting attacks. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/Sanitizers.qll b/java/ql/lib/semmle/code/java/security/Sanitizers.qll index 5340ba344823..21e7ccf264f9 100644 --- a/java/ql/lib/semmle/code/java/security/Sanitizers.qll +++ b/java/ql/lib/semmle/code/java/security/Sanitizers.qll @@ -1,4 +1,6 @@ /** Classes to represent sanitizers commonly used in dataflow and taint tracking configurations. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/SecurityFlag.qll b/java/ql/lib/semmle/code/java/security/SecurityFlag.qll index dab5d52bcb20..30718e3300fb 100644 --- a/java/ql/lib/semmle/code/java/security/SecurityFlag.qll +++ b/java/ql/lib/semmle/code/java/security/SecurityFlag.qll @@ -1,6 +1,8 @@ /** * Provides utility predicates to spot variable names, parameter names, and string literals that suggest deliberately insecure settings. */ +overlay[local?] +module; import java import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/security/SecurityTests.qll b/java/ql/lib/semmle/code/java/security/SecurityTests.qll index d2260de22a19..d8b714c18a1e 100644 --- a/java/ql/lib/semmle/code/java/security/SecurityTests.qll +++ b/java/ql/lib/semmle/code/java/security/SecurityTests.qll @@ -1,4 +1,6 @@ /** Test detection for the security pack. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll index 2320afb8eef0..6733219a8d5f 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll @@ -10,6 +10,8 @@ * in a fashion that the user can control. This includes authorization * methods such as logins, and sending of data, etc. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/security/SensitiveApi.qll b/java/ql/lib/semmle/code/java/security/SensitiveApi.qll index 559919f792ec..408fe73f904b 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveApi.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveApi.qll @@ -1,6 +1,8 @@ /** * Provides predicates defining methods that consume sensitive data, such as usernames and passwords. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll b/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll index 201b347e014c..25454d80c717 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll @@ -53,6 +53,8 @@ module SensitiveLoggerConfig implements DataFlow::ConfigSig { } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { any() } } module SensitiveLoggerFlow = TaintTracking::Global; diff --git a/java/ql/lib/semmle/code/java/security/SpelInjection.qll b/java/ql/lib/semmle/code/java/security/SpelInjection.qll index 13eb195eae46..3c36b207ac03 100644 --- a/java/ql/lib/semmle/code/java/security/SpelInjection.qll +++ b/java/ql/lib/semmle/code/java/security/SpelInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about SpEL injection attacks. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/SpringBootActuatorsQuery.qll b/java/ql/lib/semmle/code/java/security/SpringBootActuatorsQuery.qll index 68c20adabdd1..9fb4e753aab5 100644 --- a/java/ql/lib/semmle/code/java/security/SpringBootActuatorsQuery.qll +++ b/java/ql/lib/semmle/code/java/security/SpringBootActuatorsQuery.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about exposed actuators in Spring Boot. */ +overlay[local?] +module; import java private import semmle.code.java.frameworks.spring.SpringSecurity diff --git a/java/ql/lib/semmle/code/java/security/SpringCsrfProtection.qll b/java/ql/lib/semmle/code/java/security/SpringCsrfProtection.qll index c4259ee5b9de..88a53ef13e75 100644 --- a/java/ql/lib/semmle/code/java/security/SpringCsrfProtection.qll +++ b/java/ql/lib/semmle/code/java/security/SpringCsrfProtection.qll @@ -1,4 +1,6 @@ /** Provides predicates to reason about disabling CSRF protection in Spring. */ +overlay[local?] +module; import java diff --git a/java/ql/lib/semmle/code/java/security/SqlConcatenatedLib.qll b/java/ql/lib/semmle/code/java/security/SqlConcatenatedLib.qll index 5d3b1c803d22..2d59b18fa90e 100644 --- a/java/ql/lib/semmle/code/java/security/SqlConcatenatedLib.qll +++ b/java/ql/lib/semmle/code/java/security/SqlConcatenatedLib.qll @@ -1,4 +1,6 @@ /** Definitions used by `SqlConcatenated.ql`. */ +overlay[local?] +module; import semmle.code.java.security.ControlledString import semmle.code.java.dataflow.TaintTracking diff --git a/java/ql/lib/semmle/code/java/security/SqlConcatenatedQuery.qll b/java/ql/lib/semmle/code/java/security/SqlConcatenatedQuery.qll index fe6e31900e1f..7cfea41a8d77 100644 --- a/java/ql/lib/semmle/code/java/security/SqlConcatenatedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/SqlConcatenatedQuery.qll @@ -24,6 +24,15 @@ module UncontrolledStringBuilderSourceFlowConfig implements DataFlow::ConfigSig predicate isSink(DataFlow::Node sink) { sink instanceof QueryInjectionSink } predicate isBarrier(DataFlow::Node node) { node instanceof SimpleTypeSanitizer } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { + exists(Expr uncontrolled, StringBuilderVar sbv | result = uncontrolled.getLocation() | + uncontrolledStringBuilderQuery(sbv, uncontrolled) and + source = DataFlow::exprNode(sbv.getToStringCall()) + ) + } } /** diff --git a/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll b/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll index 597c05b04541..d972b59986a6 100644 --- a/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll @@ -38,6 +38,10 @@ module ExecTaintedEnvironmentConfig implements DataFlow::ConfigSig { ProcessBuilderEnvironmentFlow::flowToExpr(mm.getQualifier()) ) } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { none() } } /** diff --git a/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll b/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll index 674ee32102a3..098362f2bd53 100644 --- a/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll @@ -145,6 +145,10 @@ module TempDirSystemGetPropertyToCreateConfig implements DataFlow::ConfigSig { or sanitizer instanceof WindowsOsSanitizer } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { none() } } /** @@ -203,6 +207,7 @@ module TempDirSystemGetPropertyDirectlyToMkdir = /** * A `MethodCall` against a method that creates a temporary file or directory in a shared temporary directory. */ +overlay[local?] abstract class MethodCallInsecureFileCreation extends MethodCall { /** * Gets the type of entity created (e.g. `file`, `directory`, ...). @@ -213,14 +218,12 @@ abstract class MethodCallInsecureFileCreation extends MethodCall { * Gets the dataflow node representing the file system entity created. */ DataFlow::Node getNode() { result.asExpr() = this } - - /** Holds if this node is a source. */ - predicate isSource() { any() } } /** * An insecure call to `java.io.File.createTempFile`. */ +overlay[local?] class MethodCallInsecureFileCreateTempFile extends MethodCallInsecureFileCreation { MethodCallInsecureFileCreateTempFile() { this.getMethod() instanceof MethodFileCreateTempFile and @@ -249,6 +252,7 @@ class MethodGuavaFilesCreateTempFile extends Method { /** * A call to the `com.google.common.io.Files.createTempDir` method. */ +overlay[local?] class MethodCallInsecureGuavaFilesCreateTempFile extends MethodCallInsecureFileCreation { MethodCallInsecureGuavaFilesCreateTempFile() { this.getMethod() instanceof MethodGuavaFilesCreateTempFile diff --git a/java/ql/lib/semmle/code/java/security/TempDirUtils.qll b/java/ql/lib/semmle/code/java/security/TempDirUtils.qll index 33b6c46b916c..3d1623fa334c 100644 --- a/java/ql/lib/semmle/code/java/security/TempDirUtils.qll +++ b/java/ql/lib/semmle/code/java/security/TempDirUtils.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for reasoning about temporary file/directory creations. */ +overlay[local?] +module; import java private import semmle.code.java.environment.SystemProperty diff --git a/java/ql/lib/semmle/code/java/security/TemplateInjection.qll b/java/ql/lib/semmle/code/java/security/TemplateInjection.qll index 0b703780a035..58c48bb7f224 100644 --- a/java/ql/lib/semmle/code/java/security/TemplateInjection.qll +++ b/java/ql/lib/semmle/code/java/security/TemplateInjection.qll @@ -1,4 +1,6 @@ /** Definitions related to the server-side template injection (SST) query. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSources diff --git a/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll b/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll index f70542486dee..b2f49834b5ab 100644 --- a/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll @@ -62,6 +62,8 @@ module TrustBoundaryConfig implements DataFlow::ConfigSig { } predicate isSink(DataFlow::Node sink) { sink instanceof TrustBoundaryViolationSink } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll b/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll index afd3af221bed..3137ad423e0e 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccess.qll @@ -1,6 +1,8 @@ /** * Provides classes to reason about Unsafe Resource Fetching vulnerabilities in Android. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/UnsafeCertTrust.qll b/java/ql/lib/semmle/code/java/security/UnsafeCertTrust.qll index 60f0cef83847..61a76afecc8d 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeCertTrust.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeCertTrust.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates to reason about unsafe certificate trust vulnerablities. */ +overlay[local?] +module; import java private import semmle.code.java.frameworks.Networking diff --git a/java/ql/lib/semmle/code/java/security/UnsafeCertTrustQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeCertTrustQuery.qll index 803e3836ab0e..b395692804cf 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeCertTrustQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeCertTrustQuery.qll @@ -14,6 +14,10 @@ module SslEndpointIdentificationFlowConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof SslConnectionCreation } predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof SslUnsafeCertTrustSanitizer } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { none() } } /** diff --git a/java/ql/lib/semmle/code/java/security/UnsafeContentUriResolution.qll b/java/ql/lib/semmle/code/java/security/UnsafeContentUriResolution.qll index b19d06bbf88c..7cd10142a1e5 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeContentUriResolution.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeContentUriResolution.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about vulnerabilites related to content URIs. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.FlowSinks diff --git a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll index b16770c222b8..ce0f649eff35 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll @@ -3,17 +3,16 @@ */ import semmle.code.java.dataflow.FlowSources +private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSinks private import semmle.code.java.dispatch.VirtualDispatch private import semmle.code.java.frameworks.Kryo private import semmle.code.java.frameworks.XStream private import semmle.code.java.frameworks.SnakeYaml private import semmle.code.java.frameworks.FastJson -private import semmle.code.java.frameworks.JYaml private import semmle.code.java.frameworks.JsonIo private import semmle.code.java.frameworks.YamlBeans private import semmle.code.java.frameworks.HessianBurlap -private import semmle.code.java.frameworks.Castor private import semmle.code.java.frameworks.Jackson private import semmle.code.java.frameworks.Jabsorb private import semmle.code.java.frameworks.Jms @@ -23,10 +22,17 @@ private import semmle.code.java.frameworks.google.Gson private import semmle.code.java.frameworks.apache.Lang private import semmle.code.java.Reflection -private class ObjectInputStreamReadObjectMethod extends Method { - ObjectInputStreamReadObjectMethod() { +private class ObjectInputReadObjectMethod extends Method { + ObjectInputReadObjectMethod() { + this.getDeclaringType().getASourceSupertype*() instanceof TypeObjectInput and + this.hasName("readObject") + } +} + +private class ObjectInputStreamReadUnsharedMethod extends Method { + ObjectInputStreamReadUnsharedMethod() { this.getDeclaringType().getASourceSupertype*() instanceof TypeObjectInputStream and - (this.hasName("readObject") or this.hasName("readUnshared")) + this.hasName("readUnshared") } } @@ -44,13 +50,6 @@ private class SafeObjectInputStreamType extends RefType { } } -private class XmlDecoderReadObjectMethod extends Method { - XmlDecoderReadObjectMethod() { - this.getDeclaringType().hasQualifiedName("java.beans", "XMLDecoder") and - this.hasName("readObject") - } -} - private module SafeXStreamConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { any(XStreamEnableWhiteListing ma).getQualifier().(VarAccess).getVariable().getAnAccess() = @@ -142,20 +141,25 @@ private module SafeKryoConfig implements DataFlow::ConfigSig { private module SafeKryoFlow = DataFlow::Global; +private class DefaultUnsafeDeserializationSink extends DataFlow::Node { + DefaultUnsafeDeserializationSink() { sinkNode(this, "unsafe-deserialization") } +} + /** * Holds if `ma` is a call that deserializes data from `sink`. + * + * Note that this does not include deserialization methods that have been + * specified using models-as-data. */ predicate unsafeDeserialization(MethodCall ma, Expr sink) { exists(Method m | m = ma.getMethod() | - m instanceof ObjectInputStreamReadObjectMethod and + m instanceof ObjectInputReadObjectMethod and sink = ma.getQualifier() and - not exists(DataFlow::ExprNode node | - node.getExpr() = sink and - node.getTypeBound() instanceof SafeObjectInputStreamType - ) + not DataFlow::exprNode(sink).getTypeBound() instanceof SafeObjectInputStreamType or - m instanceof XmlDecoderReadObjectMethod and - sink = ma.getQualifier() + m instanceof ObjectInputStreamReadUnsharedMethod and + sink = ma.getQualifier() and + not DataFlow::exprNode(sink).getTypeBound() instanceof SafeObjectInputStreamType or m instanceof XStreamReadObjectMethod and sink = ma.getAnArgument() and @@ -165,9 +169,6 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) { sink = ma.getAnArgument() and not SafeKryoFlow::flowToExpr(ma.getQualifier()) or - m instanceof MethodApacheSerializationUtilsDeserialize and - sink = ma.getArgument(0) - or ma instanceof UnsafeSnakeYamlParse and sink = ma.getArgument(0) or @@ -175,23 +176,6 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) { not fastJsonLooksSafe() and sink = ma.getArgument(0) or - ma.getMethod() instanceof JYamlLoaderUnsafeLoadMethod and - sink = ma.getArgument(0) - or - ma.getMethod() instanceof JsonIoJsonToJavaMethod and - sink = ma.getArgument(0) - or - ma.getMethod() instanceof JsonIoReadObjectMethod and - sink = ma.getQualifier() - or - ma.getMethod() instanceof YamlBeansReaderReadMethod and sink = ma.getQualifier() - or - ma.getMethod() instanceof UnsafeHessianInputReadObjectMethod and sink = ma.getQualifier() - or - ma.getMethod() instanceof CastorUnmarshalMethod and sink = ma.getAnArgument() - or - ma.getMethod() instanceof BurlapInputReadObjectMethod and sink = ma.getQualifier() - or ma.getMethod() instanceof ObjectMapperReadMethod and sink = ma.getArgument(0) and ( @@ -207,9 +191,6 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) { sink = ma.getArgument(2) and UnsafeTypeFlow::flowToExpr(ma.getArgument(1)) or - m instanceof JabsorbFromJsonMethod and - sink = ma.getArgument(0) - or m instanceof JoddJsonParseMethod and sink = ma.getArgument(0) and ( @@ -236,10 +217,17 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) { /** A sink for unsafe deserialization. */ class UnsafeDeserializationSink extends ApiSinkNode, DataFlow::ExprNode { - UnsafeDeserializationSink() { unsafeDeserialization(_, this.getExpr()) } + MethodCall mc; + + UnsafeDeserializationSink() { + unsafeDeserialization(mc, this.getExpr()) + or + this instanceof DefaultUnsafeDeserializationSink and + this.getExpr() = [mc.getQualifier(), mc.getAnArgument()] + } /** Gets a call that triggers unsafe deserialization. */ - MethodCall getMethodCall() { unsafeDeserialization(result, this.getExpr()) } + MethodCall getMethodCall() { result = mc } } /** Holds if `node` is a sanitizer for unsafe deserialization */ @@ -323,6 +311,10 @@ private module UnsafeDeserializationConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { isUnsafeDeserializationSanitizer(node) } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(UnsafeDeserializationSink).getMethodCall().getLocation() + } } module UnsafeDeserializationFlow = TaintTracking::Global; diff --git a/java/ql/lib/semmle/code/java/security/UrlRedirect.qll b/java/ql/lib/semmle/code/java/security/UrlRedirect.qll index 02f66e3f0e95..be6addfa2529 100644 --- a/java/ql/lib/semmle/code/java/security/UrlRedirect.qll +++ b/java/ql/lib/semmle/code/java/security/UrlRedirect.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about URL redirect attacks. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/Validation.qll b/java/ql/lib/semmle/code/java/security/Validation.qll index 664c55e70d82..69f57474317f 100644 --- a/java/ql/lib/semmle/code/java/security/Validation.qll +++ b/java/ql/lib/semmle/code/java/security/Validation.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import semmle.code.java.Expr import semmle.code.java.dataflow.SSA import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/security/XPath.qll b/java/ql/lib/semmle/code/java/security/XPath.qll index c2992fdc272a..cc3fde30091b 100644 --- a/java/ql/lib/semmle/code/java/security/XPath.qll +++ b/java/ql/lib/semmle/code/java/security/XPath.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about XPath vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/XSS.qll b/java/ql/lib/semmle/code/java/security/XSS.qll index 9aafcd15f683..990371cc8cfe 100644 --- a/java/ql/lib/semmle/code/java/security/XSS.qll +++ b/java/ql/lib/semmle/code/java/security/XSS.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about Cross-site scripting (XSS) vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.frameworks.Servlets diff --git a/java/ql/lib/semmle/code/java/security/XmlParsers.qll b/java/ql/lib/semmle/code/java/security/XmlParsers.qll index 5ca1dd95f99e..8bb2a015a14d 100644 --- a/java/ql/lib/semmle/code/java/security/XmlParsers.qll +++ b/java/ql/lib/semmle/code/java/security/XmlParsers.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates for modeling XML parsers in Java. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/XsltInjection.qll b/java/ql/lib/semmle/code/java/security/XsltInjection.qll index 56affafa2029..d54e92066443 100644 --- a/java/ql/lib/semmle/code/java/security/XsltInjection.qll +++ b/java/ql/lib/semmle/code/java/security/XsltInjection.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about XSLT injection vulnerabilities. */ +overlay[local?] +module; import java import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/Xxe.qll b/java/ql/lib/semmle/code/java/security/Xxe.qll index cf30b3c19c0d..5c3d075bfb1c 100644 --- a/java/ql/lib/semmle/code/java/security/Xxe.qll +++ b/java/ql/lib/semmle/code/java/security/Xxe.qll @@ -1,4 +1,6 @@ /** Provides classes to reason about XML eXternal Entity (XXE) vulnerabilities. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll b/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll index 29c4d0e5e3df..185b1b8a46e2 100644 --- a/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll +++ b/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll @@ -1,4 +1,6 @@ /** Provides predicates and classes to reason about the sizing and indexing of arrays. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/java/security/internal/BoundingChecks.qll b/java/ql/lib/semmle/code/java/security/internal/BoundingChecks.qll index 88dec6c2bb78..81bf8727e4fd 100644 --- a/java/ql/lib/semmle/code/java/security/internal/BoundingChecks.qll +++ b/java/ql/lib/semmle/code/java/security/internal/BoundingChecks.qll @@ -2,6 +2,8 @@ * Provides classes and predicates for determining upper and lower bounds on a value determined by bounding checks that * have been made on dominant paths. */ +overlay[local?] +module; import java private import semmle.code.java.controlflow.Guards diff --git a/java/ql/lib/semmle/code/java/security/internal/EncryptionKeySizes.qll b/java/ql/lib/semmle/code/java/security/internal/EncryptionKeySizes.qll index 46df3a3ca7bb..f42e31b2d7e5 100644 --- a/java/ql/lib/semmle/code/java/security/internal/EncryptionKeySizes.qll +++ b/java/ql/lib/semmle/code/java/security/internal/EncryptionKeySizes.qll @@ -4,6 +4,8 @@ * Provides predicates for recommended encryption key sizes. * Such that we can share this logic across our CodeQL analysis of different languages. */ +overlay[local?] +module; /** Returns the minimum recommended key size for RSA. */ int minSecureKeySizeRsa() { result = 2048 } diff --git a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll index 92d5dab5289a..eb27ec873752 100644 --- a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll +++ b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll @@ -1,4 +1,6 @@ /** Provides classes and predicates related to regex injection in Java. */ +overlay[local?] +module; import java private import semmle.code.java.dataflow.DataFlow diff --git a/java/ql/lib/semmle/code/xml/AndroidManifest.qll b/java/ql/lib/semmle/code/xml/AndroidManifest.qll index ad69546a4140..d20165a031ff 100644 --- a/java/ql/lib/semmle/code/xml/AndroidManifest.qll +++ b/java/ql/lib/semmle/code/xml/AndroidManifest.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Android manifest files. */ +overlay[local?] +module; import XML diff --git a/java/ql/lib/semmle/code/xml/Ant.qll b/java/ql/lib/semmle/code/xml/Ant.qll index 59cd2889096a..84d6ea927f72 100644 --- a/java/ql/lib/semmle/code/xml/Ant.qll +++ b/java/ql/lib/semmle/code/xml/Ant.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with targets in Apache Ant build files. */ +overlay[local?] +module; import XML diff --git a/java/ql/lib/semmle/code/xml/MavenPom.qll b/java/ql/lib/semmle/code/xml/MavenPom.qll index 313a0e08bd83..68c81c4ab905 100644 --- a/java/ql/lib/semmle/code/xml/MavenPom.qll +++ b/java/ql/lib/semmle/code/xml/MavenPom.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with Maven POM files and their content. */ +overlay[local?] +module; import XML diff --git a/java/ql/lib/semmle/code/xml/WebXML.qll b/java/ql/lib/semmle/code/xml/WebXML.qll index c356081c95f6..c741ce7c66b0 100644 --- a/java/ql/lib/semmle/code/xml/WebXML.qll +++ b/java/ql/lib/semmle/code/xml/WebXML.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + import java /** diff --git a/java/ql/lib/semmle/code/xml/XML.qll b/java/ql/lib/semmle/code/xml/XML.qll index 54157809260b..e4073362fc6f 100644 --- a/java/ql/lib/semmle/code/xml/XML.qll +++ b/java/ql/lib/semmle/code/xml/XML.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for working with XML files and their content. */ +overlay[local?] +module; import semmle.files.FileSystem private import codeql.xml.Xml diff --git a/java/ql/lib/semmle/files/FileSystem.qll b/java/ql/lib/semmle/files/FileSystem.qll index f56d54866140..bb55214dcd3b 100644 --- a/java/ql/lib/semmle/files/FileSystem.qll +++ b/java/ql/lib/semmle/files/FileSystem.qll @@ -1,3 +1,5 @@ /** Provides classes for working with files and folders. */ +overlay[local?] +module; import semmle.code.FileSystem diff --git a/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/old.dbscheme b/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/old.dbscheme new file mode 100644 index 000000000000..38d02c063878 --- /dev/null +++ b/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/old.dbscheme @@ -0,0 +1,1232 @@ +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * javac A.java B.java C.java + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * javac A.java B.java C.java + */ + unique int id : @compilation, + int kind: int ref, + string cwd : string ref, + string name : string ref +); + +case @compilation.kind of + 1 = @javacompilation +| 2 = @kotlincompilation +; + +compilation_started( + int id : @compilation ref +) + +compilation_info( + int id : @compilation ref, + string info_key: string ref, + string info_value: string ref +) + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--javac-args` + * 2 | A.java + * 3 | B.java + * 4 | C.java + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@@@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | A.java + * 1 | B.java + * 2 | C.java + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * For each file recorded in `compilation_compiling_files`, + * there will be a corresponding row in + * `compilation_compiling_files_completed` once extraction + * of that file is complete. The `result` will indicate the + * extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +#keyset[id, num] +compilation_compiling_files_completed( + int id : @compilation ref, + int num : int ref, + int result : int ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed + * time (respectively) that the original compilation (not the extraction) + * took for compiler invocation `id`. + */ +compilation_compiler_times( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + * The `result` will indicate the extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref, + int result : int ref +); + +diagnostics( + unique int id: @diagnostic, + string generated_by: string ref, // TODO: Sync this with the other languages? + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/* + * External artifacts + */ + +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +sourceLocationPrefix( + string prefix : string ref +); + +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +/* + * SMAP + */ + +smap_header( + int outputFileId: @file ref, + string outputFilename: string ref, + string defaultStratum: string ref +); + +smap_files( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + string inputFileName: string ref, + int inputFileId: @file ref +); + +smap_lines( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + int inputStartLine: int ref, + int inputLineCount: int ref, + int outputStartLine: int ref, + int outputLineIncrement: int ref +); + +/* + * Locations and files + */ + +@location = @location_default ; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +hasLocation( + int locatableid: @locatable ref, + int id: @location ref +); + +@sourceline = @locatable ; + +#keyset[element_id] +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/* + * Java + */ + +cupackage( + unique int id: @file ref, + int packageid: @package ref +); + +#keyset[fileid,keyName] +jarManifestMain( + int fileid: @file ref, + string keyName: string ref, + string value: string ref +); + +#keyset[fileid,entryName,keyName] +jarManifestEntries( + int fileid: @file ref, + string entryName: string ref, + string keyName: string ref, + string value: string ref +); + +packages( + unique int id: @package, + string nodeName: string ref +); + +primitives( + unique int id: @primitive, + string nodeName: string ref +); + +modifiers( + unique int id: @modifier, + string nodeName: string ref +); + +/** + * An errortype is used when the extractor is unable to extract a type + * correctly for some reason. + */ +error_type( + unique int id: @errortype +); + +classes_or_interfaces( + unique int id: @classorinterface, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @classorinterface ref +); + +file_class( + int id: @classorinterface ref +); + +class_object( + unique int id: @classorinterface ref, + unique int instance: @field ref +); + +type_companion_object( + unique int id: @classorinterface ref, + unique int instance: @field ref, + unique int companion_object: @classorinterface ref +); + +kt_nullable_types( + unique int id: @kt_nullable_type, + int classid: @reftype ref +) + +kt_notnull_types( + unique int id: @kt_notnull_type, + int classid: @reftype ref +) + +kt_type_alias( + unique int id: @kt_type_alias, + string name: string ref, + int kttypeid: @kt_type ref +) + +@kt_type = @kt_nullable_type | @kt_notnull_type + +isInterface( + unique int id: @classorinterface ref +); + +isRecord( + unique int id: @classorinterface ref +); + +fielddecls( + unique int id: @fielddecl, + int parentid: @reftype ref +); + +#keyset[fieldId] #keyset[fieldDeclId,pos] +fieldDeclaredIn( + int fieldId: @field ref, + int fieldDeclId: @fielddecl ref, + int pos: int ref +); + +fields( + unique int id: @field, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @reftype ref +); + +fieldsKotlinType( + unique int id: @field ref, + int kttypeid: @kt_type ref +); + +constrs( + unique int id: @constructor, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @constructor ref +); + +constrsKotlinType( + unique int id: @constructor ref, + int kttypeid: @kt_type ref +); + +methods( + unique int id: @method, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @method ref +); + +methodsKotlinType( + unique int id: @method ref, + int kttypeid: @kt_type ref +); + +#keyset[parentid,pos] +params( + unique int id: @param, + int typeid: @type ref, + int pos: int ref, + int parentid: @callable ref, + int sourceid: @param ref +); + +paramsKotlinType( + unique int id: @param ref, + int kttypeid: @kt_type ref +); + +paramName( + unique int id: @param ref, + string nodeName: string ref +); + +isVarargsParam( + int param: @param ref +); + +exceptions( + unique int id: @exception, + int typeid: @type ref, + int parentid: @callable ref +); + +isAnnotType( + int interfaceid: @classorinterface ref +); + +isAnnotElem( + int methodid: @method ref +); + +annotValue( + int parentid: @annotation ref, + int id2: @method ref, + unique int value: @expr ref +); + +isEnumType( + int classid: @classorinterface ref +); + +isEnumConst( + int fieldid: @field ref +); + +#keyset[parentid,pos] +typeVars( + unique int id: @typevariable, + string nodeName: string ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +wildcards( + unique int id: @wildcard, + string nodeName: string ref, + int kind: int ref +); + +#keyset[parentid,pos] +typeBounds( + unique int id: @typebound, + int typeid: @reftype ref, + int pos: int ref, + int parentid: @boundedtype ref +); + +#keyset[parentid,pos] +typeArgs( + int argumentid: @reftype ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +isParameterized( + int memberid: @member ref +); + +isRaw( + int memberid: @member ref +); + +#keyset[classid] #keyset[parent] +isAnonymClass( + int classid: @classorinterface ref, + int parent: @classinstancexpr ref +); + +#keyset[typeid] #keyset[parent] +isLocalClassOrInterface( + int typeid: @classorinterface ref, + int parent: @localtypedeclstmt ref +); + +isDefConstr( + int constructorid: @constructor ref +); + +#keyset[exprId] +lambdaKind( + int exprId: @lambdaexpr ref, + int bodyKind: int ref +); + +isCanonicalConstr( + int constructorid: @constructor ref +); + +arrays( + unique int id: @array, + string nodeName: string ref, + int elementtypeid: @type ref, + int dimension: int ref, + int componenttypeid: @type ref +); + +enclInReftype( + unique int child: @reftype ref, + int parent: @reftype ref +); + +extendsReftype( + int id1: @reftype ref, + int id2: @classorinterface ref +); + +implInterface( + int id1: @classorarray ref, + int id2: @classorinterface ref +); + +permits( + int id1: @classorinterface ref, + int id2: @classorinterface ref +); + +hasModifier( + int id1: @modifiable ref, + int id2: @modifier ref +); + +imports( + unique int id: @import, + int holder: @classorinterfaceorpackage ref, + string name: string ref, + int kind: int ref +); + +#keyset[parent,idx] +stmts( + unique int id: @stmt, + int kind: int ref, + int parent: @stmtparent ref, + int idx: int ref, + int bodydecl: @callable ref +); + +@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr; + +case @stmt.kind of + 0 = @block +| 1 = @ifstmt +| 2 = @forstmt +| 3 = @enhancedforstmt +| 4 = @whilestmt +| 5 = @dostmt +| 6 = @trystmt +| 7 = @switchstmt +| 8 = @synchronizedstmt +| 9 = @returnstmt +| 10 = @throwstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @emptystmt +| 14 = @exprstmt +| 15 = @labeledstmt +| 16 = @assertstmt +| 17 = @localvariabledeclstmt +| 18 = @localtypedeclstmt +| 19 = @constructorinvocationstmt +| 20 = @superconstructorinvocationstmt +| 21 = @case +| 22 = @catchclause +| 23 = @yieldstmt +| 24 = @errorstmt +| 25 = @whenbranch +; + +#keyset[parent,idx] +exprs( + unique int id: @expr, + int kind: int ref, + int typeid: @type ref, + int parent: @exprparent ref, + int idx: int ref +); + +exprsKotlinType( + unique int id: @expr ref, + int kttypeid: @kt_type ref +); + +callableEnclosingExpr( + unique int id: @expr ref, + int callable_id: @callable ref +); + +statementEnclosingExpr( + unique int id: @expr ref, + int statement_id: @stmt ref +); + +isParenthesized( + unique int id: @expr ref, + int parentheses: int ref +); + +case @expr.kind of + 1 = @arrayaccess +| 2 = @arraycreationexpr +| 3 = @arrayinit +| 4 = @assignexpr +| 5 = @assignaddexpr +| 6 = @assignsubexpr +| 7 = @assignmulexpr +| 8 = @assigndivexpr +| 9 = @assignremexpr +| 10 = @assignandexpr +| 11 = @assignorexpr +| 12 = @assignxorexpr +| 13 = @assignlshiftexpr +| 14 = @assignrshiftexpr +| 15 = @assignurshiftexpr +| 16 = @booleanliteral +| 17 = @integerliteral +| 18 = @longliteral +| 19 = @floatingpointliteral +| 20 = @doubleliteral +| 21 = @characterliteral +| 22 = @stringliteral +| 23 = @nullliteral +| 24 = @mulexpr +| 25 = @divexpr +| 26 = @remexpr +| 27 = @addexpr +| 28 = @subexpr +| 29 = @lshiftexpr +| 30 = @rshiftexpr +| 31 = @urshiftexpr +| 32 = @andbitexpr +| 33 = @orbitexpr +| 34 = @xorbitexpr +| 35 = @andlogicalexpr +| 36 = @orlogicalexpr +| 37 = @ltexpr +| 38 = @gtexpr +| 39 = @leexpr +| 40 = @geexpr +| 41 = @eqexpr +| 42 = @neexpr +| 43 = @postincexpr +| 44 = @postdecexpr +| 45 = @preincexpr +| 46 = @predecexpr +| 47 = @minusexpr +| 48 = @plusexpr +| 49 = @bitnotexpr +| 50 = @lognotexpr +| 51 = @castexpr +| 52 = @newexpr +| 53 = @conditionalexpr +| 54 = @parexpr // deprecated +| 55 = @instanceofexpr +| 56 = @localvariabledeclexpr +| 57 = @typeliteral +| 58 = @thisaccess +| 59 = @superaccess +| 60 = @varaccess +| 61 = @methodaccess +| 62 = @unannotatedtypeaccess +| 63 = @arraytypeaccess +| 64 = @packageaccess +| 65 = @wildcardtypeaccess +| 66 = @declannotation +| 67 = @uniontypeaccess +| 68 = @lambdaexpr +| 69 = @memberref +| 70 = @annotatedtypeaccess +| 71 = @typeannotation +| 72 = @intersectiontypeaccess +| 73 = @switchexpr +| 74 = @errorexpr +| 75 = @whenexpr +| 76 = @getclassexpr +| 77 = @safecastexpr +| 78 = @implicitcastexpr +| 79 = @implicitnotnullexpr +| 80 = @implicitcoerciontounitexpr +| 81 = @notinstanceofexpr +| 82 = @stmtexpr +| 83 = @stringtemplateexpr +| 84 = @notnullexpr +| 85 = @unsafecoerceexpr +| 86 = @valueeqexpr +| 87 = @valueneexpr +| 88 = @propertyref +| 89 = @recordpatternexpr +; + +/** Holds if this `when` expression was written as an `if` expression. */ +when_if(unique int id: @whenexpr ref); + +/** Holds if this `when` branch was written as an `else` branch. */ +when_branch_else(unique int id: @whenbranch ref); + +@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref + +@annotation = @declannotation | @typeannotation +@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess + +@assignment = @assignexpr + | @assignop; + +@unaryassignment = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr; + +@assignop = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + | @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignurshiftexpr; + +@literal = @booleanliteral + | @integerliteral + | @longliteral + | @floatingpointliteral + | @doubleliteral + | @characterliteral + | @stringliteral + | @nullliteral; + +@binaryexpr = @mulexpr + | @divexpr + | @remexpr + | @addexpr + | @subexpr + | @lshiftexpr + | @rshiftexpr + | @urshiftexpr + | @andbitexpr + | @orbitexpr + | @xorbitexpr + | @andlogicalexpr + | @orlogicalexpr + | @ltexpr + | @gtexpr + | @leexpr + | @geexpr + | @eqexpr + | @neexpr + | @valueeqexpr + | @valueneexpr; + +@unaryexpr = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr + | @minusexpr + | @plusexpr + | @bitnotexpr + | @lognotexpr + | @notnullexpr; + +@caller = @classinstancexpr + | @methodaccess + | @constructorinvocationstmt + | @superconstructorinvocationstmt; + +callableBinding( + unique int callerid: @caller ref, + int callee: @callable ref +); + +memberRefBinding( + unique int id: @expr ref, + int callable: @callable ref +); + +propertyRefGetBinding( + unique int id: @expr ref, + int getter: @callable ref +); + +propertyRefFieldBinding( + unique int id: @expr ref, + int field: @field ref +); + +propertyRefSetBinding( + unique int id: @expr ref, + int setter: @callable ref +); + +@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @classorinterface | @param | @localvar | @typevariable; + +variableBinding( + unique int expr: @varaccess ref, + int variable: @variable ref +); + +@variable = @localscopevariable | @field; + +@localscopevariable = @localvar | @param; + +localvars( + unique int id: @localvar, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @localvariabledeclexpr ref +); + +localvarsKotlinType( + unique int id: @localvar ref, + int kttypeid: @kt_type ref +); + +@namedexprorstmt = @breakstmt + | @continuestmt + | @labeledstmt + | @literal; + +namestrings( + string name: string ref, + string value: string ref, + unique int parent: @namedexprorstmt ref +); + +/* + * Modules + */ + +#keyset[name] +modules( + unique int id: @module, + string name: string ref +); + +isOpen( + int id: @module ref +); + +#keyset[fileId] +cumodule( + int fileId: @file ref, + int moduleId: @module ref +); + +@directive = @requires + | @exports + | @opens + | @uses + | @provides + +#keyset[directive] +directives( + int id: @module ref, + int directive: @directive ref +); + +requires( + unique int id: @requires, + int target: @module ref +); + +isTransitive( + int id: @requires ref +); + +isStatic( + int id: @requires ref +); + +exports( + unique int id: @exports, + int target: @package ref +); + +exportsTo( + int id: @exports ref, + int target: @module ref +); + +opens( + unique int id: @opens, + int target: @package ref +); + +opensTo( + int id: @opens ref, + int target: @module ref +); + +uses( + unique int id: @uses, + string serviceInterface: string ref +); + +provides( + unique int id: @provides, + string serviceInterface: string ref +); + +providesWith( + int id: @provides ref, + string serviceImpl: string ref +); + +isNullDefaultCase( + int id: @case ref +); + +/* + * Javadoc + */ + +javadoc( + unique int id: @javadoc +); + +isNormalComment( + int commentid : @javadoc ref +); + +isEolComment( + int commentid : @javadoc ref +); + +hasJavadoc( + int documentableid: @member ref, + int javadocid: @javadoc ref +); + +#keyset[parentid,idx] +javadocTag( + unique int id: @javadocTag, + string name: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +#keyset[parentid,idx] +javadocText( + unique int id: @javadocText, + string text: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +@javadocParent = @javadoc | @javadocTag; +@javadocElement = @javadocTag | @javadocText; + +@classorinterfaceorpackage = @classorinterface | @package; +@classorinterfaceorcallable = @classorinterface | @callable; +@boundedtype = @typevariable | @wildcard; +@reftype = @classorinterface | @array | @boundedtype | @errortype; +@classorarray = @classorinterface | @array; +@type = @primitive | @reftype; +@callable = @method | @constructor; + +/** A program element that has a name. */ +@element = @package | @modifier | @annotation | @errortype | + @locatableElement; + +@locatableElement = @file | @primitive | @classorinterface | @method | @constructor | @param | @exception | @field | + @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias | + @kt_property; + +@modifiable = @member_modifiable| @param | @localvar | @typevariable; + +@member_modifiable = @classorinterface | @method | @constructor | @field | @kt_property; + +@member = @method | @constructor | @field | @reftype ; + +/** A program element that has a location. */ +@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment | + @locatableElement; + +@top = @element | @locatable | @folder; + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* + * configuration files with key value pairs + */ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +ktComments( + unique int id: @ktcomment, + int kind: int ref, + string text : string ref +) + +ktCommentSections( + unique int id: @ktcommentsection, + int comment: @ktcomment ref, + string content : string ref +) + +ktCommentSectionNames( + unique int id: @ktcommentsection ref, + string name : string ref +) + +ktCommentSectionSubjectNames( + unique int id: @ktcommentsection ref, + string subjectname : string ref +) + +#keyset[id, owner] +ktCommentOwners( + int id: @ktcomment ref, + int owner: @top ref +) + +ktExtensionFunctions( + unique int id: @method ref, + int typeid: @type ref, + int kttypeid: @kt_type ref +) + +ktProperties( + unique int id: @kt_property, + string nodeName: string ref +) + +ktPropertyGetters( + unique int id: @kt_property ref, + int getter: @method ref +) + +ktPropertySetters( + unique int id: @kt_property ref, + int setter: @method ref +) + +ktPropertyBackingFields( + unique int id: @kt_property ref, + int backingField: @field ref +) + +ktSyntheticBody( + unique int id: @callable ref, + int kind: int ref + // 1: ENUM_VALUES + // 2: ENUM_VALUEOF + // 3: ENUM_ENTRIES +) + +ktLocalFunction( + unique int id: @method ref +) + +ktInitializerAssignment( + unique int id: @assignexpr ref +) + +ktPropertyDelegates( + unique int id: @kt_property ref, + unique int variableId: @variable ref +) + +/** + * If `id` is a compiler generated element, then the kind indicates the + * reason that the compiler generated it. + * See `Element.compilerGeneratedReason()` for an explanation of what + * each `kind` means. + */ +compiler_generated( + unique int id: @element ref, + int kind: int ref +) + +ktFunctionOriginalNames( + unique int id: @method ref, + string name: string ref +) + +ktDataClasses( + unique int id: @classorinterface ref +) diff --git a/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/semmlecode.dbscheme b/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/semmlecode.dbscheme new file mode 100644 index 000000000000..1b8f5f4c747e --- /dev/null +++ b/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/semmlecode.dbscheme @@ -0,0 +1,1236 @@ +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * javac A.java B.java C.java + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * javac A.java B.java C.java + */ + unique int id : @compilation, + int kind: int ref, + string cwd : string ref, + string name : string ref +); + +case @compilation.kind of + 1 = @javacompilation +| 2 = @kotlincompilation +; + +compilation_started( + int id : @compilation ref +) + +compilation_info( + int id : @compilation ref, + string info_key: string ref, + string info_value: string ref +) + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--javac-args` + * 2 | A.java + * 3 | B.java + * 4 | C.java + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@@@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * javac A.java B.java C.java + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | A.java + * 1 | B.java + * 2 | C.java + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * For each file recorded in `compilation_compiling_files`, + * there will be a corresponding row in + * `compilation_compiling_files_completed` once extraction + * of that file is complete. The `result` will indicate the + * extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +#keyset[id, num] +compilation_compiling_files_completed( + int id : @compilation ref, + int num : int ref, + int result : int ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed + * time (respectively) that the original compilation (not the extraction) + * took for compiler invocation `id`. + */ +compilation_compiler_times( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + * The `result` will indicate the extraction result: + * + * 0: Successfully extracted + * 1: Errors were encountered, but extraction recovered + * 2: Errors were encountered, and extraction could not recover + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref, + int result : int ref +); + +diagnostics( + unique int id: @diagnostic, + string generated_by: string ref, // TODO: Sync this with the other languages? + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + unique int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/* + * External artifacts + */ + +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +sourceLocationPrefix( + string prefix : string ref +); + +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path: string ref +); + +/* + * SMAP + */ + +smap_header( + int outputFileId: @file ref, + string outputFilename: string ref, + string defaultStratum: string ref +); + +smap_files( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + string inputFileName: string ref, + int inputFileId: @file ref +); + +smap_lines( + int outputFileId: @file ref, + string stratum: string ref, + int inputFileNum: int ref, + int inputStartLine: int ref, + int inputLineCount: int ref, + int outputStartLine: int ref, + int outputLineIncrement: int ref +); + +/* + * Locations and files + */ + +@location = @location_default ; + +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +hasLocation( + int locatableid: @locatable ref, + int id: @location ref +); + +@sourceline = @locatable ; + +#keyset[element_id] +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/* + * Java + */ + +cupackage( + unique int id: @file ref, + int packageid: @package ref +); + +#keyset[fileid,keyName] +jarManifestMain( + int fileid: @file ref, + string keyName: string ref, + string value: string ref +); + +#keyset[fileid,entryName,keyName] +jarManifestEntries( + int fileid: @file ref, + string entryName: string ref, + string keyName: string ref, + string value: string ref +); + +packages( + unique int id: @package, + string nodeName: string ref +); + +primitives( + unique int id: @primitive, + string nodeName: string ref +); + +modifiers( + unique int id: @modifier, + string nodeName: string ref +); + +/** + * An errortype is used when the extractor is unable to extract a type + * correctly for some reason. + */ +error_type( + unique int id: @errortype +); + +classes_or_interfaces( + unique int id: @classorinterface, + string nodeName: string ref, + int parentid: @package ref, + int sourceid: @classorinterface ref +); + +file_class( + int id: @classorinterface ref +); + +class_object( + unique int id: @classorinterface ref, + unique int instance: @field ref +); + +type_companion_object( + unique int id: @classorinterface ref, + unique int instance: @field ref, + unique int companion_object: @classorinterface ref +); + +kt_nullable_types( + unique int id: @kt_nullable_type, + int classid: @reftype ref +) + +kt_notnull_types( + unique int id: @kt_notnull_type, + int classid: @reftype ref +) + +kt_type_alias( + unique int id: @kt_type_alias, + string name: string ref, + int kttypeid: @kt_type ref +) + +@kt_type = @kt_nullable_type | @kt_notnull_type + +isInterface( + unique int id: @classorinterface ref +); + +isRecord( + unique int id: @classorinterface ref +); + +fielddecls( + unique int id: @fielddecl, + int parentid: @reftype ref +); + +#keyset[fieldId] #keyset[fieldDeclId,pos] +fieldDeclaredIn( + int fieldId: @field ref, + int fieldDeclId: @fielddecl ref, + int pos: int ref +); + +fields( + unique int id: @field, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @reftype ref +); + +fieldsKotlinType( + unique int id: @field ref, + int kttypeid: @kt_type ref +); + +constrs( + unique int id: @constructor, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @constructor ref +); + +constrsKotlinType( + unique int id: @constructor ref, + int kttypeid: @kt_type ref +); + +methods( + unique int id: @method, + string nodeName: string ref, + string signature: string ref, + int typeid: @type ref, + int parentid: @reftype ref, + int sourceid: @method ref +); + +methodsKotlinType( + unique int id: @method ref, + int kttypeid: @kt_type ref +); + +#keyset[parentid,pos] +params( + unique int id: @param, + int typeid: @type ref, + int pos: int ref, + int parentid: @callable ref, + int sourceid: @param ref +); + +paramsKotlinType( + unique int id: @param ref, + int kttypeid: @kt_type ref +); + +paramName( + unique int id: @param ref, + string nodeName: string ref +); + +isVarargsParam( + int param: @param ref +); + +exceptions( + unique int id: @exception, + int typeid: @type ref, + int parentid: @callable ref +); + +isAnnotType( + int interfaceid: @classorinterface ref +); + +isAnnotElem( + int methodid: @method ref +); + +annotValue( + int parentid: @annotation ref, + int id2: @method ref, + unique int value: @expr ref +); + +isEnumType( + int classid: @classorinterface ref +); + +isEnumConst( + int fieldid: @field ref +); + +#keyset[parentid,pos] +typeVars( + unique int id: @typevariable, + string nodeName: string ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +wildcards( + unique int id: @wildcard, + string nodeName: string ref, + int kind: int ref +); + +#keyset[parentid,pos] +typeBounds( + unique int id: @typebound, + int typeid: @reftype ref, + int pos: int ref, + int parentid: @boundedtype ref +); + +#keyset[parentid,pos] +typeArgs( + int argumentid: @reftype ref, + int pos: int ref, + int parentid: @classorinterfaceorcallable ref +); + +isParameterized( + int memberid: @member ref +); + +isRaw( + int memberid: @member ref +); + +#keyset[classid] #keyset[parent] +isAnonymClass( + int classid: @classorinterface ref, + int parent: @classinstancexpr ref +); + +#keyset[typeid] #keyset[parent] +isLocalClassOrInterface( + int typeid: @classorinterface ref, + int parent: @localtypedeclstmt ref +); + +isDefConstr( + int constructorid: @constructor ref +); + +#keyset[exprId] +lambdaKind( + int exprId: @lambdaexpr ref, + int bodyKind: int ref +); + +isCanonicalConstr( + int constructorid: @constructor ref +); + +arrays( + unique int id: @array, + string nodeName: string ref, + int elementtypeid: @type ref, + int dimension: int ref, + int componenttypeid: @type ref +); + +enclInReftype( + unique int child: @reftype ref, + int parent: @reftype ref +); + +extendsReftype( + int id1: @reftype ref, + int id2: @classorinterface ref +); + +implInterface( + int id1: @classorarray ref, + int id2: @classorinterface ref +); + +permits( + int id1: @classorinterface ref, + int id2: @classorinterface ref +); + +hasModifier( + int id1: @modifiable ref, + int id2: @modifier ref +); + +imports( + unique int id: @import, + int holder: @classorinterfaceorpackage ref, + string name: string ref, + int kind: int ref +); + +#keyset[parent,idx] +stmts( + unique int id: @stmt, + int kind: int ref, + int parent: @stmtparent ref, + int idx: int ref, + int bodydecl: @callable ref +); + +@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr; + +case @stmt.kind of + 0 = @block +| 1 = @ifstmt +| 2 = @forstmt +| 3 = @enhancedforstmt +| 4 = @whilestmt +| 5 = @dostmt +| 6 = @trystmt +| 7 = @switchstmt +| 8 = @synchronizedstmt +| 9 = @returnstmt +| 10 = @throwstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @emptystmt +| 14 = @exprstmt +| 15 = @labeledstmt +| 16 = @assertstmt +| 17 = @localvariabledeclstmt +| 18 = @localtypedeclstmt +| 19 = @constructorinvocationstmt +| 20 = @superconstructorinvocationstmt +| 21 = @case +| 22 = @catchclause +| 23 = @yieldstmt +| 24 = @errorstmt +| 25 = @whenbranch +; + +#keyset[parent,idx] +exprs( + unique int id: @expr, + int kind: int ref, + int typeid: @type ref, + int parent: @exprparent ref, + int idx: int ref +); + +exprsKotlinType( + unique int id: @expr ref, + int kttypeid: @kt_type ref +); + +callableEnclosingExpr( + unique int id: @expr ref, + int callable_id: @callable ref +); + +statementEnclosingExpr( + unique int id: @expr ref, + int statement_id: @stmt ref +); + +isParenthesized( + unique int id: @expr ref, + int parentheses: int ref +); + +case @expr.kind of + 1 = @arrayaccess +| 2 = @arraycreationexpr +| 3 = @arrayinit +| 4 = @assignexpr +| 5 = @assignaddexpr +| 6 = @assignsubexpr +| 7 = @assignmulexpr +| 8 = @assigndivexpr +| 9 = @assignremexpr +| 10 = @assignandexpr +| 11 = @assignorexpr +| 12 = @assignxorexpr +| 13 = @assignlshiftexpr +| 14 = @assignrshiftexpr +| 15 = @assignurshiftexpr +| 16 = @booleanliteral +| 17 = @integerliteral +| 18 = @longliteral +| 19 = @floatingpointliteral +| 20 = @doubleliteral +| 21 = @characterliteral +| 22 = @stringliteral +| 23 = @nullliteral +| 24 = @mulexpr +| 25 = @divexpr +| 26 = @remexpr +| 27 = @addexpr +| 28 = @subexpr +| 29 = @lshiftexpr +| 30 = @rshiftexpr +| 31 = @urshiftexpr +| 32 = @andbitexpr +| 33 = @orbitexpr +| 34 = @xorbitexpr +| 35 = @andlogicalexpr +| 36 = @orlogicalexpr +| 37 = @ltexpr +| 38 = @gtexpr +| 39 = @leexpr +| 40 = @geexpr +| 41 = @eqexpr +| 42 = @neexpr +| 43 = @postincexpr +| 44 = @postdecexpr +| 45 = @preincexpr +| 46 = @predecexpr +| 47 = @minusexpr +| 48 = @plusexpr +| 49 = @bitnotexpr +| 50 = @lognotexpr +| 51 = @castexpr +| 52 = @newexpr +| 53 = @conditionalexpr +| 54 = @parexpr // deprecated +| 55 = @instanceofexpr +| 56 = @localvariabledeclexpr +| 57 = @typeliteral +| 58 = @thisaccess +| 59 = @superaccess +| 60 = @varaccess +| 61 = @methodaccess +| 62 = @unannotatedtypeaccess +| 63 = @arraytypeaccess +| 64 = @packageaccess +| 65 = @wildcardtypeaccess +| 66 = @declannotation +| 67 = @uniontypeaccess +| 68 = @lambdaexpr +| 69 = @memberref +| 70 = @annotatedtypeaccess +| 71 = @typeannotation +| 72 = @intersectiontypeaccess +| 73 = @switchexpr +| 74 = @errorexpr +| 75 = @whenexpr +| 76 = @getclassexpr +| 77 = @safecastexpr +| 78 = @implicitcastexpr +| 79 = @implicitnotnullexpr +| 80 = @implicitcoerciontounitexpr +| 81 = @notinstanceofexpr +| 82 = @stmtexpr +| 83 = @stringtemplateexpr +| 84 = @notnullexpr +| 85 = @unsafecoerceexpr +| 86 = @valueeqexpr +| 87 = @valueneexpr +| 88 = @propertyref +| 89 = @recordpatternexpr +; + +/** Holds if this `when` expression was written as an `if` expression. */ +when_if(unique int id: @whenexpr ref); + +/** Holds if this `when` branch was written as an `else` branch. */ +when_branch_else(unique int id: @whenbranch ref); + +@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref + +@annotation = @declannotation | @typeannotation +@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess + +@assignment = @assignexpr + | @assignop; + +@unaryassignment = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr; + +@assignop = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + | @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + | @assignurshiftexpr; + +@literal = @booleanliteral + | @integerliteral + | @longliteral + | @floatingpointliteral + | @doubleliteral + | @characterliteral + | @stringliteral + | @nullliteral; + +@binaryexpr = @mulexpr + | @divexpr + | @remexpr + | @addexpr + | @subexpr + | @lshiftexpr + | @rshiftexpr + | @urshiftexpr + | @andbitexpr + | @orbitexpr + | @xorbitexpr + | @andlogicalexpr + | @orlogicalexpr + | @ltexpr + | @gtexpr + | @leexpr + | @geexpr + | @eqexpr + | @neexpr + | @valueeqexpr + | @valueneexpr; + +@unaryexpr = @postincexpr + | @postdecexpr + | @preincexpr + | @predecexpr + | @minusexpr + | @plusexpr + | @bitnotexpr + | @lognotexpr + | @notnullexpr; + +@caller = @classinstancexpr + | @methodaccess + | @constructorinvocationstmt + | @superconstructorinvocationstmt; + +callableBinding( + unique int callerid: @caller ref, + int callee: @callable ref +); + +memberRefBinding( + unique int id: @expr ref, + int callable: @callable ref +); + +propertyRefGetBinding( + unique int id: @expr ref, + int getter: @callable ref +); + +propertyRefFieldBinding( + unique int id: @expr ref, + int field: @field ref +); + +propertyRefSetBinding( + unique int id: @expr ref, + int setter: @callable ref +); + +@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @classorinterface | @param | @localvar | @typevariable; + +variableBinding( + unique int expr: @varaccess ref, + int variable: @variable ref +); + +@variable = @localscopevariable | @field; + +@localscopevariable = @localvar | @param; + +localvars( + unique int id: @localvar, + string nodeName: string ref, + int typeid: @type ref, + int parentid: @localvariabledeclexpr ref +); + +localvarsKotlinType( + unique int id: @localvar ref, + int kttypeid: @kt_type ref +); + +@namedexprorstmt = @breakstmt + | @continuestmt + | @labeledstmt + | @literal; + +namestrings( + string name: string ref, + string value: string ref, + unique int parent: @namedexprorstmt ref +); + +/* + * Modules + */ + +#keyset[name] +modules( + unique int id: @module, + string name: string ref +); + +isOpen( + int id: @module ref +); + +#keyset[fileId] +cumodule( + int fileId: @file ref, + int moduleId: @module ref +); + +@directive = @requires + | @exports + | @opens + | @uses + | @provides + +#keyset[directive] +directives( + int id: @module ref, + int directive: @directive ref +); + +requires( + unique int id: @requires, + int target: @module ref +); + +isTransitive( + int id: @requires ref +); + +isStatic( + int id: @requires ref +); + +exports( + unique int id: @exports, + int target: @package ref +); + +exportsTo( + int id: @exports ref, + int target: @module ref +); + +opens( + unique int id: @opens, + int target: @package ref +); + +opensTo( + int id: @opens ref, + int target: @module ref +); + +uses( + unique int id: @uses, + string serviceInterface: string ref +); + +provides( + unique int id: @provides, + string serviceInterface: string ref +); + +providesWith( + int id: @provides ref, + string serviceImpl: string ref +); + +isNullDefaultCase( + int id: @case ref +); + +/* + * Javadoc + */ + +javadoc( + unique int id: @javadoc +); + +isNormalComment( + int commentid : @javadoc ref +); + +isEolComment( + int commentid : @javadoc ref +); + +hasJavadoc( + int documentableid: @member ref, + int javadocid: @javadoc ref +); + +#keyset[parentid,idx] +javadocTag( + unique int id: @javadocTag, + string name: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +#keyset[parentid,idx] +javadocText( + unique int id: @javadocText, + string text: string ref, + int parentid: @javadocParent ref, + int idx: int ref +); + +@javadocParent = @javadoc | @javadocTag; +@javadocElement = @javadocTag | @javadocText; + +@classorinterfaceorpackage = @classorinterface | @package; +@classorinterfaceorcallable = @classorinterface | @callable; +@boundedtype = @typevariable | @wildcard; +@reftype = @classorinterface | @array | @boundedtype | @errortype; +@classorarray = @classorinterface | @array; +@type = @primitive | @reftype; +@callable = @method | @constructor; + +/** A program element that has a name. */ +@element = @package | @modifier | @annotation | @errortype | + @locatableElement; + +@locatableElement = @file | @primitive | @classorinterface | @method | @constructor | @param | @exception | @field | + @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias | + @kt_property; + +@modifiable = @member_modifiable| @param | @localvar | @typevariable; + +@member_modifiable = @classorinterface | @method | @constructor | @field | @kt_property; + +@member = @method | @constructor | @field | @reftype ; + +/** A program element that has a location. */ +@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment | + @locatableElement; + +@top = @element | @locatable | @folder; + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/* + * configuration files with key value pairs + */ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +ktComments( + unique int id: @ktcomment, + int kind: int ref, + string text : string ref +) + +ktCommentSections( + unique int id: @ktcommentsection, + int comment: @ktcomment ref, + string content : string ref +) + +ktCommentSectionNames( + unique int id: @ktcommentsection ref, + string name : string ref +) + +ktCommentSectionSubjectNames( + unique int id: @ktcommentsection ref, + string subjectname : string ref +) + +#keyset[id, owner] +ktCommentOwners( + int id: @ktcomment ref, + int owner: @top ref +) + +ktExtensionFunctions( + unique int id: @method ref, + int typeid: @type ref, + int kttypeid: @kt_type ref +) + +ktProperties( + unique int id: @kt_property, + string nodeName: string ref +) + +ktPropertyGetters( + unique int id: @kt_property ref, + int getter: @method ref +) + +ktPropertySetters( + unique int id: @kt_property ref, + int setter: @method ref +) + +ktPropertyBackingFields( + unique int id: @kt_property ref, + int backingField: @field ref +) + +ktSyntheticBody( + unique int id: @callable ref, + int kind: int ref + // 1: ENUM_VALUES + // 2: ENUM_VALUEOF + // 3: ENUM_ENTRIES +) + +ktLocalFunction( + unique int id: @method ref +) + +ktInitializerAssignment( + unique int id: @assignexpr ref +) + +ktPropertyDelegates( + unique int id: @kt_property ref, + unique int variableId: @variable ref +) + +/** + * If `id` is a compiler generated element, then the kind indicates the + * reason that the compiler generated it. + * See `Element.compilerGeneratedReason()` for an explanation of what + * each `kind` means. + */ +compiler_generated( + unique int id: @element ref, + int kind: int ref +) + +ktFunctionOriginalNames( + unique int id: @method ref, + string name: string ref +) + +ktDataClasses( + unique int id: @classorinterface ref +) diff --git a/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/upgrade.properties b/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/upgrade.properties new file mode 100644 index 000000000000..3199458aa6b3 --- /dev/null +++ b/java/ql/lib/upgrades/38d02c063878000356a3e5db49d5a6a8f38efe24/upgrade.properties @@ -0,0 +1,2 @@ +description: Add overlayChangedFiles relation +compatibility: full diff --git a/java/ql/lib/utils/test/internal/InlineExpectationsTestImpl.qll b/java/ql/lib/utils/test/internal/InlineExpectationsTestImpl.qll index cd62fdb757e0..446b6a544c34 100644 --- a/java/ql/lib/utils/test/internal/InlineExpectationsTestImpl.qll +++ b/java/ql/lib/utils/test/internal/InlineExpectationsTestImpl.qll @@ -1,3 +1,6 @@ +overlay[local?] +module; + private import java as J private import codeql.util.test.InlineExpectationsTest diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index fe2be06be35d..9d630f16f4bd 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.6.2 + +No user-facing changes. + +## 1.6.1 + +### Minor Analysis Improvements + +* Java analysis of guards has been switched to use the new and improved shared guards library. This improves precision of a number of queries, in particular `java/dereferenced-value-may-be-null`, which now has fewer false positives, and `java/useless-null-check` and `java/constant-comparison`, which gain additional true positives. + ## 1.6.0 ### Query Metadata Changes diff --git a/java/ql/src/Language Abuse/LabelInSwitch.md b/java/ql/src/Language Abuse/LabelInSwitch.md new file mode 100644 index 000000000000..e871e68abebf --- /dev/null +++ b/java/ql/src/Language Abuse/LabelInSwitch.md @@ -0,0 +1,33 @@ +## Overview + +Java allows to freely mix `case` labels and ordinary statement labels in the body of +a `switch` statement. However, this is confusing to read and may be the result of a typo. + +## Recommendation + +Examine the non-`case` labels to see whether they were meant to be `case` labels. If not, consider placing the non-`case` label headed code into a function, and use a function call inline in the `switch` body instead. + +## Example + +```java +public class Test { + void test_noncase_label_in_switch(int p) { + switch (p) { + case 1: // Compliant + case2: // Non-compliant, likely a typo + break; + case 3: + notcaselabel: // Non-compliant, confusing to read + for (;;) { + break notcaselabel; + } + } + } +} +``` + +In the example, `case2` is most likely a typo and should be fixed. For the intentional `notcaselabel`, placing the labelled code into a function and then calling that function is more readable. + +## References + +CodeQL query help for JavaScript and TypeScript - [Non-case label in switch statement](https://codeql.github.com/codeql-query-help/javascript/js-label-in-switch/). diff --git a/java/ql/src/Language Abuse/LabelInSwitch.ql b/java/ql/src/Language Abuse/LabelInSwitch.ql new file mode 100644 index 000000000000..56245df80331 --- /dev/null +++ b/java/ql/src/Language Abuse/LabelInSwitch.ql @@ -0,0 +1,25 @@ +/** + * @id java/label-in-switch + * @name Non-case label in switch statement + * @description A non-case label appearing in a switch statement + * is confusing to read or may even indicate a bug. + * @previous-id java/label-in-case + * @kind problem + * @precision very-high + * @problem.severity recommendation + * @tags quality + * maintainability + * readability + */ + +import java + +from LabeledStmt l, SwitchStmt s, string alert +where + l = s.getAStmt+() and + if exists(JumpStmt jump | jump.getTargetLabel() = l) + then alert = "Confusing non-case label in switch statement." + else + alert = + "Possibly erroneous non-case label in switch statement. The case keyword might be missing." +select l, alert diff --git a/java/ql/src/Language Abuse/TypeVariableHidesType.ql b/java/ql/src/Language Abuse/TypeVariableHidesType.ql index 81da0e9703e6..42d0a7bea2bf 100644 --- a/java/ql/src/Language Abuse/TypeVariableHidesType.ql +++ b/java/ql/src/Language Abuse/TypeVariableHidesType.ql @@ -6,10 +6,10 @@ * @problem.severity warning * @precision medium * @id java/type-variable-hides-type - * @tags reliability + * @tags quality + * maintainability * readability * types - * quality */ import java diff --git a/java/ql/src/Language Abuse/UselessNullCheck.ql b/java/ql/src/Language Abuse/UselessNullCheck.ql index 1ad1c4c8e1e2..92041ca9e4a2 100644 --- a/java/ql/src/Language Abuse/UselessNullCheck.ql +++ b/java/ql/src/Language Abuse/UselessNullCheck.ql @@ -18,10 +18,10 @@ import semmle.code.java.controlflow.Guards from Expr guard, Expr e, Expr reason, string msg where - guard = basicNullGuard(e, _, true) and + guardSuggestsExprMaybeNull(guard, e) and e = clearlyNotNullExpr(reason) and ( - if reason instanceof Guard + if reason = directNullGuard(_, _, _) then msg = "This check is useless. $@ cannot be null at this check, since it is guarded by $@." else if reason != e diff --git a/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql b/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql index ecd83e39719b..845aae01a3e8 100644 --- a/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql +++ b/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql @@ -18,6 +18,15 @@ import semmle.code.java.dataflow.SSA import semmle.code.java.dataflow.RangeUtils import semmle.code.java.dataflow.RangeAnalysis +pragma[nomagic] +predicate ssaArrayLengthBound(SsaVariable arr, Bound b) { + exists(FieldAccess len | + len.getField() instanceof ArrayLengthField and + len.getQualifier() = arr.getAUse() and + b.getExpr() = len + ) +} + /** * Holds if the index expression of `aa` is less than or equal to the array length plus `k`. */ @@ -27,12 +36,8 @@ predicate boundedArrayAccess(ArrayAccess aa, int k) { aa.getArray() = arr.getAUse() and bounded(index, b, delta, true, _) | - exists(FieldAccess len | - len.getField() instanceof ArrayLengthField and - len.getQualifier() = arr.getAUse() and - b.getExpr() = len and - k = delta - ) + ssaArrayLengthBound(arr, b) and + k = delta or exists(ArrayCreationExpr arraycreation | arraycreation = getArrayDef(arr) | k = delta and diff --git a/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql b/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql index d1a398d1322c..497aa10cb4de 100644 --- a/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql +++ b/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql @@ -103,8 +103,8 @@ class MismatchedContainerAccess extends MethodCall { | this.getCallee() .getDeclaringType() - .getASourceSupertype*() .getSourceDeclaration() + .getASourceSupertype*() .hasQualifiedName(package, type) and this.getCallee().getParameter(i).getType() instanceof TypeObject ) @@ -119,7 +119,7 @@ class MismatchedContainerAccess extends MethodCall { containerAccess(package, type, p, this.getCallee().getSignature(), i) | t = this.getCallee().getDeclaringType() and - t.getASourceSupertype*().getSourceDeclaration() = g and + t.getSourceDeclaration().getASourceSupertype*() = g and g.hasQualifiedName(package, type) and indirectlyInstantiates(t, g, p, result) ) diff --git a/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.qhelp b/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.qhelp index b6cb3a730876..a97c17c13188 100644 --- a/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.qhelp +++ b/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.qhelp @@ -49,6 +49,15 @@ continue while the child thread is waiting, so that "Main thread activity" is pr
  2. The Java Tutorials: Defining and Starting a Thread.
  3. +
  4. + SEI CERT Oracle Coding Standard for Java: THI00-J. Do not invoke Thread.run(). +
  5. +
  6. + Java API Specification: Thread. +
  7. +
  8. + Java API Specification: Runnable. +
  9. diff --git a/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql b/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql index a6ff029557c1..9e4e1dd47143 100644 --- a/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql +++ b/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql @@ -6,6 +6,7 @@ * @problem.severity recommendation * @precision high * @id java/call-to-thread-run + * @previous-id java/run-method-called-on-java-lang-thread-directly * @tags quality * reliability * concurrency diff --git a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md new file mode 100644 index 000000000000..056f51386d0a --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md @@ -0,0 +1,24 @@ +## Overview + +According to the Java documentation on `ScheduledThreadPoolExecutor`, it is not a good idea to set `corePoolSize` to zero, since doing so instructs the executor to keep 0 threads in its pool and the executor will serve no purpose. + +## Recommendation + +Set the `ScheduledThreadPoolExecutor` to have 1 or more threads in its thread pool and use the class's other methods to create a thread execution schedule. + +## Example + +```java +public class Test { + void f() { + int i = 0; + ScheduledThreadPoolExecutor s = new ScheduledThreadPoolExecutor(1); // COMPLIANT + ScheduledThreadPoolExecutor s1 = new ScheduledThreadPoolExecutor(0); // NON_COMPLIANT + s.setCorePoolSize(0); // NON_COMPLIANT + s.setCorePoolSize(i); // NON_COMPLIANT + } +} +``` + +## References +- [ScheduledThreadPoolExecutor](https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html) diff --git a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql new file mode 100644 index 000000000000..0b8acb5a0888 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql @@ -0,0 +1,36 @@ +/** + * @id java/java-util-concurrent-scheduledthreadpoolexecutor + * @name Zero threads set for `java.util.concurrent.ScheduledThreadPoolExecutor` + * @description Setting `java.util.concurrent.ScheduledThreadPoolExecutor` to have 0 threads serves + * no purpose and may indicate programmer error. + * @kind problem + * @precision very-high + * @problem.severity recommendation + * @previous-id java/javautilconcurrentscheduledthreadpoolexecutor + * @tags quality + * reliability + * correctness + * concurrency + */ + +import java +import semmle.code.java.dataflow.DataFlow + +/** + * A `Call` that has the ability to set or modify the `corePoolSize` of the `java.util.concurrent.ScheduledThreadPoolExecutor` type. + */ +class Sink extends Call { + Sink() { + this.getCallee() + .hasQualifiedName("java.util.concurrent", "ThreadPoolExecutor", "setCorePoolSize") or + this.getCallee() + .hasQualifiedName("java.util.concurrent", "ScheduledThreadPoolExecutor", + "ScheduledThreadPoolExecutor") + } +} + +from IntegerLiteral zero, Sink set +where + DataFlow::localFlow(DataFlow::exprNode(zero), DataFlow::exprNode(set.getArgument(0))) and + zero.getIntValue() = 0 +select set, "ScheduledThreadPoolExecutor.corePoolSize is set to have 0 threads." diff --git a/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql b/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql index eb5c2d380c65..b9a0229b60ff 100644 --- a/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql +++ b/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql @@ -15,14 +15,34 @@ import java +pragma[nomagic] +predicate mayThrow(Stmt s, RefType rt) { + s.(ThrowStmt).getExpr().getType() = rt + or + exists(Call call | + call.getEnclosingStmt() = s and + call.getCallee().getAnException().getType() = rt + ) +} + +pragma[nomagic] +predicate caughtBy(TryStmt try, Stmt s, RefType rt) { + mayThrow(s, rt) and + s.getEnclosingStmt+() = try.getBlock() and + caughtType(try, _).hasSubtype*(rt) +} + +pragma[nomagic] +predicate nestedTry(TryStmt outer, TryStmt inner) { inner.getEnclosingStmt+() = outer.getBlock() } + /** * Exceptions of type `rt` thrown from within statement `s` are caught by an inner try block * and are therefore not propagated to the outer try block `t`. */ private predicate caughtInside(TryStmt t, Stmt s, RefType rt) { - exists(TryStmt innerTry | innerTry.getEnclosingStmt+() = t.getBlock() | - s.getEnclosingStmt+() = innerTry.getBlock() and - caughtType(innerTry, _).hasSubtype*(rt) + exists(TryStmt innerTry | + nestedTry(t, innerTry) and + caughtBy(innerTry, s, rt) ) } diff --git a/java/ql/src/Performance/StringReplaceAllWithNonRegex.md b/java/ql/src/Performance/StringReplaceAllWithNonRegex.md index c7bb609b2c02..7a16a8553fb1 100644 --- a/java/ql/src/Performance/StringReplaceAllWithNonRegex.md +++ b/java/ql/src/Performance/StringReplaceAllWithNonRegex.md @@ -1,7 +1,3 @@ -# Use of `String#replaceAll` with a first argument which is not a regular expression - -Using `String#replaceAll` is less performant than `String#replace` when the first argument is not a regular expression. - ## Overview The `String#replaceAll` method is designed to work with regular expressions as its first parameter. When you use a simple string without any regex patterns (like special characters or syntax), it's more efficient to use `String#replace` instead. This is because `replaceAll` has to compile the input as a regular expression first, which adds unnecessary overhead when you are just replacing literal text. diff --git a/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql b/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql index fb7a40052f0b..9257808dce49 100644 --- a/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql +++ b/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql @@ -16,6 +16,7 @@ import java import semmle.code.java.dataflow.FlowSources +overlay[local?] abstract private class InsecureNettyObjectCreation extends ClassInstanceExpr { int vulnerableArgumentIndex; @@ -27,6 +28,7 @@ abstract private class InsecureNettyObjectCreation extends ClassInstanceExpr { abstract string splittingType(); } +overlay[local?] abstract private class RequestOrResponseSplittingInsecureNettyObjectCreation extends InsecureNettyObjectCreation { override string splittingType() { result = "Request splitting or response splitting" } @@ -35,6 +37,7 @@ abstract private class RequestOrResponseSplittingInsecureNettyObjectCreation ext /** * Request splitting can allowing an attacker to inject/smuggle an additional HTTP request into the socket connection. */ +overlay[local?] abstract private class RequestSplittingInsecureNettyObjectCreation extends InsecureNettyObjectCreation { override string splittingType() { result = "Request splitting" } @@ -43,11 +46,13 @@ abstract private class RequestSplittingInsecureNettyObjectCreation extends Insec /** * Response splitting can lead to HTTP vulnerabilities like XSS and cache poisoning. */ +overlay[local?] abstract private class ResponseSplittingInsecureNettyObjectCreation extends InsecureNettyObjectCreation { override string splittingType() { result = "Response splitting" } } +overlay[local?] private class InsecureDefaultHttpHeadersClassInstantiation extends RequestOrResponseSplittingInsecureNettyObjectCreation { InsecureDefaultHttpHeadersClassInstantiation() { @@ -58,6 +63,7 @@ private class InsecureDefaultHttpHeadersClassInstantiation extends RequestOrResp } } +overlay[local?] private class InsecureDefaultHttpResponseClassInstantiation extends ResponseSplittingInsecureNettyObjectCreation { InsecureDefaultHttpResponseClassInstantiation() { @@ -66,6 +72,7 @@ private class InsecureDefaultHttpResponseClassInstantiation extends ResponseSpli } } +overlay[local?] private class InsecureDefaultHttpRequestClassInstantiation extends RequestSplittingInsecureNettyObjectCreation { InsecureDefaultHttpRequestClassInstantiation() { @@ -74,6 +81,7 @@ private class InsecureDefaultHttpRequestClassInstantiation extends RequestSplitt } } +overlay[local?] private class InsecureDefaultFullHttpResponseClassInstantiation extends ResponseSplittingInsecureNettyObjectCreation { InsecureDefaultFullHttpResponseClassInstantiation() { @@ -83,6 +91,7 @@ private class InsecureDefaultFullHttpResponseClassInstantiation extends Response } } +overlay[local?] private class InsecureDefaultFullHttpRequestClassInstantiation extends RequestSplittingInsecureNettyObjectCreation { InsecureDefaultFullHttpRequestClassInstantiation() { diff --git a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql index bd5cc2a5b76f..45767185dfd2 100644 --- a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql +++ b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql @@ -97,6 +97,10 @@ module WebViewDisallowContentAccessConfig implements DataFlow::StateConfigSig { state instanceof IsSettings and node instanceof WebSettingsDisallowContentAccessSink } + + predicate observeDiffInformedIncrementalMode() { + none() // only used negatively + } } module WebViewDisallowContentAccessFlow = diff --git a/java/ql/src/Security/CWE/CWE-352/CsrfUnprotectedRequestType.ql b/java/ql/src/Security/CWE/CWE-352/CsrfUnprotectedRequestType.ql index e338cb84c005..cf5c0b385ccf 100644 --- a/java/ql/src/Security/CWE/CWE-352/CsrfUnprotectedRequestType.ql +++ b/java/ql/src/Security/CWE/CWE-352/CsrfUnprotectedRequestType.ql @@ -15,7 +15,7 @@ import java import semmle.code.java.security.CsrfUnprotectedRequestTypeQuery -query predicate edges(CallPathNode pred, CallPathNode succ) { CallGraph::edges(pred, succ) } +query predicate edges(CallPathNode pred, CallPathNode succ) { relevantEdge(pred, succ) } from CallPathNode source, CallPathNode sink where unprotectedStateChange(source, sink) diff --git a/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp b/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp index 087a873dfc77..bf7205d535ff 100644 --- a/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp +++ b/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.qhelp @@ -64,8 +64,8 @@ Recommendations specific to particular frameworks supported by this query:

    SnakeYAML - org.yaml:snakeyaml

      -
    • Secure by Default: No
    • -
    • Recommendation: Pass an instance of org.yaml.snakeyaml.constructor.SafeConstructor to org.yaml.snakeyaml.Yaml's constructor before using it to deserialize untrusted data.
    • +
    • Secure by Default: As of version 2.0.
    • +
    • Recommendation: For versions before 2.0, pass an instance of org.yaml.snakeyaml.constructor.SafeConstructor to org.yaml.snakeyaml.Yaml's constructor before using it to deserialize untrusted data.

    XML Decoder - Standard Java Library

    @@ -121,7 +121,7 @@ Alvaro Muñoz & Christian Schneider, RSAConference 2016:
  10. SnakeYaml documentation on deserialization: -SnakeYaml deserialization. +SnakeYaml deserialization (not updated for new behaviour in version 2.0).
  11. Hessian deserialization and related gadget chains: diff --git a/java/ql/src/Telemetry/ExtractorInformation.ql b/java/ql/src/Telemetry/ExtractorInformation.ql index ea6d6fc2d41e..f5bc8b426972 100644 --- a/java/ql/src/Telemetry/ExtractorInformation.ql +++ b/java/ql/src/Telemetry/ExtractorInformation.ql @@ -10,8 +10,6 @@ import java import semmle.code.java.Diagnostics import DatabaseQuality -extensible predicate extractorInformationSkipKey(string key); - predicate compilationInfo(string key, int value) { exists(Compilation c, string infoKey | key = infoKey + ": " + c.getInfo(infoKey) and diff --git a/java/ql/src/Telemetry/ExtractorInformation.yml b/java/ql/src/Telemetry/ExtractorInformation.yml index 74a7f99520b7..18e691a79e99 100644 --- a/java/ql/src/Telemetry/ExtractorInformation.yml +++ b/java/ql/src/Telemetry/ExtractorInformation.yml @@ -1,5 +1,5 @@ extensions: - addsTo: - pack: codeql/java-queries + pack: codeql/java-all extensible: extractorInformationSkipKey data: [] diff --git a/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.md b/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.md new file mode 100644 index 000000000000..5666971b331d --- /dev/null +++ b/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.md @@ -0,0 +1,54 @@ +## Overview + +Record types were introduced in Java 16 as a mechanism to provide simpler data handling as an alternative to regular classes. However, record classes behave slightly differently during serialization. Namely any `writeObject`, `readObject`, `readObjectNoData`, `writeExternal`, and `readExternal` methods and `serialPersistentFields` fields declared in these classes cannot be used to affect the serialization process of any `Record` data type. + +## Recommendation + +Some level of serialization customization is offered by the Java 16 Record feature. The `writeReplace` and `readResolve` methods in a record that implements `java.io.Serializable` can be used to replace the object to be serialized. Otherwise, no further customization of serialization of records is possible, and it is better to consider using a regular class implementing `java.io.Serializable` or `java.io.Externalizable` when customization is needed. + +## Example + +```java +record T1() implements Serializable { + + @Serial + private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0]; // NON_COMPLIANT + + @Serial + private void writeObject(ObjectOutputStream out) throws IOException {} // NON_COMPLIANT + + @Serial + private void readObject(ObjectOutputStream out) throws IOException {}// NON_COMPLIANT + + @Serial + private void readObjectNoData(ObjectOutputStream out) throws IOException { // NON_COMPLIANT + } +} + +record T2() implements Externalizable { + + @Override + public void writeExternal(ObjectOutput out) throws IOException { // NON_COMPLIANT + } + + @Override + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { // NON_COMPLIANT + } +} + +record T3() implements Serializable { + + public Object writeReplace(ObjectOutput out) throws ObjectStreamException { // COMPLIANT + return new Object(); + } + + public Object readResolve(ObjectInput in) throws ObjectStreamException { // COMPLIANT + return new Object(); + } +} +``` + +## References + +- Oracle Serialization Documentation: [Serialization of Records](https://docs.oracle.com/en/java/javase/16/docs/specs/serialization/serial-arch.html#serialization-of-records) +- Java Record: [Feature Specification](https://openjdk.org/jeps/395) diff --git a/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.ql b/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.ql new file mode 100644 index 000000000000..627f4cc669bb --- /dev/null +++ b/java/ql/src/Violations of Best Practice/Records/IgnoredSerializationMembersOfRecordClass.ql @@ -0,0 +1,24 @@ +/** + * @id java/ignored-serialization-member-of-record-class + * @name Ignored serialization member of record class + * @description Using certain members of a record class during serialization will result in + * those members being ignored. + * @previous-id java/useless-members-of-the-records-class + * @kind problem + * @precision very-high + * @problem.severity warning + * @tags quality + * reliability + * correctness + */ + +import java + +from Record record, Member m +where + record.getAMember() = m and + m.hasName([ + "writeObject", "readObject", "readObjectNoData", "writeExternal", "readExternal", + "serialPersistentFields" + ]) +select m, "Ignored serialization member found in record class $@.", record, record.getName() diff --git a/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.md b/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.md new file mode 100644 index 000000000000..827cf8a59f77 --- /dev/null +++ b/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.md @@ -0,0 +1,111 @@ +## Overview + +This query detects non-explicit control and whitespace characters in Java literals. +Such characters are often introduced accidentally and can be invisible or hard to recognize, leading to bugs when the actual contents of the string contain control characters. + +## Recommendation + +To avoid issues, use the encoded versions of control characters (e.g. ASCII `\n`, `\t`, or Unicode `U+000D`, `U+0009`). +This makes the literals (e.g. string literals) more readable, and also helps to make the surrounding code less error-prone and more maintainable. + +## Example + +The following examples illustrate good and bad code: + +Bad: + +```java +char tabulationChar = ' '; // Non compliant +String tabulationCharInsideString = "A B"; // Non compliant +String fooZeroWidthSpacebar = "foo​bar"; // Non compliant +``` + +Good: + +```java +char escapedTabulationChar = '\t'; +String escapedTabulationCharInsideString = "A\tB"; // Compliant +String fooUnicodeSpacebar = "foo\u0020bar"; // Compliant +String foo2Spacebar = "foo bar"; // Compliant +String foo3Spacebar = "foo bar"; // Compliant +``` + +## Implementation notes + +This query detects Java literals that contain reserved control characters and/or non-printable whitespace characters, such as: + +- Decimal and hexidecimal representations of ASCII control characters (code points 0-8, 11, 14-31, and 127). +- Invisible characters (e.g. zero-width space, zero-width joiner). +- Unicode C0 control codes, plus the delete character (U+007F), such as: + + | Escaped Unicode | ASCII Decimal | Description | + | --------------- | ------------- | ------------------------- | + | `\u0000` | 0 | null character | + | `\u0001` | 1 | start of heading | + | `\u0002` | 2 | start of text | + | `\u0003` | 3 | end of text | + | `\u0004` | 4 | end of transmission | + | `\u0005` | 5 | enquiry | + | `\u0006` | 6 | acknowledge | + | `\u0007` | 7 | bell | + | `\u0008` | 8 | backspace | + | `\u000B` | 11 | vertical tab | + | `\u000E` | 14 | shift out | + | `\u000F` | 15 | shift in | + | `\u0010` | 16 | data link escape | + | `\u0011` | 17 | device control 1 | + | `\u0012` | 18 | device control 2 | + | `\u0013` | 19 | device control 3 | + | `\u0014` | 20 | device control 4 | + | `\u0015` | 21 | negative acknowledge | + | `\u0016` | 22 | synchronous idle | + | `\u0017` | 23 | end of transmission block | + | `\u0018` | 24 | cancel | + | `\u0019` | 25 | end of medium | + | `\u001A` | 26 | substitute | + | `\u001B` | 27 | escape | + | `\u001C` | 28 | file separator | + | `\u001D` | 29 | group separator | + | `\u001E` | 30 | record separator | + | `\u001F` | 31 | unit separator | + | `\u007F` | 127 | delete | + +- Zero-width Unicode characters (e.g. zero-width space, zero-width joiner), such as: + + | Escaped Unicode | Description | + | --------------- | ------------------------- | + | `\u200B` | zero-width space | + | `\u200C` | zero-width non-joiner | + | `\u200D` | zero-width joiner | + | `\u2028` | line separator | + | `\u2029` | paragraph separator | + | `\u2060` | word joiner | + | `\uFEFF` | zero-width no-break space | + +The following list outlines the _**explicit exclusions from query scope**_: + +- any number of simple space characters (`U+0020`, ASCII 32). +- an escape character sequence (e.g. `\t`), or the Unicode equivalent (e.g. `\u0009`), for printable whitespace characters: + + | Character Sequence | Escaped Unicode | ASCII Decimal | Description | + | ------------------ | --------------- | ------------- | --------------- | + | `\t` | \u0009 | 9 | horizontal tab | + | `\n` | \u000A | 10 | line feed | + | `\f` | \u000C | 12 | form feed | + | `\r` | \u000D | 13 | carriage return | + | | \u0020 | 32 | space | + +- character literals (i.e. single quotes) containing control characters. +- literals defined within "likely" test methods, such as: + - JUnit test methods + - methods annotated with `@Test` + - methods of a class annotated with `@Test` + - methods with names containing "test" + +## References + +- Unicode: [Unicode Control Characters](https://www.unicode.org/charts/PDF/U0000.pdf). +- Wikipedia: [Unicode C0 control codes](https://en.wikipedia.org/wiki/C0_and_C1_control_codes). +- Wikipedia: [Unicode characters with property "WSpace=yes" or "White_Space=yes"](https://en.wikipedia.org/wiki/Unicode_character_property#Whitespace). +- Java API Specification: [Java String Literals](https://docs.oracle.com/javase/tutorial/java/data/characters.html). +- Java API Specification: [Java Class Charset](https://docs.oracle.com/javase/8/docs/api///?java/nio/charset/Charset.html). diff --git a/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.ql b/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.ql new file mode 100644 index 000000000000..81485f9cd941 --- /dev/null +++ b/java/ql/src/Violations of Best Practice/SpecialCharactersInLiterals/NonExplicitControlAndWhitespaceCharsInLiterals.ql @@ -0,0 +1,55 @@ +/** + * @id java/non-explicit-control-and-whitespace-chars-in-literals + * @name Non-explicit control and whitespace characters + * @description Non-explicit control and whitespace characters in literals make code more difficult + * to read and may lead to incorrect program behavior. + * @kind problem + * @precision very-high + * @problem.severity warning + * @tags quality + * correctness + * maintainability + * readability + */ + +import java + +/** + * A `Literal` that has a Unicode control character within its + * literal value (as returned by `getLiteral()` member predicate). + */ +class ReservedUnicodeInLiteral extends Literal { + private int indexStart; + + ReservedUnicodeInLiteral() { + not this instanceof CharacterLiteral and + this.getCompilationUnit().fromSource() and + exists(int codePoint | + this.getLiteral().codePointAt(indexStart) = codePoint and + ( + // Unicode C0 control characters + codePoint < 32 and not codePoint in [9, 10, 12, 13] + or + codePoint = 127 // delete control character + or + codePoint = 8203 // zero-width space + ) + ) + } + + /** Gets the starting index of the Unicode control sequence. */ + int getIndexStart() { result = indexStart } +} + +from ReservedUnicodeInLiteral literal, int charIndex, int codePoint +where + literal.getIndexStart() = charIndex and + literal.getLiteral().codePointAt(charIndex) = codePoint and + not literal.getEnclosingCallable() instanceof LikelyTestMethod and + // Kotlin extraction doesn't preserve the literal value so we can't distinguish + // between control characters and their escaped versions, so we exclude Kotlin + // to avoid false positives. + not literal.getFile().isKotlinSourceFile() +select literal, + "Literal value contains control or non-printable whitespace character(s) starting with Unicode code point " + + codePoint + " at index " + charIndex + "." diff --git a/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.md b/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.md index 385cbfb5cfe2..fa336a8c8229 100644 --- a/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.md +++ b/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.md @@ -8,6 +8,8 @@ Avoid calling `finalize()` in application code. Allow the JVM to determine a gar ## Example +### Incorrect Usage + ```java class LocalCache { private Collection cacheFiles = ...; @@ -19,9 +21,10 @@ void main() { // ... cache.finalize(); // NON_COMPLIANT } - ``` +### Correct Usage + ```java import java.lang.AutoCloseable; import java.lang.Override; @@ -43,10 +46,9 @@ void main() { // ... } } - ``` -# Implementation Notes +## Implementation Notes This rule ignores `super.finalize()` calls that occur within `finalize()` overrides since calling the superclass finalizer is required when overriding `finalize()`. Also, although overriding `finalize()` is not recommended, this rule only alerts on direct calls to `finalize()` and does not alert on method declarations overriding `finalize()`. diff --git a/java/ql/src/change-notes/released/1.6.1.md b/java/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 000000000000..0add62e535b6 --- /dev/null +++ b/java/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,5 @@ +## 1.6.1 + +### Minor Analysis Improvements + +* Java analysis of guards has been switched to use the new and improved shared guards library. This improves precision of a number of queries, in particular `java/dereferenced-value-may-be-null`, which now has fewer false positives, and `java/useless-null-check` and `java/constant-comparison`, which gain additional true positives. diff --git a/java/ql/src/change-notes/released/1.6.2.md b/java/ql/src/change-notes/released/1.6.2.md new file mode 100644 index 000000000000..bbe3747556fb --- /dev/null +++ b/java/ql/src/change-notes/released/1.6.2.md @@ -0,0 +1,3 @@ +## 1.6.2 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index c4f0b07d5336..5f5beb68311a 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.0 +lastReleaseVersion: 1.6.2 diff --git a/java/ql/src/codeql-suites/java-security-and-quality.qls b/java/ql/src/codeql-suites/java-security-and-quality.qls index 91751e6da1ba..011206a105c2 100644 --- a/java/ql/src/codeql-suites/java-security-and-quality.qls +++ b/java/ql/src/codeql-suites/java-security-and-quality.qls @@ -1,24 +1,7 @@ - description: Security-and-quality queries for Java - queries: . -- include: - kind: - - problem - - path-problem - precision: - - high - - very-high - tags contain: - - security -- include: - kind: - - problem - - path-problem - precision: medium - problem.severity: - - error - - warning - tags contain: - - security +- apply: security-and-frozen-quality-selectors.yml + from: codeql/suite-helpers - include: id: - java/abs-of-random @@ -143,22 +126,3 @@ - java/wrong-object-serialization-signature - java/wrong-readresolve-signature - java/wrong-swing-event-adapter-signature -- include: - kind: - - diagnostic -- include: - kind: - - metric - tags contain: - - summary -- exclude: - deprecated: // -- exclude: - query path: - - /^experimental\/.*/ - - Metrics/Summaries/FrameworkCoverage.ql - - /Diagnostics/Internal/.*/ -- exclude: - tags contain: - - modeleditor - - modelgenerator diff --git a/java/ql/src/experimental/Security/CWE/CWE-020/Log4jJndiInjection.ql b/java/ql/src/experimental/Security/CWE/CWE-020/Log4jJndiInjection.ql index 84c4bb01c126..3abaa7bdcfa3 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-020/Log4jJndiInjection.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-020/Log4jJndiInjection.ql @@ -22,6 +22,7 @@ import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.security.Sanitizers import Log4jInjectionFlow::PathGraph +overlay[local?] deprecated private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "log4j-injection" } } diff --git a/java/ql/src/experimental/Security/CWE/CWE-036/OpenStream.ql b/java/ql/src/experimental/Security/CWE/CWE-036/OpenStream.ql index c84037719da9..0929ca3eb805 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-036/OpenStream.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-036/OpenStream.ql @@ -17,6 +17,7 @@ import semmle.code.java.dataflow.FlowSources import semmle.code.java.dataflow.ExternalFlow import RemoteUrlToOpenStreamFlow::PathGraph +overlay[local?] deprecated private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "openstream-called-on-tainted-url" } } diff --git a/java/ql/src/experimental/Security/CWE/CWE-073/FilePathInjection.ql b/java/ql/src/experimental/Security/CWE/CWE-073/FilePathInjection.ql index c87097458520..11bb600ffe85 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-073/FilePathInjection.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-073/FilePathInjection.ql @@ -22,6 +22,7 @@ import semmle.code.java.security.PathSanitizer private import semmle.code.java.security.Sanitizers import InjectFilePathFlow::PathGraph +overlay[local?] deprecated private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "file-path-injection" } } diff --git a/java/ql/src/experimental/Security/CWE/CWE-078/ExecTainted.ql b/java/ql/src/experimental/Security/CWE/CWE-078/ExecTainted.ql index 08f7631af828..c13bc3bb245c 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-078/ExecTainted.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-078/ExecTainted.ql @@ -18,6 +18,7 @@ import semmle.code.java.security.CommandLineQuery import InputToArgumentToExecFlow::PathGraph private import semmle.code.java.dataflow.ExternalFlow +overlay[local?] deprecated private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "jsch-os-injection" } } diff --git a/java/ql/src/experimental/Security/CWE/CWE-200/AndroidWebResourceResponse.qll b/java/ql/src/experimental/Security/CWE/CWE-200/AndroidWebResourceResponse.qll index bd898df205a8..b988398e4c26 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-200/AndroidWebResourceResponse.qll +++ b/java/ql/src/experimental/Security/CWE/CWE-200/AndroidWebResourceResponse.qll @@ -7,6 +7,7 @@ private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSteps private import semmle.code.java.frameworks.android.WebView +overlay[local?] private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "android-web-resource-response" } } diff --git a/java/ql/src/experimental/Security/CWE/CWE-400/ThreadResourceAbuse.qll b/java/ql/src/experimental/Security/CWE/CWE-400/ThreadResourceAbuse.qll index ce6de1a06798..12ba6769f742 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-400/ThreadResourceAbuse.qll +++ b/java/ql/src/experimental/Security/CWE/CWE-400/ThreadResourceAbuse.qll @@ -8,6 +8,7 @@ import semmle.code.java.arithmetic.Overflow import semmle.code.java.dataflow.FlowSteps import semmle.code.java.controlflow.Guards +overlay[local?] private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "thread-resource-abuse" } } diff --git a/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll b/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll index 8fe997793f4a..f8e328902504 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll +++ b/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll @@ -9,6 +9,7 @@ import semmle.code.java.controlflow.Guards import semmle.code.java.security.UrlRedirect import Regex +overlay[local?] private class ActivateModels extends ActiveExperimentalModels { ActivateModels() { this = "permissive-dot-regex-query" } } diff --git a/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql b/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql index 096cfa822161..4c25f5d7beb8 100644 --- a/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql +++ b/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql @@ -7,7 +7,7 @@ import experimental.quantum.Language class AESGCMAlgorithmNode extends Crypto::KeyOperationAlgorithmNode { AESGCMAlgorithmNode() { this.getAlgorithmType() = Crypto::KeyOpAlg::TSymmetricCipher(Crypto::KeyOpAlg::AES()) and - this.getModeOfOperation().getModeType() = Crypto::GCM() + this.getModeOfOperation().getModeType() = Crypto::KeyOpAlg::GCM() } } diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql index 69643d92cd24..ab4a2e72e5ac 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql @@ -11,5 +11,5 @@ import java import experimental.quantum.Language from Crypto::KeyOperationAlgorithmNode a -where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm +where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithmType select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql index da3371a59b34..e8c839126177 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql @@ -13,6 +13,6 @@ import experimental.quantum.Language // TODO: should there be a cipher algorithm node? from Crypto::KeyOperationAlgorithmNode a where - a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm or - a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm + a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithmType or + a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithmType select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql index e4a8d3ff8679..7f2d550da74c 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql @@ -11,5 +11,5 @@ import java import experimental.quantum.Language from Crypto::KeyOperationAlgorithmNode a -where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm +where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithmType select a, a.getAlgorithmName() diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index dc34cd46a863..5ae9f650c360 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.6.0 +version: 1.6.2 groups: - java - queries diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected index 8fe0abd91c0e..116bde45f980 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected @@ -1,8 +1,12 @@ +| Test.kt:3:8:80:1 | Exceptional Exit | 0 | Test.kt:3:8:80:1 | Exceptional Exit | +| Test.kt:3:8:80:1 | Exit | 0 | Test.kt:3:8:80:1 | Exit | | Test.kt:3:8:80:1 | { ... } | 0 | Test.kt:3:8:80:1 | { ... } | | Test.kt:3:8:80:1 | { ... } | 1 | Test.kt:3:1:80:1 | super(...) | | Test.kt:3:8:80:1 | { ... } | 2 | Test.kt:3:8:80:1 | { ... } | -| Test.kt:3:8:80:1 | { ... } | 3 | Test.kt:3:8:80:1 | Exit | +| Test.kt:3:8:80:1 | { ... } | 3 | Test.kt:3:8:80:1 | Normal Exit | +| Test.kt:4:2:79:2 | Exceptional Exit | 0 | Test.kt:4:2:79:2 | Exceptional Exit | | Test.kt:4:2:79:2 | Exit | 0 | Test.kt:4:2:79:2 | Exit | +| Test.kt:4:2:79:2 | Normal Exit | 0 | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:4:13:79:2 | { ... } | 0 | Test.kt:4:13:79:2 | { ... } | | Test.kt:4:13:79:2 | { ... } | 1 | Test.kt:5:7:5:7 | var ...; | | Test.kt:4:13:79:2 | { ... } | 2 | Test.kt:5:16:5:16 | 0 | @@ -102,7 +106,9 @@ | Test.kt:43:3:43:3 | ; | 8 | Test.kt:77:3:77:8 | ...=... | | Test.kt:43:3:43:3 | ; | 9 | Test.kt:78:3:78:8 | INSTANCE | | Test.kt:43:3:43:3 | ; | 10 | Test.kt:78:3:78:8 | return ... | +| Test.kt:82:1:89:1 | Exceptional Exit | 0 | Test.kt:82:1:89:1 | Exceptional Exit | | Test.kt:82:1:89:1 | Exit | 0 | Test.kt:82:1:89:1 | Exit | +| Test.kt:82:1:89:1 | Normal Exit | 0 | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:82:21:89:1 | { ... } | 0 | Test.kt:82:21:89:1 | { ... } | | Test.kt:82:21:89:1 | { ... } | 1 | Test.kt:83:2:88:2 | try ... | | Test.kt:82:21:89:1 | { ... } | 2 | Test.kt:83:6:86:2 | { ... } | @@ -117,7 +123,9 @@ | Test.kt:86:4:88:2 | catch (...) | 2 | Test.kt:86:34:88:2 | { ... } | | Test.kt:86:4:88:2 | catch (...) | 3 | Test.kt:87:10:87:10 | 2 | | Test.kt:86:4:88:2 | catch (...) | 4 | Test.kt:87:3:87:10 | return ... | +| Test.kt:91:1:98:1 | Exceptional Exit | 0 | Test.kt:91:1:98:1 | Exceptional Exit | | Test.kt:91:1:98:1 | Exit | 0 | Test.kt:91:1:98:1 | Exit | +| Test.kt:91:1:98:1 | Normal Exit | 0 | Test.kt:91:1:98:1 | Normal Exit | | Test.kt:91:22:98:1 | { ... } | 0 | Test.kt:91:22:98:1 | { ... } | | Test.kt:91:22:98:1 | { ... } | 1 | Test.kt:92:2:97:2 | try ... | | Test.kt:91:22:98:1 | { ... } | 2 | Test.kt:92:6:95:2 | { ... } | @@ -133,6 +141,7 @@ | Test.kt:95:4:97:2 | catch (...) | 3 | Test.kt:96:10:96:10 | 2 | | Test.kt:95:4:97:2 | catch (...) | 4 | Test.kt:96:3:96:10 | return ... | | Test.kt:100:1:110:1 | Exit | 0 | Test.kt:100:1:110:1 | Exit | +| Test.kt:100:1:110:1 | Normal Exit | 0 | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:100:25:110:1 | { ... } | 0 | Test.kt:100:25:110:1 | { ... } | | Test.kt:100:25:110:1 | { ... } | 1 | Test.kt:101:5:103:5 | ; | | Test.kt:100:25:110:1 | { ... } | 2 | Test.kt:101:5:103:5 | when ... | @@ -147,6 +156,7 @@ | Test.kt:101:33:103:5 | { ... } | 0 | Test.kt:101:33:103:5 | { ... } | | Test.kt:101:33:103:5 | { ... } | 1 | Test.kt:102:15:102:25 | new Exception(...) | | Test.kt:101:33:103:5 | { ... } | 2 | Test.kt:102:9:102:25 | throw ... | +| Test.kt:101:33:103:5 | { ... } | 3 | Test.kt:100:1:110:1 | Exceptional Exit | | Test.kt:105:5:109:5 | ; | 0 | Test.kt:105:5:109:5 | ; | | Test.kt:105:5:109:5 | ; | 1 | Test.kt:105:5:109:5 | when ... | | Test.kt:105:5:109:5 | ; | 2 | Test.kt:105:9:107:5 | ... -> ... | @@ -165,7 +175,9 @@ | Test.kt:107:27:109:5 | { ... } | 1 | Test.kt:108:9:108:29 | ; | | Test.kt:107:27:109:5 | { ... } | 2 | Test.kt:108:17:108:28 | "y not null" | | Test.kt:107:27:109:5 | { ... } | 3 | Test.kt:108:9:108:29 | println(...) | +| Test.kt:112:1:116:1 | Exceptional Exit | 0 | Test.kt:112:1:116:1 | Exceptional Exit | | Test.kt:112:1:116:1 | Exit | 0 | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:1:116:1 | Normal Exit | 0 | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | 0 | Test.kt:112:32:116:1 | { ... } | | Test.kt:112:32:116:1 | { ... } | 1 | Test.kt:113:5:115:5 | ; | | Test.kt:112:32:116:1 | { ... } | 2 | Test.kt:113:5:115:5 | when ... | @@ -174,7 +186,9 @@ | Test.kt:112:32:116:1 | { ... } | 5 | Test.kt:113:9:113:9 | x | | Test.kt:113:14:113:14 | y | 0 | Test.kt:113:14:113:14 | y | | Test.kt:113:17:115:5 | { ... } | 0 | Test.kt:113:17:115:5 | { ... } | +| Test.kt:118:1:124:1 | Exceptional Exit | 0 | Test.kt:118:1:124:1 | Exceptional Exit | | Test.kt:118:1:124:1 | Exit | 0 | Test.kt:118:1:124:1 | Exit | +| Test.kt:118:1:124:1 | Normal Exit | 0 | Test.kt:118:1:124:1 | Normal Exit | | Test.kt:118:37:124:1 | { ... } | 0 | Test.kt:118:37:124:1 | { ... } | | Test.kt:118:37:124:1 | { ... } | 1 | Test.kt:119:2:123:12 | ; | | Test.kt:118:37:124:1 | { ... } | 2 | Test.kt:119:2:123:12 | when ... | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected index fa358b39a35e..6d0cb2bab712 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected @@ -1,4 +1,7 @@ +| Test.kt:3:8:80:1 | { ... } | Test.kt:3:8:80:1 | Exit | +| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit | | Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Exit | +| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } | | Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:3 | ; | @@ -10,6 +13,7 @@ | Test.kt:4:13:79:2 | { ... } | Test.kt:38:16:41:3 | { ... } | | Test.kt:4:13:79:2 | { ... } | Test.kt:43:3:43:3 | ; | | Test.kt:18:3:18:3 | ; | Test.kt:4:2:79:2 | Exit | +| Test.kt:18:3:18:3 | ; | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:18:3:18:3 | ; | Test.kt:21:3:24:9 | ... -> ... | | Test.kt:18:3:18:3 | ; | Test.kt:22:4:22:4 | ; | | Test.kt:18:3:18:3 | ; | Test.kt:30:15:33:3 | { ... } | @@ -27,13 +31,18 @@ | Test.kt:35:3:35:3 | ; | Test.kt:43:3:43:3 | ; | | Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } | | Test.kt:38:9:38:9 | x | Test.kt:43:3:43:3 | ; | +| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exit | +| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | +| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exit | +| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Normal Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | | Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Exit | +| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y | | Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | ; | @@ -41,15 +50,20 @@ | Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... | | Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } | | Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } | +| Test.kt:105:5:109:5 | ; | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | | Test.kt:105:5:109:5 | ; | Test.kt:107:27:109:5 | { ... } | | Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | +| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } | | Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } | +| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit | | Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Exit | +| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Normal Exit | | Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | ; | | Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... | | Test.kt:118:37:124:1 | { ... } | Test.kt:123:8:123:10 | { ... } | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected index 3768db75d7e8..cf5da7c83b77 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected @@ -1,10 +1,14 @@ +| Test.kt:3:8:80:1 | Exceptional Exit | Test.kt:3:8:80:1 | Exit | +| Test.kt:3:8:80:1 | { ... } | Test.kt:3:8:80:1 | Exit | +| Test.kt:4:2:79:2 | Exceptional Exit | Test.kt:4:2:79:2 | Exit | +| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } | | Test.kt:11:3:16:3 | ... -> ... | Test.kt:18:3:18:3 | ; | | Test.kt:11:14:14:3 | { ... } | Test.kt:18:3:18:3 | ; | | Test.kt:18:3:18:3 | ; | Test.kt:21:3:24:9 | ... -> ... | | Test.kt:18:3:18:3 | ; | Test.kt:22:4:22:4 | ; | -| Test.kt:21:3:24:9 | ... -> ... | Test.kt:4:2:79:2 | Exit | +| Test.kt:21:3:24:9 | ... -> ... | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:22:4:22:4 | ; | Test.kt:30:15:33:3 | { ... } | | Test.kt:22:4:22:4 | ; | Test.kt:35:3:35:3 | ; | | Test.kt:30:15:33:3 | { ... } | Test.kt:35:3:35:3 | ; | @@ -12,15 +16,20 @@ | Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } | | Test.kt:38:9:38:9 | x | Test.kt:43:3:43:3 | ; | | Test.kt:38:16:41:3 | { ... } | Test.kt:38:9:38:9 | x | -| Test.kt:43:3:43:3 | ; | Test.kt:4:2:79:2 | Exit | +| Test.kt:43:3:43:3 | ; | Test.kt:4:2:79:2 | Normal Exit | +| Test.kt:82:1:89:1 | Exceptional Exit | Test.kt:82:1:89:1 | Exit | +| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | -| Test.kt:84:7:84:7 | x | Test.kt:82:1:89:1 | Exit | -| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exit | +| Test.kt:84:7:84:7 | x | Test.kt:82:1:89:1 | Normal Exit | +| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Normal Exit | +| Test.kt:91:1:98:1 | Exceptional Exit | Test.kt:91:1:98:1 | Exit | +| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | -| Test.kt:93:7:93:7 | x | Test.kt:91:1:98:1 | Exit | -| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exit | +| Test.kt:93:7:93:7 | x | Test.kt:91:1:98:1 | Normal Exit | +| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Normal Exit | +| Test.kt:100:1:110:1 | Normal Exit | Test.kt:100:1:110:1 | Exit | | Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | ; | | Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } | @@ -28,18 +37,22 @@ | Test.kt:101:33:103:5 | { ... } | Test.kt:100:1:110:1 | Exit | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | -| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Exit | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Exit | +| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit | +| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | -| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Exit | -| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit | +| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit | +| Test.kt:112:1:116:1 | Exceptional Exit | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y | -| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Exit | +| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } | -| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Exit | +| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Normal Exit | +| Test.kt:118:1:124:1 | Exceptional Exit | Test.kt:118:1:124:1 | Exit | +| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit | | Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | ; | | Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... | -| Test.kt:121:9:121:9 | ; | Test.kt:118:1:124:1 | Exit | +| Test.kt:121:9:121:9 | ; | Test.kt:118:1:124:1 | Normal Exit | | Test.kt:121:9:121:9 | ; | Test.kt:123:8:123:10 | { ... } | -| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Exit | -| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Exit | +| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Normal Exit | +| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Normal Exit | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected index 81142abc1df8..1d07b13c9d75 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected @@ -1,9 +1,13 @@ #select | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | Test.kt:3:8:80:1 | { ... } | BlockStmt | +| Test.kt:3:8:80:1 | Exceptional Exit | Constructor | Test.kt:3:8:80:1 | Exit | Constructor | | Test.kt:3:8:80:1 | Exit | Constructor | file://:0:0:0:0 | | | +| Test.kt:3:8:80:1 | Normal Exit | Constructor | Test.kt:3:8:80:1 | Exit | Constructor | | Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | -| Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:8:80:1 | Exit | Constructor | +| Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:8:80:1 | Normal Exit | Constructor | +| Test.kt:4:2:79:2 | Exceptional Exit | Method | Test.kt:4:2:79:2 | Exit | Method | | Test.kt:4:2:79:2 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:4:2:79:2 | Normal Exit | Method | Test.kt:4:2:79:2 | Exit | Method | | Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:7:5:7 | var ...; | LocalVariableDeclStmt | | Test.kt:5:7:5:7 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral | | Test.kt:5:7:5:7 | x | LocalVariableDeclExpr | Test.kt:6:7:6:7 | var ...; | LocalVariableDeclStmt | @@ -53,7 +57,7 @@ | Test.kt:22:4:22:9 | ...=... | AssignExpr | Test.kt:27:3:27:3 | ; | ExprStmt | | Test.kt:22:8:22:9 | 40 | LongLiteral | Test.kt:22:4:22:9 | ...=... | AssignExpr | | Test.kt:24:4:24:9 | INSTANCE | VarAccess | Test.kt:24:4:24:9 | return ... | ReturnStmt | -| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method | +| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method | | Test.kt:27:3:27:3 | ; | ExprStmt | Test.kt:27:7:27:8 | 10 | IntegerLiteral | | Test.kt:27:3:27:8 | ...=... | AssignExpr | Test.kt:30:3:33:3 | ; | ExprStmt | | Test.kt:27:7:27:8 | 10 | IntegerLiteral | Test.kt:27:3:27:8 | ...=... | AssignExpr | @@ -106,8 +110,10 @@ | Test.kt:77:3:77:8 | ...=... | AssignExpr | Test.kt:78:3:78:8 | INSTANCE | VarAccess | | Test.kt:77:7:77:8 | 40 | IntegerLiteral | Test.kt:77:3:77:8 | ...=... | AssignExpr | | Test.kt:78:3:78:8 | INSTANCE | VarAccess | Test.kt:78:3:78:8 | return ... | ReturnStmt | -| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method | +| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method | +| Test.kt:82:1:89:1 | Exceptional Exit | Method | Test.kt:82:1:89:1 | Exit | Method | | Test.kt:82:1:89:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:82:1:89:1 | Normal Exit | Method | Test.kt:82:1:89:1 | Exit | Method | | Test.kt:82:21:89:1 | { ... } | BlockStmt | Test.kt:83:2:88:2 | try ... | TryStmt | | Test.kt:83:2:88:2 | try ... | TryStmt | Test.kt:83:6:86:2 | { ... } | BlockStmt | | Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:7:84:7 | var ...; | LocalVariableDeclStmt | @@ -116,14 +122,16 @@ | Test.kt:84:11:84:11 | o | VarAccess | Test.kt:84:11:84:18 | (...)... | CastExpr | | Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:7:84:7 | x | LocalVariableDeclExpr | | Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:86:4:88:2 | catch (...) | CatchClause | -| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method | +| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method | | Test.kt:85:10:85:10 | 1 | IntegerLiteral | Test.kt:85:3:85:10 | return ... | ReturnStmt | | Test.kt:86:4:88:2 | catch (...) | CatchClause | Test.kt:86:11:86:31 | e | LocalVariableDeclExpr | | Test.kt:86:11:86:31 | e | LocalVariableDeclExpr | Test.kt:86:34:88:2 | { ... } | BlockStmt | | Test.kt:86:34:88:2 | { ... } | BlockStmt | Test.kt:87:10:87:10 | 2 | IntegerLiteral | -| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method | +| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method | | Test.kt:87:10:87:10 | 2 | IntegerLiteral | Test.kt:87:3:87:10 | return ... | ReturnStmt | +| Test.kt:91:1:98:1 | Exceptional Exit | Method | Test.kt:91:1:98:1 | Exit | Method | | Test.kt:91:1:98:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:91:1:98:1 | Normal Exit | Method | Test.kt:91:1:98:1 | Exit | Method | | Test.kt:91:22:98:1 | { ... } | BlockStmt | Test.kt:92:2:97:2 | try ... | TryStmt | | Test.kt:92:2:97:2 | try ... | TryStmt | Test.kt:92:6:95:2 | { ... } | BlockStmt | | Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:7:93:7 | var ...; | LocalVariableDeclStmt | @@ -132,14 +140,16 @@ | Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:12:93:13 | ...!! | NotNullExpr | | Test.kt:93:12:93:13 | ...!! | NotNullExpr | Test.kt:93:7:93:7 | x | LocalVariableDeclExpr | | Test.kt:93:12:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause | -| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method | +| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method | | Test.kt:94:10:94:10 | 1 | IntegerLiteral | Test.kt:94:3:94:10 | return ... | ReturnStmt | | Test.kt:95:4:97:2 | catch (...) | CatchClause | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | Test.kt:95:36:97:2 | { ... } | BlockStmt | | Test.kt:95:36:97:2 | { ... } | BlockStmt | Test.kt:96:10:96:10 | 2 | IntegerLiteral | -| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method | +| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method | | Test.kt:96:10:96:10 | 2 | IntegerLiteral | Test.kt:96:3:96:10 | return ... | ReturnStmt | +| Test.kt:100:1:110:1 | Exceptional Exit | Method | Test.kt:100:1:110:1 | Exit | Method | | Test.kt:100:1:110:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:100:1:110:1 | Normal Exit | Method | Test.kt:100:1:110:1 | Exit | Method | | Test.kt:100:25:110:1 | { ... } | BlockStmt | Test.kt:101:5:103:5 | ; | ExprStmt | | Test.kt:101:5:103:5 | ... -> ... | WhenBranch | Test.kt:101:9:101:30 | ... && ... | AndLogicalExpr | | Test.kt:101:5:103:5 | ; | ExprStmt | Test.kt:101:5:103:5 | when ... | WhenExpr | @@ -154,7 +164,7 @@ | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | Test.kt:105:5:109:5 | ; | ExprStmt | | Test.kt:101:27:101:30 | null | NullLiteral | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | | Test.kt:101:33:103:5 | { ... } | BlockStmt | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr | -| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exceptional Exit | Method | | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr | Test.kt:102:9:102:25 | throw ... | ThrowStmt | | Test.kt:105:5:109:5 | ; | ExprStmt | Test.kt:105:5:109:5 | when ... | WhenExpr | | Test.kt:105:5:109:5 | when ... | WhenExpr | Test.kt:105:9:107:5 | ... -> ... | WhenBranch | @@ -165,29 +175,33 @@ | Test.kt:105:14:105:17 | null | NullLiteral | Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr | | Test.kt:105:20:107:5 | { ... } | BlockStmt | Test.kt:106:9:106:29 | ; | ExprStmt | | Test.kt:106:9:106:29 | ; | ExprStmt | Test.kt:106:17:106:28 | "x not null" | StringLiteral | -| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:106:17:106:28 | "x not null" | StringLiteral | Test.kt:106:9:106:29 | println(...) | MethodCall | | Test.kt:107:16:107:16 | y | VarAccess | Test.kt:107:21:107:24 | null | NullLiteral | -| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:27:109:5 | { ... } | BlockStmt | | Test.kt:107:16:109:5 | ... -> ... | WhenBranch | Test.kt:107:16:107:16 | y | VarAccess | | Test.kt:107:21:107:24 | null | NullLiteral | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | | Test.kt:107:27:109:5 | { ... } | BlockStmt | Test.kt:108:9:108:29 | ; | ExprStmt | | Test.kt:108:9:108:29 | ; | ExprStmt | Test.kt:108:17:108:28 | "y not null" | StringLiteral | -| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:108:17:108:28 | "y not null" | StringLiteral | Test.kt:108:9:108:29 | println(...) | MethodCall | +| Test.kt:112:1:116:1 | Exceptional Exit | Method | Test.kt:112:1:116:1 | Exit | Method | | Test.kt:112:1:116:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:112:1:116:1 | Normal Exit | Method | Test.kt:112:1:116:1 | Exit | Method | | Test.kt:112:32:116:1 | { ... } | BlockStmt | Test.kt:113:5:115:5 | ; | ExprStmt | | Test.kt:113:5:115:5 | ... -> ... | WhenBranch | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | | Test.kt:113:5:115:5 | ; | ExprStmt | Test.kt:113:5:115:5 | when ... | WhenExpr | | Test.kt:113:5:115:5 | when ... | WhenExpr | Test.kt:113:5:115:5 | ... -> ... | WhenBranch | -| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Exit | Method | +| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method | | Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | y | VarAccess | | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | Test.kt:113:9:113:9 | x | VarAccess | -| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Exit | Method | +| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method | | Test.kt:113:14:113:14 | y | VarAccess | Test.kt:113:17:115:5 | { ... } | BlockStmt | -| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Exit | Method | +| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Normal Exit | Method | +| Test.kt:118:1:124:1 | Exceptional Exit | Method | Test.kt:118:1:124:1 | Exit | Method | | Test.kt:118:1:124:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:118:1:124:1 | Normal Exit | Method | Test.kt:118:1:124:1 | Exit | Method | | Test.kt:118:37:124:1 | { ... } | BlockStmt | Test.kt:119:2:123:12 | ; | ExprStmt | | Test.kt:119:2:123:12 | ; | ExprStmt | Test.kt:119:2:123:12 | when ... | WhenExpr | | Test.kt:119:2:123:12 | when ... | WhenExpr | Test.kt:120:3:123:10 | ... -> ... | WhenBranch | @@ -197,11 +211,11 @@ | Test.kt:121:4:121:4 | x | VarAccess | Test.kt:122:12:122:16 | ... -> ... | WhenBranch | | Test.kt:121:4:121:9 | ... -> ... | WhenBranch | Test.kt:121:4:121:4 | x | VarAccess | | Test.kt:121:9:121:9 | ; | ExprStmt | Test.kt:121:9:121:9 | y | VarAccess | -| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Exit | Method | +| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Normal Exit | Method | | Test.kt:121:9:121:9 | y | VarAccess | Test.kt:123:8:123:10 | { ... } | BlockStmt | | Test.kt:122:12:122:16 | ... -> ... | WhenBranch | Test.kt:122:12:122:16 | true | BooleanLiteral | | Test.kt:122:12:122:16 | ; | ExprStmt | Test.kt:122:12:122:16 | false | BooleanLiteral | -| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Exit | Method | +| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Normal Exit | Method | | Test.kt:122:12:122:16 | true | BooleanLiteral | Test.kt:122:12:122:16 | ; | ExprStmt | -| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Exit | Method | +| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Normal Exit | Method | missingSuccessor diff --git a/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominator.expected b/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominator.expected index 3eae23451868..31da586d6307 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominator.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominator.expected @@ -44,7 +44,7 @@ | Test.kt:21:3:24:11 | true | Test.kt:24:11:24:11 | z | | Test.kt:21:3:24:11 | when ... | Test.kt:21:3:24:11 | ... -> ... | | Test.kt:21:7:21:7 | x | Test.kt:21:11:21:11 | 0 | -| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Exit | +| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Normal Exit | | Test.kt:21:7:21:11 | ... < ... | Test.kt:21:3:24:11 | ... -> ... | | Test.kt:21:7:21:11 | ... < ... | Test.kt:22:4:22:4 | ; | | Test.kt:21:11:21:11 | 0 | Test.kt:21:7:21:11 | ... < ... | @@ -142,7 +142,7 @@ | Test.kt:92:4:93:9 | ; | Test.kt:92:4:93:9 | when ... | | Test.kt:92:4:93:9 | when ... | Test.kt:92:4:93:9 | ... -> ... | | Test.kt:92:8:92:8 | a | Test.kt:92:13:92:14 | 10 | -| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Exit | +| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Normal Exit | | Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:93:5:93:9 | break | | Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:94:4:95:12 | ; | | Test.kt:92:13:92:14 | 10 | Test.kt:92:8:92:14 | ... (value equals) ... | diff --git a/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected b/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected index dfec79078ce8..1153b13c3bf9 100644 --- a/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected @@ -169,7 +169,18 @@ def.kt: # 33| 0: [SuperConstructorInvocationStmt] super(...) # 33| 1: [BlockStmt] { ... } # 34| 5: [Class] Y -# 34| 2: [Constructor] Y +# 0| 2: [Method] getEntries +# 0| 3: [TypeAccess] EnumEntries +# 0| 0: [TypeAccess] Y +# 0| 3: [Method] valueOf +# 0| 3: [TypeAccess] Y +#-----| 4: (Parameters) +# 34| 0: [Parameter] value +# 34| 0: [TypeAccess] String +# 0| 4: [Method] values +# 0| 3: [TypeAccess] Y[] +# 0| 0: [TypeAccess] Y +# 34| 5: [Constructor] Y # 34| 5: [BlockStmt] { ... } # 34| 0: [ExprStmt] ; # 34| 0: [ClassInstanceExpr] new Enum(...) @@ -178,17 +189,6 @@ def.kt: # 34| 0: [NullLiteral] null # 34| 1: [IntegerLiteral] 0 # 34| 1: [BlockStmt] { ... } -# 34| 3: [Method] getEntries -# 34| 3: [TypeAccess] EnumEntries -# 34| 0: [TypeAccess] Y -# 34| 4: [Method] valueOf -# 34| 3: [TypeAccess] Y -#-----| 4: (Parameters) -# 34| 0: [Parameter] value -# 34| 0: [TypeAccess] String -# 34| 5: [Method] values -# 34| 3: [TypeAccess] Y[] -# 34| 0: [TypeAccess] Y # 35| 6: [FieldDeclaration] Y A; # 35| -1: [TypeAccess] Y # 35| 0: [ClassInstanceExpr] new Y(...) diff --git a/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected b/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected index 4abfda927996..6fe2874402f8 100644 --- a/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected @@ -160,7 +160,18 @@ classes.kt: # 42| -1: [TypeAccess] int # 42| 0: [IntegerLiteral] 3 # 49| 11: [Class] Direction -# 49| 2: [Constructor] Direction +# 0| 2: [Method] getEntries +# 0| 3: [TypeAccess] EnumEntries +# 0| 0: [TypeAccess] Direction +# 0| 3: [Method] valueOf +# 0| 3: [TypeAccess] Direction +#-----| 4: (Parameters) +# 49| 0: [Parameter] value +# 49| 0: [TypeAccess] String +# 0| 4: [Method] values +# 0| 3: [TypeAccess] Direction[] +# 0| 0: [TypeAccess] Direction +# 49| 5: [Constructor] Direction # 49| 5: [BlockStmt] { ... } # 49| 0: [ExprStmt] ; # 49| 0: [ClassInstanceExpr] new Enum(...) @@ -169,17 +180,6 @@ classes.kt: # 49| 0: [NullLiteral] null # 49| 1: [IntegerLiteral] 0 # 49| 1: [BlockStmt] { ... } -# 49| 3: [Method] getEntries -# 49| 3: [TypeAccess] EnumEntries -# 49| 0: [TypeAccess] Direction -# 49| 4: [Method] valueOf -# 49| 3: [TypeAccess] Direction -#-----| 4: (Parameters) -# 49| 0: [Parameter] value -# 49| 0: [TypeAccess] String -# 49| 5: [Method] values -# 49| 3: [TypeAccess] Direction[] -# 49| 0: [TypeAccess] Direction # 50| 6: [FieldDeclaration] Direction NORTH; # 50| -1: [TypeAccess] Direction # 50| 0: [ClassInstanceExpr] new Direction(...) @@ -197,17 +197,17 @@ classes.kt: # 50| 0: [ClassInstanceExpr] new Direction(...) # 50| -3: [TypeAccess] Direction # 53| 12: [Class] Color -# 53| 2: [Method] getEntries -# 53| 3: [TypeAccess] EnumEntries -# 53| 0: [TypeAccess] Color -# 53| 3: [Method] valueOf -# 53| 3: [TypeAccess] Color +# 0| 2: [Method] getEntries +# 0| 3: [TypeAccess] EnumEntries +# 0| 0: [TypeAccess] Color +# 0| 3: [Method] valueOf +# 0| 3: [TypeAccess] Color #-----| 4: (Parameters) # 53| 0: [Parameter] value # 53| 0: [TypeAccess] String -# 53| 4: [Method] values -# 53| 3: [TypeAccess] Color[] -# 53| 0: [TypeAccess] Color +# 0| 4: [Method] values +# 0| 3: [TypeAccess] Color[] +# 0| 0: [TypeAccess] Color # 53| 5: [Constructor] Color #-----| 4: (Parameters) # 53| 0: [Parameter] rgb diff --git a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStmts.expected b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStmts.expected index c0f86a6ec9be..c66d50a722d1 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStmts.expected +++ b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStmts.expected @@ -1,8 +1,12 @@ +| Test.kt:3:1:80:1 | Exceptional Exit | 0 | Test.kt:3:1:80:1 | Exceptional Exit | +| Test.kt:3:1:80:1 | Exit | 0 | Test.kt:3:1:80:1 | Exit | | Test.kt:3:1:80:1 | { ... } | 0 | Test.kt:3:1:80:1 | { ... } | | Test.kt:3:1:80:1 | { ... } | 1 | Test.kt:3:1:80:1 | super(...) | | Test.kt:3:1:80:1 | { ... } | 2 | Test.kt:3:1:80:1 | { ... } | -| Test.kt:3:1:80:1 | { ... } | 3 | Test.kt:3:1:80:1 | Exit | +| Test.kt:3:1:80:1 | { ... } | 3 | Test.kt:3:1:80:1 | Normal Exit | +| Test.kt:4:2:79:2 | Exceptional Exit | 0 | Test.kt:4:2:79:2 | Exceptional Exit | | Test.kt:4:2:79:2 | Exit | 0 | Test.kt:4:2:79:2 | Exit | +| Test.kt:4:2:79:2 | Normal Exit | 0 | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:4:13:79:2 | { ... } | 0 | Test.kt:4:13:79:2 | { ... } | | Test.kt:4:13:79:2 | { ... } | 1 | Test.kt:5:3:5:16 | var ...; | | Test.kt:4:13:79:2 | { ... } | 2 | Test.kt:5:16:5:16 | 0 | @@ -102,7 +106,9 @@ | Test.kt:43:3:43:8 | ; | 8 | Test.kt:77:3:77:8 | ...=... | | Test.kt:43:3:43:8 | ; | 9 | Test.kt:78:9:78:9 | INSTANCE | | Test.kt:43:3:43:8 | ; | 10 | Test.kt:78:3:78:8 | return ... | +| Test.kt:82:1:89:1 | Exceptional Exit | 0 | Test.kt:82:1:89:1 | Exceptional Exit | | Test.kt:82:1:89:1 | Exit | 0 | Test.kt:82:1:89:1 | Exit | +| Test.kt:82:1:89:1 | Normal Exit | 0 | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:82:21:89:1 | { ... } | 0 | Test.kt:82:21:89:1 | { ... } | | Test.kt:82:21:89:1 | { ... } | 1 | Test.kt:83:2:88:2 | try ... | | Test.kt:82:21:89:1 | { ... } | 2 | Test.kt:83:6:86:2 | { ... } | @@ -117,7 +123,9 @@ | Test.kt:86:4:88:2 | catch (...) | 2 | Test.kt:86:34:88:2 | { ... } | | Test.kt:86:4:88:2 | catch (...) | 3 | Test.kt:87:10:87:10 | 2 | | Test.kt:86:4:88:2 | catch (...) | 4 | Test.kt:87:3:87:10 | return ... | +| Test.kt:91:1:98:1 | Exceptional Exit | 0 | Test.kt:91:1:98:1 | Exceptional Exit | | Test.kt:91:1:98:1 | Exit | 0 | Test.kt:91:1:98:1 | Exit | +| Test.kt:91:1:98:1 | Normal Exit | 0 | Test.kt:91:1:98:1 | Normal Exit | | Test.kt:91:22:98:1 | { ... } | 0 | Test.kt:91:22:98:1 | { ... } | | Test.kt:91:22:98:1 | { ... } | 1 | Test.kt:92:2:97:2 | try ... | | Test.kt:91:22:98:1 | { ... } | 2 | Test.kt:92:6:95:2 | { ... } | @@ -133,6 +141,7 @@ | Test.kt:95:4:97:2 | catch (...) | 3 | Test.kt:96:10:96:10 | 2 | | Test.kt:95:4:97:2 | catch (...) | 4 | Test.kt:96:3:96:10 | return ... | | Test.kt:100:1:110:1 | Exit | 0 | Test.kt:100:1:110:1 | Exit | +| Test.kt:100:1:110:1 | Normal Exit | 0 | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:100:25:110:1 | { ... } | 0 | Test.kt:100:25:110:1 | { ... } | | Test.kt:100:25:110:1 | { ... } | 1 | Test.kt:101:5:103:5 | ; | | Test.kt:100:25:110:1 | { ... } | 2 | Test.kt:101:5:103:5 | when ... | @@ -147,6 +156,7 @@ | Test.kt:101:33:103:5 | { ... } | 0 | Test.kt:101:33:103:5 | { ... } | | Test.kt:101:33:103:5 | { ... } | 1 | Test.kt:102:15:102:25 | new Exception(...) | | Test.kt:101:33:103:5 | { ... } | 2 | Test.kt:102:9:102:25 | throw ... | +| Test.kt:101:33:103:5 | { ... } | 3 | Test.kt:100:1:110:1 | Exceptional Exit | | Test.kt:105:5:109:5 | ; | 0 | Test.kt:105:5:109:5 | ; | | Test.kt:105:5:109:5 | ; | 1 | Test.kt:105:5:109:5 | when ... | | Test.kt:105:5:109:5 | ; | 2 | Test.kt:105:9:107:5 | ... -> ... | @@ -165,7 +175,9 @@ | Test.kt:107:27:109:5 | { ... } | 1 | Test.kt:108:9:108:29 | ; | | Test.kt:107:27:109:5 | { ... } | 2 | Test.kt:108:17:108:28 | "y not null" | | Test.kt:107:27:109:5 | { ... } | 3 | Test.kt:108:9:108:29 | println(...) | +| Test.kt:112:1:116:1 | Exceptional Exit | 0 | Test.kt:112:1:116:1 | Exceptional Exit | | Test.kt:112:1:116:1 | Exit | 0 | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:1:116:1 | Normal Exit | 0 | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | 0 | Test.kt:112:32:116:1 | { ... } | | Test.kt:112:32:116:1 | { ... } | 1 | Test.kt:113:5:115:5 | ; | | Test.kt:112:32:116:1 | { ... } | 2 | Test.kt:113:5:115:5 | when ... | @@ -174,7 +186,9 @@ | Test.kt:112:32:116:1 | { ... } | 5 | Test.kt:113:9:113:9 | x | | Test.kt:113:14:113:14 | y | 0 | Test.kt:113:14:113:14 | y | | Test.kt:113:17:115:5 | { ... } | 0 | Test.kt:113:17:115:5 | { ... } | +| Test.kt:118:1:124:1 | Exceptional Exit | 0 | Test.kt:118:1:124:1 | Exceptional Exit | | Test.kt:118:1:124:1 | Exit | 0 | Test.kt:118:1:124:1 | Exit | +| Test.kt:118:1:124:1 | Normal Exit | 0 | Test.kt:118:1:124:1 | Normal Exit | | Test.kt:118:37:124:1 | { ... } | 0 | Test.kt:118:37:124:1 | { ... } | | Test.kt:118:37:124:1 | { ... } | 1 | Test.kt:119:2:123:12 | ; | | Test.kt:118:37:124:1 | { ... } | 2 | Test.kt:119:2:123:12 | when ... | diff --git a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.expected b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.expected index aa23696bd555..c7e225ecc6f4 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.expected +++ b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.expected @@ -1,4 +1,7 @@ +| Test.kt:3:1:80:1 | { ... } | Test.kt:3:1:80:1 | Exit | +| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit | | Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Exit | +| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } | | Test.kt:4:13:79:2 | { ... } | Test.kt:14:10:16:3 | ... -> ... | | Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:7 | ; | @@ -10,6 +13,7 @@ | Test.kt:4:13:79:2 | { ... } | Test.kt:38:16:41:3 | { ... } | | Test.kt:4:13:79:2 | { ... } | Test.kt:43:3:43:8 | ; | | Test.kt:18:3:18:7 | ; | Test.kt:4:2:79:2 | Exit | +| Test.kt:18:3:18:7 | ; | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:18:3:18:7 | ; | Test.kt:22:4:22:9 | ; | | Test.kt:18:3:18:7 | ; | Test.kt:24:4:24:9 | ... -> ... | | Test.kt:18:3:18:7 | ; | Test.kt:30:15:33:3 | { ... } | @@ -27,13 +31,18 @@ | Test.kt:35:3:35:8 | ; | Test.kt:43:3:43:8 | ; | | Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } | | Test.kt:38:9:38:9 | x | Test.kt:43:3:43:8 | ; | +| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exit | +| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | +| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exit | +| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Normal Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | | Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Exit | +| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y | | Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | ; | @@ -41,15 +50,20 @@ | Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... | | Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } | | Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } | +| Test.kt:105:5:109:5 | ; | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | | Test.kt:105:5:109:5 | ; | Test.kt:107:27:109:5 | { ... } | | Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | +| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } | | Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } | +| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit | | Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Exit | +| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Normal Exit | | Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | ; | | Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... | | Test.kt:118:37:124:1 | { ... } | Test.kt:123:8:123:10 | { ... } | diff --git a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.expected b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.expected index 006bd71a6bac..219779e73dc7 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.expected +++ b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.expected @@ -1,3 +1,7 @@ +| Test.kt:3:1:80:1 | Exceptional Exit | Test.kt:3:1:80:1 | Exit | +| Test.kt:3:1:80:1 | { ... } | Test.kt:3:1:80:1 | Exit | +| Test.kt:4:2:79:2 | Exceptional Exit | Test.kt:4:2:79:2 | Exit | +| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } | | Test.kt:4:13:79:2 | { ... } | Test.kt:14:10:16:3 | ... -> ... | | Test.kt:11:14:14:3 | { ... } | Test.kt:18:3:18:7 | ; | @@ -6,21 +10,26 @@ | Test.kt:18:3:18:7 | ; | Test.kt:24:4:24:9 | ... -> ... | | Test.kt:22:4:22:9 | ; | Test.kt:30:15:33:3 | { ... } | | Test.kt:22:4:22:9 | ; | Test.kt:35:3:35:8 | ; | -| Test.kt:24:4:24:9 | ... -> ... | Test.kt:4:2:79:2 | Exit | +| Test.kt:24:4:24:9 | ... -> ... | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:30:15:33:3 | { ... } | Test.kt:35:3:35:8 | ; | | Test.kt:35:3:35:8 | ; | Test.kt:38:9:38:9 | x | | Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } | | Test.kt:38:9:38:9 | x | Test.kt:43:3:43:8 | ; | | Test.kt:38:16:41:3 | { ... } | Test.kt:38:9:38:9 | x | -| Test.kt:43:3:43:8 | ; | Test.kt:4:2:79:2 | Exit | +| Test.kt:43:3:43:8 | ; | Test.kt:4:2:79:2 | Normal Exit | +| Test.kt:82:1:89:1 | Exceptional Exit | Test.kt:82:1:89:1 | Exit | +| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | -| Test.kt:84:3:84:18 | x | Test.kt:82:1:89:1 | Exit | -| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exit | +| Test.kt:84:3:84:18 | x | Test.kt:82:1:89:1 | Normal Exit | +| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Normal Exit | +| Test.kt:91:1:98:1 | Exceptional Exit | Test.kt:91:1:98:1 | Exit | +| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | -| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | Exit | -| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exit | +| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | Normal Exit | +| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Normal Exit | +| Test.kt:100:1:110:1 | Normal Exit | Test.kt:100:1:110:1 | Exit | | Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | ; | | Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } | @@ -28,18 +37,22 @@ | Test.kt:101:33:103:5 | { ... } | Test.kt:100:1:110:1 | Exit | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | -| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Exit | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Exit | +| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit | +| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | -| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Exit | -| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit | +| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit | +| Test.kt:112:1:116:1 | Exceptional Exit | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit | +| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y | -| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Exit | +| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } | -| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Exit | +| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Normal Exit | +| Test.kt:118:1:124:1 | Exceptional Exit | Test.kt:118:1:124:1 | Exit | +| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit | | Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | ; | | Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... | -| Test.kt:121:9:121:9 | ; | Test.kt:118:1:124:1 | Exit | +| Test.kt:121:9:121:9 | ; | Test.kt:118:1:124:1 | Normal Exit | | Test.kt:121:9:121:9 | ; | Test.kt:123:8:123:10 | { ... } | -| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Exit | -| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Exit | +| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Normal Exit | +| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Normal Exit | diff --git a/java/ql/test-kotlin2/library-tests/controlflow/basic/getASuccessor.expected b/java/ql/test-kotlin2/library-tests/controlflow/basic/getASuccessor.expected index 364b46d429e0..c4be613c5e99 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/basic/getASuccessor.expected +++ b/java/ql/test-kotlin2/library-tests/controlflow/basic/getASuccessor.expected @@ -1,9 +1,13 @@ #select +| Test.kt:3:1:80:1 | Exceptional Exit | Constructor | Test.kt:3:1:80:1 | Exit | Constructor | | Test.kt:3:1:80:1 | Exit | Constructor | file://:0:0:0:0 | | | +| Test.kt:3:1:80:1 | Normal Exit | Constructor | Test.kt:3:1:80:1 | Exit | Constructor | | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | Test.kt:3:1:80:1 | { ... } | BlockStmt | -| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | Exit | Constructor | +| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | Normal Exit | Constructor | | Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | +| Test.kt:4:2:79:2 | Exceptional Exit | Method | Test.kt:4:2:79:2 | Exit | Method | | Test.kt:4:2:79:2 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:4:2:79:2 | Normal Exit | Method | Test.kt:4:2:79:2 | Exit | Method | | Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt | | Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral | | Test.kt:5:3:5:16 | x | LocalVariableDeclExpr | Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt | @@ -51,7 +55,7 @@ | Test.kt:22:4:22:9 | ; | ExprStmt | Test.kt:22:8:22:9 | 40 | LongLiteral | | Test.kt:22:8:22:9 | 40 | LongLiteral | Test.kt:22:4:22:9 | ...=... | AssignExpr | | Test.kt:24:4:24:9 | ... -> ... | WhenBranch | Test.kt:24:4:24:9 | true | BooleanLiteral | -| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method | +| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method | | Test.kt:24:4:24:9 | true | BooleanLiteral | Test.kt:24:10:24:10 | INSTANCE | VarAccess | | Test.kt:24:10:24:10 | INSTANCE | VarAccess | Test.kt:24:4:24:9 | return ... | ReturnStmt | | Test.kt:27:3:27:8 | ...=... | AssignExpr | Test.kt:30:3:33:3 | ; | ExprStmt | @@ -105,9 +109,11 @@ | Test.kt:77:3:77:8 | ...=... | AssignExpr | Test.kt:78:9:78:9 | INSTANCE | VarAccess | | Test.kt:77:3:77:8 | ; | ExprStmt | Test.kt:77:7:77:8 | 40 | IntegerLiteral | | Test.kt:77:7:77:8 | 40 | IntegerLiteral | Test.kt:77:3:77:8 | ...=... | AssignExpr | -| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method | +| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method | | Test.kt:78:9:78:9 | INSTANCE | VarAccess | Test.kt:78:3:78:8 | return ... | ReturnStmt | +| Test.kt:82:1:89:1 | Exceptional Exit | Method | Test.kt:82:1:89:1 | Exit | Method | | Test.kt:82:1:89:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:82:1:89:1 | Normal Exit | Method | Test.kt:82:1:89:1 | Exit | Method | | Test.kt:82:21:89:1 | { ... } | BlockStmt | Test.kt:83:2:88:2 | try ... | TryStmt | | Test.kt:83:2:88:2 | try ... | TryStmt | Test.kt:83:6:86:2 | { ... } | BlockStmt | | Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:3:84:18 | var ...; | LocalVariableDeclStmt | @@ -116,14 +122,16 @@ | Test.kt:84:11:84:11 | o | VarAccess | Test.kt:84:11:84:18 | (...)... | CastExpr | | Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:3:84:18 | x | LocalVariableDeclExpr | | Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:86:4:88:2 | catch (...) | CatchClause | -| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method | +| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method | | Test.kt:85:10:85:10 | 1 | IntegerLiteral | Test.kt:85:3:85:10 | return ... | ReturnStmt | | Test.kt:86:4:88:2 | catch (...) | CatchClause | Test.kt:86:11:86:31 | e | LocalVariableDeclExpr | | Test.kt:86:11:86:31 | e | LocalVariableDeclExpr | Test.kt:86:34:88:2 | { ... } | BlockStmt | | Test.kt:86:34:88:2 | { ... } | BlockStmt | Test.kt:87:10:87:10 | 2 | IntegerLiteral | -| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method | +| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method | | Test.kt:87:10:87:10 | 2 | IntegerLiteral | Test.kt:87:3:87:10 | return ... | ReturnStmt | +| Test.kt:91:1:98:1 | Exceptional Exit | Method | Test.kt:91:1:98:1 | Exit | Method | | Test.kt:91:1:98:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:91:1:98:1 | Normal Exit | Method | Test.kt:91:1:98:1 | Exit | Method | | Test.kt:91:22:98:1 | { ... } | BlockStmt | Test.kt:92:2:97:2 | try ... | TryStmt | | Test.kt:92:2:97:2 | try ... | TryStmt | Test.kt:92:6:95:2 | { ... } | BlockStmt | | Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:3:93:13 | var ...; | LocalVariableDeclStmt | @@ -132,14 +140,16 @@ | Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:11:93:13 | ...!! | NotNullExpr | | Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:93:3:93:13 | x | LocalVariableDeclExpr | | Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause | -| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method | +| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method | | Test.kt:94:10:94:10 | 1 | IntegerLiteral | Test.kt:94:3:94:10 | return ... | ReturnStmt | | Test.kt:95:4:97:2 | catch (...) | CatchClause | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | Test.kt:95:36:97:2 | { ... } | BlockStmt | | Test.kt:95:36:97:2 | { ... } | BlockStmt | Test.kt:96:10:96:10 | 2 | IntegerLiteral | -| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method | +| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method | | Test.kt:96:10:96:10 | 2 | IntegerLiteral | Test.kt:96:3:96:10 | return ... | ReturnStmt | +| Test.kt:100:1:110:1 | Exceptional Exit | Method | Test.kt:100:1:110:1 | Exit | Method | | Test.kt:100:1:110:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:100:1:110:1 | Normal Exit | Method | Test.kt:100:1:110:1 | Exit | Method | | Test.kt:100:25:110:1 | { ... } | BlockStmt | Test.kt:101:5:103:5 | ; | ExprStmt | | Test.kt:101:5:103:5 | ; | ExprStmt | Test.kt:101:5:103:5 | when ... | WhenExpr | | Test.kt:101:5:103:5 | when ... | WhenExpr | Test.kt:101:9:103:5 | ... -> ... | WhenBranch | @@ -154,7 +164,7 @@ | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | Test.kt:105:5:109:5 | ; | ExprStmt | | Test.kt:101:27:101:30 | null | NullLiteral | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | | Test.kt:101:33:103:5 | { ... } | BlockStmt | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr | -| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exceptional Exit | Method | | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr | Test.kt:102:9:102:25 | throw ... | ThrowStmt | | Test.kt:105:5:109:5 | ; | ExprStmt | Test.kt:105:5:109:5 | when ... | WhenExpr | | Test.kt:105:5:109:5 | when ... | WhenExpr | Test.kt:105:9:107:5 | ... -> ... | WhenBranch | @@ -165,29 +175,33 @@ | Test.kt:105:14:105:17 | null | NullLiteral | Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr | | Test.kt:105:20:107:5 | { ... } | BlockStmt | Test.kt:106:9:106:29 | ; | ExprStmt | | Test.kt:106:9:106:29 | ; | ExprStmt | Test.kt:106:17:106:28 | "x not null" | StringLiteral | -| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:106:17:106:28 | "x not null" | StringLiteral | Test.kt:106:9:106:29 | println(...) | MethodCall | | Test.kt:107:16:107:16 | y | VarAccess | Test.kt:107:21:107:24 | null | NullLiteral | -| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:27:109:5 | { ... } | BlockStmt | | Test.kt:107:16:109:5 | ... -> ... | WhenBranch | Test.kt:107:16:107:16 | y | VarAccess | | Test.kt:107:21:107:24 | null | NullLiteral | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | | Test.kt:107:27:109:5 | { ... } | BlockStmt | Test.kt:108:9:108:29 | ; | ExprStmt | | Test.kt:108:9:108:29 | ; | ExprStmt | Test.kt:108:17:108:28 | "y not null" | StringLiteral | -| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method | +| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:108:17:108:28 | "y not null" | StringLiteral | Test.kt:108:9:108:29 | println(...) | MethodCall | +| Test.kt:112:1:116:1 | Exceptional Exit | Method | Test.kt:112:1:116:1 | Exit | Method | | Test.kt:112:1:116:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:112:1:116:1 | Normal Exit | Method | Test.kt:112:1:116:1 | Exit | Method | | Test.kt:112:32:116:1 | { ... } | BlockStmt | Test.kt:113:5:115:5 | ; | ExprStmt | | Test.kt:113:5:115:5 | ; | ExprStmt | Test.kt:113:5:115:5 | when ... | WhenExpr | | Test.kt:113:5:115:5 | when ... | WhenExpr | Test.kt:113:9:115:5 | ... -> ... | WhenBranch | -| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Exit | Method | +| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method | | Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | y | VarAccess | | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | Test.kt:113:9:113:9 | x | VarAccess | | Test.kt:113:9:115:5 | ... -> ... | WhenBranch | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | -| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Exit | Method | +| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method | | Test.kt:113:14:113:14 | y | VarAccess | Test.kt:113:17:115:5 | { ... } | BlockStmt | -| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Exit | Method | +| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Normal Exit | Method | +| Test.kt:118:1:124:1 | Exceptional Exit | Method | Test.kt:118:1:124:1 | Exit | Method | | Test.kt:118:1:124:1 | Exit | Method | file://:0:0:0:0 | | | +| Test.kt:118:1:124:1 | Normal Exit | Method | Test.kt:118:1:124:1 | Exit | Method | | Test.kt:118:37:124:1 | { ... } | BlockStmt | Test.kt:119:2:123:12 | ; | ExprStmt | | Test.kt:119:2:123:12 | ; | ExprStmt | Test.kt:119:2:123:12 | when ... | WhenExpr | | Test.kt:119:2:123:12 | when ... | WhenExpr | Test.kt:120:3:123:10 | ... -> ... | WhenBranch | @@ -197,11 +211,11 @@ | Test.kt:121:4:121:4 | x | VarAccess | Test.kt:122:12:122:16 | ... -> ... | WhenBranch | | Test.kt:121:4:121:9 | ... -> ... | WhenBranch | Test.kt:121:4:121:4 | x | VarAccess | | Test.kt:121:9:121:9 | ; | ExprStmt | Test.kt:121:9:121:9 | y | VarAccess | -| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Exit | Method | +| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Normal Exit | Method | | Test.kt:121:9:121:9 | y | VarAccess | Test.kt:123:8:123:10 | { ... } | BlockStmt | | Test.kt:122:12:122:16 | ... -> ... | WhenBranch | Test.kt:122:12:122:16 | true | BooleanLiteral | | Test.kt:122:12:122:16 | ; | ExprStmt | Test.kt:122:12:122:16 | false | BooleanLiteral | -| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Exit | Method | +| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Normal Exit | Method | | Test.kt:122:12:122:16 | true | BooleanLiteral | Test.kt:122:12:122:16 | ; | ExprStmt | -| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Exit | Method | +| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Normal Exit | Method | missingSuccessor diff --git a/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominator.expected b/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominator.expected index d5ddea7a98ba..75662bfacd49 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominator.expected +++ b/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominator.expected @@ -41,7 +41,7 @@ | Test.kt:21:3:24:11 | ; | Test.kt:21:3:24:11 | when ... | | Test.kt:21:3:24:11 | when ... | Test.kt:21:7:22:9 | ... -> ... | | Test.kt:21:7:21:7 | x | Test.kt:21:11:21:11 | 0 | -| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Exit | +| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Normal Exit | | Test.kt:21:7:21:11 | ... < ... | Test.kt:22:4:22:9 | ; | | Test.kt:21:7:21:11 | ... < ... | Test.kt:24:4:24:11 | ... -> ... | | Test.kt:21:7:22:9 | ... -> ... | Test.kt:21:7:21:7 | x | @@ -141,7 +141,7 @@ | Test.kt:92:4:93:9 | ; | Test.kt:92:4:93:9 | when ... | | Test.kt:92:4:93:9 | when ... | Test.kt:92:8:93:9 | ... -> ... | | Test.kt:92:8:92:8 | a | Test.kt:92:13:92:14 | 10 | -| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Exit | +| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Normal Exit | | Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:93:5:93:9 | break | | Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:94:4:95:12 | ; | | Test.kt:92:8:93:9 | ... -> ... | Test.kt:92:8:92:8 | a | diff --git a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected index 6a4ac3cab31d..78fc858d028e 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected @@ -3340,7 +3340,18 @@ exprs.kt: # 154| 0: [SuperConstructorInvocationStmt] super(...) # 154| 1: [BlockStmt] { ... } # 174| 6: [Class] Direction -# 174| 2: [Constructor] Direction +# 0| 2: [Method] getEntries +# 0| 3: [TypeAccess] EnumEntries +# 0| 0: [TypeAccess] Direction +# 0| 3: [Method] valueOf +# 0| 3: [TypeAccess] Direction +#-----| 4: (Parameters) +# 174| 0: [Parameter] value +# 174| 0: [TypeAccess] String +# 0| 4: [Method] values +# 0| 3: [TypeAccess] Direction[] +# 0| 0: [TypeAccess] Direction +# 174| 5: [Constructor] Direction # 174| 5: [BlockStmt] { ... } # 174| 0: [ExprStmt] ; # 174| 0: [ClassInstanceExpr] new Enum(...) @@ -3349,17 +3360,6 @@ exprs.kt: # 174| 0: [NullLiteral] null # 174| 1: [IntegerLiteral] 0 # 174| 1: [BlockStmt] { ... } -# 174| 3: [Method] getEntries -# 174| 3: [TypeAccess] EnumEntries -# 174| 0: [TypeAccess] Direction -# 174| 4: [Method] valueOf -# 174| 3: [TypeAccess] Direction -#-----| 4: (Parameters) -# 174| 0: [Parameter] value -# 174| 0: [TypeAccess] String -# 174| 5: [Method] values -# 174| 3: [TypeAccess] Direction[] -# 174| 0: [TypeAccess] Direction # 175| 6: [FieldDeclaration] Direction NORTH; # 175| -1: [TypeAccess] Direction # 175| 0: [ClassInstanceExpr] new Direction(...) @@ -3377,17 +3377,17 @@ exprs.kt: # 175| 0: [ClassInstanceExpr] new Direction(...) # 175| -3: [TypeAccess] Direction # 178| 7: [Class] Color -# 178| 2: [Method] getEntries -# 178| 3: [TypeAccess] EnumEntries -# 178| 0: [TypeAccess] Color -# 178| 3: [Method] valueOf -# 178| 3: [TypeAccess] Color +# 0| 2: [Method] getEntries +# 0| 3: [TypeAccess] EnumEntries +# 0| 0: [TypeAccess] Color +# 0| 3: [Method] valueOf +# 0| 3: [TypeAccess] Color #-----| 4: (Parameters) # 178| 0: [Parameter] value # 178| 0: [TypeAccess] String -# 178| 4: [Method] values -# 178| 3: [TypeAccess] Color[] -# 178| 0: [TypeAccess] Color +# 0| 4: [Method] values +# 0| 3: [TypeAccess] Color[] +# 0| 0: [TypeAccess] Color # 178| 5: [Constructor] Color #-----| 4: (Parameters) # 178| 0: [Parameter] rgb diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 0acb9c221430..001794509ffb 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -883,6 +883,16 @@ | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess | | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess | | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess | +| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Color[] | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Direction | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Direction | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Direction | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | Direction[] | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | EnumEntries | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:0:0:0:0 | EnumEntries | file://:0:0:0:0 | | TypeAccess | | exprs.kt:4:1:142:1 | int | file://:0:0:0:0 | | TypeAccess | | exprs.kt:4:20:4:25 | int | file://:0:0:0:0 | | TypeAccess | | exprs.kt:4:28:4:33 | int | file://:0:0:0:0 | | TypeAccess | @@ -1461,12 +1471,7 @@ | exprs.kt:170:21:170:21 | 3 | exprs.kt:165:1:172:1 | foo | IntegerLiteral | | exprs.kt:174:1:176:1 | 0 | exprs.kt:174:1:176:1 | Direction | IntegerLiteral | | exprs.kt:174:1:176:1 | Direction | exprs.kt:174:1:176:1 | Direction | TypeAccess | -| exprs.kt:174:1:176:1 | Direction | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:174:1:176:1 | Direction | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:174:1:176:1 | Direction | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:174:1:176:1 | Direction[] | file://:0:0:0:0 | | TypeAccess | | exprs.kt:174:1:176:1 | Enum | exprs.kt:174:1:176:1 | Direction | TypeAccess | -| exprs.kt:174:1:176:1 | EnumEntries | file://:0:0:0:0 | | TypeAccess | | exprs.kt:174:1:176:1 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:174:1:176:1 | new Enum(...) | exprs.kt:174:1:176:1 | Direction | ClassInstanceExpr | | exprs.kt:174:1:176:1 | null | exprs.kt:174:1:176:1 | Direction | NullLiteral | @@ -1494,11 +1499,6 @@ | exprs.kt:175:25:175:28 | Direction | file://:0:0:0:0 | | TypeAccess | | exprs.kt:175:25:175:28 | Direction.EAST | exprs.kt:0:0:0:0 | | VarAccess | | exprs.kt:175:25:175:28 | new Direction(...) | exprs.kt:0:0:0:0 | | ClassInstanceExpr | -| exprs.kt:178:1:182:1 | Color | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:178:1:182:1 | Color | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:178:1:182:1 | Color | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:178:1:182:1 | Color[] | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:178:1:182:1 | EnumEntries | file://:0:0:0:0 | | TypeAccess | | exprs.kt:178:1:182:1 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:178:17:178:30 | 0 | exprs.kt:178:17:178:30 | Color | IntegerLiteral | | exprs.kt:178:17:178:30 | Color | exprs.kt:178:17:178:30 | Color | TypeAccess | diff --git a/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected index a9cce8a012fb..3a7af6919ed8 100644 --- a/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected @@ -73,7 +73,18 @@ A.kt: # 20| 2: [ReturnStmt] return ... # 20| 0: [IntegerLiteral] 5 # 23| 11: [Class] Enu -# 23| 2: [Constructor] Enu +# 0| 2: [Method] getEntries +# 0| 3: [TypeAccess] EnumEntries +# 0| 0: [TypeAccess] Enu +# 0| 3: [Method] valueOf +# 0| 3: [TypeAccess] Enu +#-----| 4: (Parameters) +# 23| 0: [Parameter] value +# 23| 0: [TypeAccess] String +# 0| 4: [Method] values +# 0| 3: [TypeAccess] Enu[] +# 0| 0: [TypeAccess] Enu +# 23| 5: [Constructor] Enu # 23| 5: [BlockStmt] { ... } # 23| 0: [ExprStmt] ; # 23| 0: [ClassInstanceExpr] new Enum(...) @@ -82,17 +93,6 @@ A.kt: # 23| 0: [NullLiteral] null # 23| 1: [IntegerLiteral] 0 # 23| 1: [BlockStmt] { ... } -# 23| 3: [Method] getEntries -# 23| 3: [TypeAccess] EnumEntries -# 23| 0: [TypeAccess] Enu -# 23| 4: [Method] valueOf -# 23| 3: [TypeAccess] Enu -#-----| 4: (Parameters) -# 23| 0: [Parameter] value -# 23| 0: [TypeAccess] String -# 23| 5: [Method] values -# 23| 3: [TypeAccess] Enu[] -# 23| 0: [TypeAccess] Enu # 24| 6: [FieldDeclaration] Enu A; # 24| -1: [TypeAccess] Enu # 24| 0: [ClassInstanceExpr] new Enu(...) diff --git a/java/ql/test-kotlin2/library-tests/methods/exprs.expected b/java/ql/test-kotlin2/library-tests/methods/exprs.expected index 041ef562dfbd..accffb8beff8 100644 --- a/java/ql/test-kotlin2/library-tests/methods/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/methods/exprs.expected @@ -223,11 +223,16 @@ | delegates.kt:10:23:10:25 | old | VarAccess | | delegates.kt:10:26:10:31 | ", now " | StringLiteral | | delegates.kt:10:33:10:35 | new | VarAccess | -| enumClass.kt:1:1:4:1 | EnumClass | TypeAccess | -| enumClass.kt:1:1:4:1 | EnumClass | TypeAccess | -| enumClass.kt:1:1:4:1 | EnumClass | TypeAccess | -| enumClass.kt:1:1:4:1 | EnumClass[] | TypeAccess | -| enumClass.kt:1:1:4:1 | EnumEntries | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumClass | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumClass | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumClass | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumClass[] | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumEntries | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumEntries | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumWithFunctions | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumWithFunctions | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumWithFunctions | TypeAccess | +| enumClass.kt:0:0:0:0 | EnumWithFunctions[] | TypeAccess | | enumClass.kt:1:1:4:1 | String | TypeAccess | | enumClass.kt:1:21:1:32 | 0 | IntegerLiteral | | enumClass.kt:1:21:1:32 | Enum | TypeAccess | @@ -258,12 +263,7 @@ | enumClass.kt:3:11:3:11 | 1 | IntegerLiteral | | enumClass.kt:6:1:16:1 | 0 | IntegerLiteral | | enumClass.kt:6:1:16:1 | Enum | TypeAccess | -| enumClass.kt:6:1:16:1 | EnumEntries | TypeAccess | | enumClass.kt:6:1:16:1 | EnumWithFunctions | TypeAccess | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | TypeAccess | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | TypeAccess | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | TypeAccess | -| enumClass.kt:6:1:16:1 | EnumWithFunctions[] | TypeAccess | | enumClass.kt:6:1:16:1 | String | TypeAccess | | enumClass.kt:6:1:16:1 | new Enum(...) | ClassInstanceExpr | | enumClass.kt:6:1:16:1 | null | NullLiteral | diff --git a/java/ql/test-kotlin2/library-tests/methods/methods.expected b/java/ql/test-kotlin2/library-tests/methods/methods.expected index 79f674e4d7c4..94c0d62e20b1 100644 --- a/java/ql/test-kotlin2/library-tests/methods/methods.expected +++ b/java/ql/test-kotlin2/library-tests/methods/methods.expected @@ -26,14 +26,14 @@ methods | delegates.kt:8:35:11:5 | new KMutableProperty1(...) { ... } | delegates.kt:8:35:11:5 | set | set(MyClass,java.lang.String) | override, public | | | delegates.kt:8:66:11:5 | new Function3,String,String,Unit>(...) { ... } | delegates.kt:8:66:11:5 | invoke | invoke(kotlin.reflect.KProperty,java.lang.String,java.lang.String) | final, override, public | | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | | () | static | Compiler generated | -| enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:1:1:4:1 | getEntries | getEntries() | final, public, static | Compiler generated | -| enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:1:1:4:1 | valueOf | valueOf(java.lang.String) | final, public, static | Compiler generated | -| enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:1:1:4:1 | values | values() | final, public, static | Compiler generated | +| enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | getEntries | getEntries() | final, public, static | Compiler generated | +| enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | valueOf | valueOf(java.lang.String) | final, public, static | Compiler generated | +| enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:0:0:0:0 | values | values() | final, public, static | Compiler generated | | enumClass.kt:1:1:4:1 | EnumClass | enumClass.kt:1:22:1:31 | getV | getV() | final, public | Compiler generated | | enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | | () | static | Compiler generated | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:6:1:16:1 | getEntries | getEntries() | final, public, static | Compiler generated | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:6:1:16:1 | valueOf | valueOf(java.lang.String) | final, public, static | Compiler generated | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:6:1:16:1 | values | values() | final, public, static | Compiler generated | +| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | getEntries | getEntries() | final, public, static | Compiler generated | +| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | valueOf | valueOf(java.lang.String) | final, public, static | Compiler generated | +| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | values | values() | final, public, static | Compiler generated | | enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:13:3:13:29 | f | f(int) | abstract, public | | | enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:14:3:14:29 | g | g(int) | abstract, public | | | enumClass.kt:8:3:11:4 | VAL | enumClass.kt:9:5:9:30 | f | f(int) | override, public | | diff --git a/java/ql/test-kotlin2/library-tests/methods/parameters.expected b/java/ql/test-kotlin2/library-tests/methods/parameters.expected index f0c4ad719468..3e5485f27245 100644 --- a/java/ql/test-kotlin2/library-tests/methods/parameters.expected +++ b/java/ql/test-kotlin2/library-tests/methods/parameters.expected @@ -22,8 +22,8 @@ | delegates.kt:8:66:11:5 | invoke | delegates.kt:9:9:9:12 | prop | 0 | | delegates.kt:8:66:11:5 | invoke | delegates.kt:9:15:9:17 | old | 1 | | delegates.kt:8:66:11:5 | invoke | delegates.kt:9:20:9:22 | new | 2 | -| enumClass.kt:1:1:4:1 | valueOf | enumClass.kt:1:1:4:1 | value | 0 | -| enumClass.kt:6:1:16:1 | valueOf | enumClass.kt:6:1:16:1 | value | 0 | +| enumClass.kt:0:0:0:0 | valueOf | enumClass.kt:1:1:4:1 | value | 0 | +| enumClass.kt:0:0:0:0 | valueOf | enumClass.kt:6:1:16:1 | value | 0 | | enumClass.kt:9:5:9:30 | f | enumClass.kt:9:20:9:25 | i | 0 | | enumClass.kt:10:5:10:42 | g | enumClass.kt:10:20:10:25 | i | 0 | | enumClass.kt:13:3:13:29 | f | enumClass.kt:13:18:13:23 | i | 0 | diff --git a/java/ql/test/library-tests/controlflow/basic/bbStmts.expected b/java/ql/test/library-tests/controlflow/basic/bbStmts.expected index 0fbf3623f089..df336ce90a22 100644 --- a/java/ql/test/library-tests/controlflow/basic/bbStmts.expected +++ b/java/ql/test/library-tests/controlflow/basic/bbStmts.expected @@ -1,7 +1,11 @@ +| Test.java:3:14:3:17 | Exceptional Exit | 0 | Test.java:3:14:3:17 | Exceptional Exit | +| Test.java:3:14:3:17 | Exit | 0 | Test.java:3:14:3:17 | Exit | | Test.java:3:14:3:17 | { ... } | 0 | Test.java:3:14:3:17 | { ... } | | Test.java:3:14:3:17 | { ... } | 1 | Test.java:3:14:3:17 | super(...) | -| Test.java:3:14:3:17 | { ... } | 2 | Test.java:3:14:3:17 | Exit | +| Test.java:3:14:3:17 | { ... } | 2 | Test.java:3:14:3:17 | Normal Exit | +| Test.java:4:14:4:17 | Exceptional Exit | 0 | Test.java:4:14:4:17 | Exceptional Exit | | Test.java:4:14:4:17 | Exit | 0 | Test.java:4:14:4:17 | Exit | +| Test.java:4:14:4:17 | Normal Exit | 0 | Test.java:4:14:4:17 | Normal Exit | | Test.java:4:21:76:2 | { ... } | 0 | Test.java:4:21:76:2 | { ... } | | Test.java:4:21:76:2 | { ... } | 1 | Test.java:5:3:5:12 | var ...; | | Test.java:4:21:76:2 | { ... } | 2 | Test.java:5:11:5:11 | 0 | diff --git a/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.expected b/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.expected index 8440209d0a45..be658fb29158 100644 --- a/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.expected +++ b/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.expected @@ -1,4 +1,7 @@ +| Test.java:3:14:3:17 | { ... } | Test.java:3:14:3:17 | Exit | +| Test.java:4:14:4:17 | Normal Exit | Test.java:4:14:4:17 | Exit | | Test.java:4:21:76:2 | { ... } | Test.java:4:14:4:17 | Exit | +| Test.java:4:21:76:2 | { ... } | Test.java:4:14:4:17 | Normal Exit | | Test.java:4:21:76:2 | { ... } | Test.java:11:14:14:3 | { ... } | | Test.java:4:21:76:2 | { ... } | Test.java:14:10:16:3 | { ... } | | Test.java:4:21:76:2 | { ... } | Test.java:18:3:18:8 | ; | @@ -21,6 +24,7 @@ | Test.java:4:21:76:2 | { ... } | Test.java:63:9:66:4 | { ... } | | Test.java:4:21:76:2 | { ... } | Test.java:70:3:70:9 | ; | | Test.java:18:3:18:8 | ; | Test.java:4:14:4:17 | Exit | +| Test.java:18:3:18:8 | ; | Test.java:4:14:4:17 | Normal Exit | | Test.java:18:3:18:8 | ; | Test.java:22:4:22:10 | ; | | Test.java:18:3:18:8 | ; | Test.java:24:4:24:10 | return ... | | Test.java:18:3:18:8 | ; | Test.java:30:15:33:3 | { ... } | diff --git a/java/ql/test/library-tests/controlflow/basic/bbSuccessor.expected b/java/ql/test/library-tests/controlflow/basic/bbSuccessor.expected index 0886f784fd9a..a6e5d8430c12 100644 --- a/java/ql/test/library-tests/controlflow/basic/bbSuccessor.expected +++ b/java/ql/test/library-tests/controlflow/basic/bbSuccessor.expected @@ -1,3 +1,7 @@ +| Test.java:3:14:3:17 | Exceptional Exit | Test.java:3:14:3:17 | Exit | +| Test.java:3:14:3:17 | { ... } | Test.java:3:14:3:17 | Exit | +| Test.java:4:14:4:17 | Exceptional Exit | Test.java:4:14:4:17 | Exit | +| Test.java:4:14:4:17 | Normal Exit | Test.java:4:14:4:17 | Exit | | Test.java:4:21:76:2 | { ... } | Test.java:11:14:14:3 | { ... } | | Test.java:4:21:76:2 | { ... } | Test.java:14:10:16:3 | { ... } | | Test.java:11:14:14:3 | { ... } | Test.java:18:3:18:8 | ; | @@ -6,7 +10,7 @@ | Test.java:18:3:18:8 | ; | Test.java:24:4:24:10 | return ... | | Test.java:22:4:22:10 | ; | Test.java:30:15:33:3 | { ... } | | Test.java:22:4:22:10 | ; | Test.java:35:3:35:9 | ; | -| Test.java:24:4:24:10 | return ... | Test.java:4:14:4:17 | Exit | +| Test.java:24:4:24:10 | return ... | Test.java:4:14:4:17 | Normal Exit | | Test.java:30:15:33:3 | { ... } | Test.java:35:3:35:9 | ; | | Test.java:35:3:35:9 | ; | Test.java:38:9:38:9 | x | | Test.java:38:9:38:9 | x | Test.java:38:16:41:3 | { ... } | @@ -27,4 +31,4 @@ | Test.java:57:15:60:5 | { ... } | Test.java:70:3:70:9 | ; | | Test.java:60:12:62:5 | { ... } | Test.java:54:26:54:26 | j | | Test.java:63:9:66:4 | { ... } | Test.java:54:26:54:26 | j | -| Test.java:70:3:70:9 | ; | Test.java:4:14:4:17 | Exit | +| Test.java:70:3:70:9 | ; | Test.java:4:14:4:17 | Normal Exit | diff --git a/java/ql/test/library-tests/controlflow/dominance/dominator.expected b/java/ql/test/library-tests/controlflow/dominance/dominator.expected index de43e6721e64..1e385c4fd62f 100644 --- a/java/ql/test/library-tests/controlflow/dominance/dominator.expected +++ b/java/ql/test/library-tests/controlflow/dominance/dominator.expected @@ -27,7 +27,7 @@ | Test.java:14:18:14:18 | y | Test.java:14:14:14:18 | ... + ... | | Test.java:17:3:17:12 | if (...) | Test.java:17:7:17:7 | x | | Test.java:17:7:17:7 | x | Test.java:17:11:17:11 | 0 | -| Test.java:17:7:17:11 | ... < ... | Test.java:2:6:2:9 | Exit | +| Test.java:17:7:17:11 | ... < ... | Test.java:2:6:2:9 | Normal Exit | | Test.java:17:7:17:11 | ... < ... | Test.java:18:4:18:10 | ; | | Test.java:17:7:17:11 | ... < ... | Test.java:20:11:20:11 | z | | Test.java:17:11:17:11 | 0 | Test.java:17:7:17:11 | ... < ... | @@ -163,7 +163,7 @@ | Test.java:83:9:83:9 | c | Test.java:83:5:83:9 | ...=... | | Test.java:85:4:85:15 | if (...) | Test.java:85:8:85:8 | a | | Test.java:85:8:85:8 | a | Test.java:85:13:85:14 | 10 | -| Test.java:85:8:85:14 | ... == ... | Test.java:74:6:74:10 | Exit | +| Test.java:85:8:85:14 | ... == ... | Test.java:74:6:74:10 | Normal Exit | | Test.java:85:8:85:14 | ... == ... | Test.java:86:5:86:10 | break | | Test.java:85:8:85:14 | ... == ... | Test.java:87:4:87:15 | if (...) | | Test.java:85:13:85:14 | 10 | Test.java:85:8:85:14 | ... == ... | diff --git a/java/ql/test/library-tests/guards/Guards.java b/java/ql/test/library-tests/guards/Guards.java new file mode 100644 index 000000000000..b75e549d1669 --- /dev/null +++ b/java/ql/test/library-tests/guards/Guards.java @@ -0,0 +1,146 @@ +public class Guards { + static void chk() { } + + static boolean g(Object lbl) { return lbl.hashCode() > 10; } + + static void checkTrue(boolean b, String msg) { + if (!b) throw new Error(msg); + } + + static void checkFalse(boolean b, String msg) { + checkTrue(!b, msg); + } + + void t1(int[] a, String s) { + if (g("A")) { + chk(); // $ guarded=g(A):true + } else { + chk(); // $ guarded=g(A):false + } + + boolean b = g(1) ? g(2) : true; + if (b != false) { + chk(); // $ guarded=...?...:...:true guarded='b != false:true' guarded=b:true + } else { + chk(); // $ guarded=...?...:...:false guarded='b != false:false' guarded=b:false guarded=g(1):true guarded=g(2):false + } + int sz = a != null ? a.length : 0; + for (int i = 0; i < sz; i++) { + chk(); // $ guarded='a != null:true' guarded='i < sz:true' guarded='sz:not 0' guarded='...?...:...:not 0' guarded='a.length:not 0' guarded='a:not null' + int e = a[i]; + if (e > 2) break; + } + chk(); // nothing guards here + + if (g(3)) + s = "bar"; + switch (s) { + case "bar": + chk(); // $ guarded='s:match "bar"' guarded='s:bar' + break; + case "foo": + chk(); // $ guarded='s:match "foo"' guarded='s:foo' guarded=g(3):false + break; + default: + chk(); // $ guarded='s:non-match "bar"' guarded='s:non-match "foo"' guarded='s:not bar' guarded='s:not foo' guarded='s:match default' guarded=g(3):false + break; + } + + Object o = g(4) ? null : s; + if (o instanceof String) { + chk(); // $ guarded=...instanceof...:true guarded='o:not null' guarded='...?...:...:not null' guarded=g(4):false guarded='s:not null' + } + } + + void t2() { + checkTrue(g(1), "A"); + checkFalse(g(2), "B"); + chk(); // $ guarded='checkTrue(...):no exception' guarded=g(1):true guarded='checkFalse(...):no exception' guarded=g(2):false + } + + void t3() { + boolean b = g(1) && (g(2) || g(3)); + if (b) { + chk(); // $ guarded=b:true guarded='g(...) && ... \|\| ...:true' guarded=g(1):true guarded='g(...) \|\| g(...):true' + } else { + chk(); // $ guarded=b:false guarded='g(...) && ... \|\| ...:false' + } + b = g(4) || !g(5); + if (b) { + chk(); // $ guarded=b:true guarded='g(...) \|\| !...:true' + } else { + chk(); // $ guarded=b:false guarded='g(...) \|\| !...:false' guarded=g(4):false guarded=!...:false guarded=g(5):true + } + } + + enum Val { + E1, + E2, + E3 + } + + void t4() { + Val x = null; // unique value + if (g(1)) x = Val.E1; // unique value + if (g(2)) x = Val.E2; + if (g("Alt2")) x = Val.E2; + if (g(3)) x = Val.E3; // unique value + if (x == null) + chk(); // $ guarded='x == null:true' guarded='x:null' guarded=g(1):false guarded=g(2):false guarded=g(Alt2):false guarded=g(3):false + switch (x) { + case E1: + chk(); // $ guarded='x:match E1' guarded='x:E1' guarded=g(1):true guarded=g(2):false guarded=g(Alt2):false guarded=g(3):false + break; + case E2: + chk(); // $ guarded='x:match E2' guarded='x:E2' guarded=g(3):false + break; + case E3: + chk(); // $ guarded='x:match E3' guarded='x:E3' guarded=g(3):true + break; + } + Object o = g(4) ? new Object() : null; + if (o == null) { + chk(); // $ guarded='o == null:true' guarded='o:null' guarded='...?...:...:null' guarded=g(4):false + } else { + chk(); // $ guarded='o == null:false' guarded='o:not null' guarded='...?...:...:not null' guarded=g(4):true + } + } + + void t5(String foo) { + String base = foo; + if (base == null) { + base = "/user"; + } + if (base.equals("/")) + chk(); // $ guarded=equals(/):true guarded='base:/' guarded='base:not null' guarded='base == null:false' guarded='foo:/' guarded='foo:not null' + } + + void t6() { + Object o = null; + if (g(1)) { + o = new Object(); + if (g(2)) { } + } + if (o != null) { + chk(); // $ guarded='o != null:true' guarded='o:not null' guarded=g(1):true + } else { + chk(); // $ guarded='o != null:false' guarded='o:null' guarded=g(1):false + } + } + + void t7(int[] a) { + boolean found = false; + for (int i = 0; i < a.length; i++) { + boolean answer = a[i] == 42; + if (answer) { + found = true; + } + if (found) { + chk(); // $ guarded=found:true guarded='i < a.length:true' + } + } + if (found) { + chk(); // $ guarded=found:true guarded='i < a.length:false' + } + } +} diff --git a/java/ql/test/library-tests/guards/GuardsInline.expected b/java/ql/test/library-tests/guards/GuardsInline.expected new file mode 100644 index 000000000000..c45d536b7e9a --- /dev/null +++ b/java/ql/test/library-tests/guards/GuardsInline.expected @@ -0,0 +1,91 @@ +| Guards.java:16:7:16:11 | chk(...) | g(A):true | +| Guards.java:18:7:18:11 | chk(...) | g(A):false | +| Guards.java:23:7:23:11 | chk(...) | 'b != false:true' | +| Guards.java:23:7:23:11 | chk(...) | ...?...:...:true | +| Guards.java:23:7:23:11 | chk(...) | b:true | +| Guards.java:25:7:25:11 | chk(...) | 'b != false:false' | +| Guards.java:25:7:25:11 | chk(...) | ...?...:...:false | +| Guards.java:25:7:25:11 | chk(...) | b:false | +| Guards.java:25:7:25:11 | chk(...) | g(1):true | +| Guards.java:25:7:25:11 | chk(...) | g(2):false | +| Guards.java:29:7:29:11 | chk(...) | '...?...:...:not 0' | +| Guards.java:29:7:29:11 | chk(...) | 'a != null:true' | +| Guards.java:29:7:29:11 | chk(...) | 'a.length:not 0' | +| Guards.java:29:7:29:11 | chk(...) | 'a:not null' | +| Guards.java:29:7:29:11 | chk(...) | 'i < sz:true' | +| Guards.java:29:7:29:11 | chk(...) | 'sz:not 0' | +| Guards.java:39:9:39:13 | chk(...) | 's:bar' | +| Guards.java:39:9:39:13 | chk(...) | 's:match "bar"' | +| Guards.java:42:9:42:13 | chk(...) | 's:foo' | +| Guards.java:42:9:42:13 | chk(...) | 's:match "foo"' | +| Guards.java:42:9:42:13 | chk(...) | g(3):false | +| Guards.java:45:9:45:13 | chk(...) | 's:match default' | +| Guards.java:45:9:45:13 | chk(...) | 's:non-match "bar"' | +| Guards.java:45:9:45:13 | chk(...) | 's:non-match "foo"' | +| Guards.java:45:9:45:13 | chk(...) | 's:not bar' | +| Guards.java:45:9:45:13 | chk(...) | 's:not foo' | +| Guards.java:45:9:45:13 | chk(...) | g(3):false | +| Guards.java:51:7:51:11 | chk(...) | '...?...:...:not null' | +| Guards.java:51:7:51:11 | chk(...) | 'o:not null' | +| Guards.java:51:7:51:11 | chk(...) | 's:not null' | +| Guards.java:51:7:51:11 | chk(...) | ...instanceof...:true | +| Guards.java:51:7:51:11 | chk(...) | g(4):false | +| Guards.java:58:5:58:9 | chk(...) | 'checkFalse(...):no exception' | +| Guards.java:58:5:58:9 | chk(...) | 'checkTrue(...):no exception' | +| Guards.java:58:5:58:9 | chk(...) | g(1):true | +| Guards.java:58:5:58:9 | chk(...) | g(2):false | +| Guards.java:64:7:64:11 | chk(...) | 'g(...) && ... \|\| ...:true' | +| Guards.java:64:7:64:11 | chk(...) | 'g(...) \|\| g(...):true' | +| Guards.java:64:7:64:11 | chk(...) | b:true | +| Guards.java:64:7:64:11 | chk(...) | g(1):true | +| Guards.java:66:7:66:11 | chk(...) | 'g(...) && ... \|\| ...:false' | +| Guards.java:66:7:66:11 | chk(...) | b:false | +| Guards.java:70:7:70:11 | chk(...) | 'g(...) \|\| !...:true' | +| Guards.java:70:7:70:11 | chk(...) | b:true | +| Guards.java:72:7:72:11 | chk(...) | !...:false | +| Guards.java:72:7:72:11 | chk(...) | 'g(...) \|\| !...:false' | +| Guards.java:72:7:72:11 | chk(...) | b:false | +| Guards.java:72:7:72:11 | chk(...) | g(4):false | +| Guards.java:72:7:72:11 | chk(...) | g(5):true | +| Guards.java:89:7:89:11 | chk(...) | 'x == null:true' | +| Guards.java:89:7:89:11 | chk(...) | 'x:null' | +| Guards.java:89:7:89:11 | chk(...) | g(1):false | +| Guards.java:89:7:89:11 | chk(...) | g(2):false | +| Guards.java:89:7:89:11 | chk(...) | g(3):false | +| Guards.java:89:7:89:11 | chk(...) | g(Alt2):false | +| Guards.java:92:9:92:13 | chk(...) | 'x:E1' | +| Guards.java:92:9:92:13 | chk(...) | 'x:match E1' | +| Guards.java:92:9:92:13 | chk(...) | g(1):true | +| Guards.java:92:9:92:13 | chk(...) | g(2):false | +| Guards.java:92:9:92:13 | chk(...) | g(3):false | +| Guards.java:92:9:92:13 | chk(...) | g(Alt2):false | +| Guards.java:95:9:95:13 | chk(...) | 'x:E2' | +| Guards.java:95:9:95:13 | chk(...) | 'x:match E2' | +| Guards.java:95:9:95:13 | chk(...) | g(3):false | +| Guards.java:98:9:98:13 | chk(...) | 'x:E3' | +| Guards.java:98:9:98:13 | chk(...) | 'x:match E3' | +| Guards.java:98:9:98:13 | chk(...) | g(3):true | +| Guards.java:103:7:103:11 | chk(...) | '...?...:...:null' | +| Guards.java:103:7:103:11 | chk(...) | 'o == null:true' | +| Guards.java:103:7:103:11 | chk(...) | 'o:null' | +| Guards.java:103:7:103:11 | chk(...) | g(4):false | +| Guards.java:105:7:105:11 | chk(...) | '...?...:...:not null' | +| Guards.java:105:7:105:11 | chk(...) | 'o == null:false' | +| Guards.java:105:7:105:11 | chk(...) | 'o:not null' | +| Guards.java:105:7:105:11 | chk(...) | g(4):true | +| Guards.java:115:7:115:11 | chk(...) | 'base == null:false' | +| Guards.java:115:7:115:11 | chk(...) | 'base:/' | +| Guards.java:115:7:115:11 | chk(...) | 'base:not null' | +| Guards.java:115:7:115:11 | chk(...) | 'foo:/' | +| Guards.java:115:7:115:11 | chk(...) | 'foo:not null' | +| Guards.java:115:7:115:11 | chk(...) | equals(/):true | +| Guards.java:125:7:125:11 | chk(...) | 'o != null:true' | +| Guards.java:125:7:125:11 | chk(...) | 'o:not null' | +| Guards.java:125:7:125:11 | chk(...) | g(1):true | +| Guards.java:127:7:127:11 | chk(...) | 'o != null:false' | +| Guards.java:127:7:127:11 | chk(...) | 'o:null' | +| Guards.java:127:7:127:11 | chk(...) | g(1):false | +| Guards.java:139:9:139:13 | chk(...) | 'i < a.length:true' | +| Guards.java:139:9:139:13 | chk(...) | found:true | +| Guards.java:143:7:143:11 | chk(...) | 'i < a.length:false' | +| Guards.java:143:7:143:11 | chk(...) | found:true | diff --git a/java/ql/test/library-tests/guards/GuardsInline.ql b/java/ql/test/library-tests/guards/GuardsInline.ql new file mode 100644 index 000000000000..1b854659d87b --- /dev/null +++ b/java/ql/test/library-tests/guards/GuardsInline.ql @@ -0,0 +1,51 @@ +import java +import semmle.code.java.controlflow.Guards +import codeql.util.Boolean + +string ppGuard(Guard g, Boolean branch) { + exists(MethodCall mc, Literal s | + mc = g and + mc.getAnArgument() = s and + result = mc.getMethod().getName() + "(" + s.getValue() + ")" + ":" + branch + ) + or + exists(BinaryExpr bin | + bin = g and + result = "'" + bin.getLeftOperand() + bin.getOp() + bin.getRightOperand() + ":" + branch + "'" + ) + or + exists(SwitchCase cc, Expr s, string match, string value | + cc = g and + cc.getSelectorExpr() = s and + ( + cc.(ConstCase).getValue().toString() = value + or + cc instanceof DefaultCase and value = "default" + ) and + if branch = true then match = ":match " else match = ":non-match " + | + result = "'" + s.toString() + match + value + "'" + ) +} + +query predicate guarded(MethodCall mc, string guard) { + mc.getMethod().hasName("chk") and + exists(Guard g, BasicBlock bb, boolean branch | + g.controls(bb, branch) and + mc.getBasicBlock() = bb + | + guard = ppGuard(g, branch) + or + not exists(ppGuard(g, branch)) and + guard = g.toString() + ":" + branch + ) + or + mc.getMethod().hasName("chk") and + exists(Guard g, BasicBlock bb, GuardValue val | + g.valueControls(bb, val) and + not exists(val.asBooleanValue()) and + mc.getBasicBlock() = bb + | + guard = "'" + g.toString() + ":" + val + "'" + ) +} diff --git a/java/ql/test/library-tests/guards/GuardsInline.qlref b/java/ql/test/library-tests/guards/GuardsInline.qlref new file mode 100644 index 000000000000..a9492ac8f238 --- /dev/null +++ b/java/ql/test/library-tests/guards/GuardsInline.qlref @@ -0,0 +1,2 @@ +query: GuardsInline.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/library-tests/guards/guards.expected b/java/ql/test/library-tests/guards/guards.expected index 2c5bff6233ad..ffe67bc3a323 100644 --- a/java/ql/test/library-tests/guards/guards.expected +++ b/java/ql/test/library-tests/guards/guards.expected @@ -1,3 +1,4 @@ +| Test.java:5:7:5:11 | ... < ... | false | Test.java:3:7:3:10 | Normal Exit | | Test.java:5:7:5:11 | ... < ... | false | Test.java:8:3:8:12 | var ...; | | Test.java:5:7:5:11 | ... < ... | false | Test.java:9:9:9:9 | x | | Test.java:5:7:5:11 | ... < ... | false | Test.java:9:17:22:3 | { ... } | @@ -10,6 +11,7 @@ | Test.java:5:7:5:11 | ... < ... | false | Test.java:18:24:20:4 | { ... } | | Test.java:5:7:5:11 | ... < ... | false | Test.java:21:4:21:7 | ; | | Test.java:5:7:5:11 | ... < ... | true | Test.java:5:14:7:3 | { ... } | +| Test.java:9:9:9:14 | ... >= ... | false | Test.java:3:7:3:10 | Normal Exit | | Test.java:9:9:9:14 | ... >= ... | true | Test.java:9:17:22:3 | { ... } | | Test.java:9:9:9:14 | ... >= ... | true | Test.java:11:5:11:8 | ; | | Test.java:9:9:9:14 | ... >= ... | true | Test.java:12:4:12:14 | if (...) | diff --git a/java/ql/test/library-tests/guards/guardslogic.expected b/java/ql/test/library-tests/guards/guardslogic.expected index 6536ad3b69fa..6bf536d3ce1c 100644 --- a/java/ql/test/library-tests/guards/guardslogic.expected +++ b/java/ql/test/library-tests/guards/guardslogic.expected @@ -30,35 +30,45 @@ | Logic.java:29:16:29:19 | g(...) | false | Logic.java:30:30:31:5 | { ... } | | Logic.java:29:16:29:19 | g(...) | true | Logic.java:29:23:29:26 | null | | Logic.java:30:9:30:27 | ...instanceof... | true | Logic.java:30:30:31:5 | { ... } | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:36:5:36:28 | ; | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:37:5:37:15 | if (...) | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:37:17:39:5 | { ... } | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:40:5:40:18 | var ...; | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:36:5:36:28 | ; | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:37:5:37:15 | if (...) | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:37:17:39:5 | { ... } | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:40:5:40:18 | var ...; | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:36:5:36:28 | ; | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:37:5:37:15 | if (...) | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:37:17:39:5 | { ... } | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:40:5:40:18 | var ...; | -| Logic.java:36:5:36:27 | checkFalse(...) | false | Logic.java:37:5:37:15 | if (...) | -| Logic.java:36:5:36:27 | checkFalse(...) | false | Logic.java:37:17:39:5 | { ... } | -| Logic.java:36:5:36:27 | checkFalse(...) | false | Logic.java:40:5:40:18 | var ...; | +| Logic.java:36:5:36:27 | checkFalse(...) | no exception | Logic.java:37:5:37:15 | if (...) | +| Logic.java:36:5:36:27 | checkFalse(...) | no exception | Logic.java:37:17:39:5 | { ... } | +| Logic.java:36:5:36:27 | checkFalse(...) | no exception | Logic.java:40:5:40:18 | var ...; | | Logic.java:36:16:36:21 | g(...) | false | Logic.java:37:5:37:15 | if (...) | | Logic.java:36:16:36:21 | g(...) | false | Logic.java:37:17:39:5 | { ... } | | Logic.java:36:16:36:21 | g(...) | false | Logic.java:40:5:40:18 | var ...; | | Logic.java:37:9:37:14 | ... > ... | true | Logic.java:37:17:39:5 | { ... } | | Logic.java:44:10:44:10 | b | false | Logic.java:44:33:44:35 | msg | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:53:5:53:28 | ; | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:54:5:54:15 | if (...) | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:54:17:56:5 | { ... } | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:57:5:57:18 | var ...; | +| Logic.java:44:10:44:10 | b | true | Logic.java:43:23:43:31 | Normal Exit | +| Logic.java:48:5:48:22 | checkTrue(...) | exception | Logic.java:47:23:47:32 | Exceptional Exit | +| Logic.java:48:5:48:22 | checkTrue(...) | no exception | Logic.java:47:23:47:32 | Normal Exit | +| Logic.java:48:15:48:16 | !... | true | Logic.java:47:23:47:32 | Normal Exit | +| Logic.java:48:16:48:16 | b | false | Logic.java:47:23:47:32 | Normal Exit | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:53:5:53:28 | ; | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:54:5:54:15 | if (...) | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:54:17:56:5 | { ... } | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:57:5:57:18 | var ...; | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:53:5:53:28 | ; | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:54:5:54:15 | if (...) | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:54:17:56:5 | { ... } | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:57:5:57:18 | var ...; | -| Logic.java:53:5:53:27 | checkFalse(...) | false | Logic.java:54:5:54:15 | if (...) | -| Logic.java:53:5:53:27 | checkFalse(...) | false | Logic.java:54:17:56:5 | { ... } | -| Logic.java:53:5:53:27 | checkFalse(...) | false | Logic.java:57:5:57:18 | var ...; | +| Logic.java:53:5:53:27 | checkFalse(...) | no exception | Logic.java:54:5:54:15 | if (...) | +| Logic.java:53:5:53:27 | checkFalse(...) | no exception | Logic.java:54:17:56:5 | { ... } | +| Logic.java:53:5:53:27 | checkFalse(...) | no exception | Logic.java:57:5:57:18 | var ...; | | Logic.java:53:21:53:26 | g(...) | false | Logic.java:54:5:54:15 | if (...) | | Logic.java:53:21:53:26 | g(...) | false | Logic.java:54:17:56:5 | { ... } | | Logic.java:53:21:53:26 | g(...) | false | Logic.java:57:5:57:18 | var ...; | | Logic.java:54:9:54:14 | ... > ... | true | Logic.java:54:17:56:5 | { ... } | | Logic.java:61:10:61:10 | b | false | Logic.java:61:33:61:35 | msg | +| Logic.java:61:10:61:10 | b | true | Logic.java:60:23:60:31 | Normal Exit | +| Logic.java:65:5:65:22 | checkTrue(...) | exception | Logic.java:64:23:64:32 | Exceptional Exit | +| Logic.java:65:5:65:22 | checkTrue(...) | no exception | Logic.java:64:23:64:32 | Normal Exit | +| Logic.java:65:15:65:16 | !... | true | Logic.java:64:23:64:32 | Normal Exit | +| Logic.java:65:16:65:16 | b | false | Logic.java:64:23:64:32 | Normal Exit | diff --git a/java/ql/test/library-tests/guards/guardslogic.ql b/java/ql/test/library-tests/guards/guardslogic.ql index afbb313d6645..f2ce9fdaa365 100644 --- a/java/ql/test/library-tests/guards/guardslogic.ql +++ b/java/ql/test/library-tests/guards/guardslogic.ql @@ -1,8 +1,9 @@ import java import semmle.code.java.controlflow.Guards -from Guard g, BasicBlock bb, boolean branch +from Guard g, BasicBlock bb, GuardValue gv where - g.controls(bb, branch) and - g.getEnclosingCallable().getDeclaringType().hasName("Logic") -select g, branch, bb + g.valueControls(bb, gv) and + g.getEnclosingCallable().getDeclaringType().hasName("Logic") and + (exists(gv.asBooleanValue()) or gv.isThrowsException() or gv.getDualValue().isThrowsException()) +select g, gv, bb diff --git a/java/ql/test/library-tests/guards/guardspreconditions.expected b/java/ql/test/library-tests/guards/guardspreconditions.expected index 9c0136c8e6e9..2d4597f0282b 100644 --- a/java/ql/test/library-tests/guards/guardspreconditions.expected +++ b/java/ql/test/library-tests/guards/guardspreconditions.expected @@ -1,20 +1,44 @@ -| Preconditions.java:8:9:8:31 | assertTrue(...) | true | Preconditions.java:9:9:9:18 | ; | -| Preconditions.java:13:9:13:32 | assertTrue(...) | true | Preconditions.java:14:9:14:18 | ; | -| Preconditions.java:18:9:18:33 | assertFalse(...) | false | Preconditions.java:19:9:19:18 | ; | -| Preconditions.java:23:9:23:32 | assertFalse(...) | false | Preconditions.java:24:9:24:18 | ; | -| Preconditions.java:28:9:28:41 | assertTrue(...) | true | Preconditions.java:29:9:29:18 | ; | -| Preconditions.java:33:9:33:42 | assertTrue(...) | true | Preconditions.java:34:9:34:18 | ; | -| Preconditions.java:38:9:38:43 | assertFalse(...) | false | Preconditions.java:39:9:39:18 | ; | -| Preconditions.java:43:9:43:42 | assertFalse(...) | false | Preconditions.java:44:9:44:18 | ; | -| Preconditions.java:48:9:48:35 | assertTrue(...) | true | Preconditions.java:49:9:49:18 | ; | -| Preconditions.java:53:9:53:36 | assertTrue(...) | true | Preconditions.java:54:9:54:18 | ; | -| Preconditions.java:58:9:58:37 | assertFalse(...) | false | Preconditions.java:59:9:59:18 | ; | -| Preconditions.java:63:9:63:36 | assertFalse(...) | false | Preconditions.java:64:9:64:18 | ; | -| Preconditions.java:68:9:68:45 | assertTrue(...) | true | Preconditions.java:69:9:69:18 | ; | -| Preconditions.java:73:9:73:46 | assertTrue(...) | true | Preconditions.java:74:9:74:18 | ; | -| Preconditions.java:78:9:78:47 | assertFalse(...) | false | Preconditions.java:79:9:79:18 | ; | -| Preconditions.java:83:9:83:46 | assertFalse(...) | false | Preconditions.java:84:9:84:18 | ; | -| Preconditions.java:88:9:88:15 | t(...) | true | Preconditions.java:89:9:89:18 | ; | -| Preconditions.java:93:9:93:16 | t(...) | true | Preconditions.java:94:9:94:18 | ; | -| Preconditions.java:98:9:98:16 | f(...) | false | Preconditions.java:99:9:99:18 | ; | -| Preconditions.java:103:9:103:15 | f(...) | false | Preconditions.java:104:9:104:18 | ; | +| Preconditions.java:8:9:8:31 | assertTrue(...) | exception | Preconditions.java:7:10:7:14 | Exceptional Exit | +| Preconditions.java:8:9:8:31 | assertTrue(...) | no exception | Preconditions.java:9:9:9:18 | ; | +| Preconditions.java:13:9:13:32 | assertTrue(...) | exception | Preconditions.java:12:10:12:14 | Exceptional Exit | +| Preconditions.java:13:9:13:32 | assertTrue(...) | no exception | Preconditions.java:14:9:14:18 | ; | +| Preconditions.java:18:9:18:33 | assertFalse(...) | exception | Preconditions.java:17:10:17:14 | Exceptional Exit | +| Preconditions.java:18:9:18:33 | assertFalse(...) | no exception | Preconditions.java:19:9:19:18 | ; | +| Preconditions.java:23:9:23:32 | assertFalse(...) | exception | Preconditions.java:22:10:22:14 | Exceptional Exit | +| Preconditions.java:23:9:23:32 | assertFalse(...) | no exception | Preconditions.java:24:9:24:18 | ; | +| Preconditions.java:28:9:28:41 | assertTrue(...) | exception | Preconditions.java:27:10:27:14 | Exceptional Exit | +| Preconditions.java:28:9:28:41 | assertTrue(...) | no exception | Preconditions.java:29:9:29:18 | ; | +| Preconditions.java:33:9:33:42 | assertTrue(...) | exception | Preconditions.java:32:10:32:14 | Exceptional Exit | +| Preconditions.java:33:9:33:42 | assertTrue(...) | no exception | Preconditions.java:34:9:34:18 | ; | +| Preconditions.java:38:9:38:43 | assertFalse(...) | exception | Preconditions.java:37:10:37:14 | Exceptional Exit | +| Preconditions.java:38:9:38:43 | assertFalse(...) | no exception | Preconditions.java:39:9:39:18 | ; | +| Preconditions.java:43:9:43:42 | assertFalse(...) | exception | Preconditions.java:42:10:42:14 | Exceptional Exit | +| Preconditions.java:43:9:43:42 | assertFalse(...) | no exception | Preconditions.java:44:9:44:18 | ; | +| Preconditions.java:48:9:48:35 | assertTrue(...) | exception | Preconditions.java:47:10:47:14 | Exceptional Exit | +| Preconditions.java:48:9:48:35 | assertTrue(...) | no exception | Preconditions.java:49:9:49:18 | ; | +| Preconditions.java:53:9:53:36 | assertTrue(...) | exception | Preconditions.java:52:10:52:15 | Exceptional Exit | +| Preconditions.java:53:9:53:36 | assertTrue(...) | no exception | Preconditions.java:54:9:54:18 | ; | +| Preconditions.java:58:9:58:37 | assertFalse(...) | exception | Preconditions.java:57:10:57:15 | Exceptional Exit | +| Preconditions.java:58:9:58:37 | assertFalse(...) | no exception | Preconditions.java:59:9:59:18 | ; | +| Preconditions.java:63:9:63:36 | assertFalse(...) | exception | Preconditions.java:62:10:62:15 | Exceptional Exit | +| Preconditions.java:63:9:63:36 | assertFalse(...) | no exception | Preconditions.java:64:9:64:18 | ; | +| Preconditions.java:68:9:68:45 | assertTrue(...) | exception | Preconditions.java:67:10:67:15 | Exceptional Exit | +| Preconditions.java:68:9:68:45 | assertTrue(...) | no exception | Preconditions.java:69:9:69:18 | ; | +| Preconditions.java:73:9:73:46 | assertTrue(...) | exception | Preconditions.java:72:10:72:15 | Exceptional Exit | +| Preconditions.java:73:9:73:46 | assertTrue(...) | no exception | Preconditions.java:74:9:74:18 | ; | +| Preconditions.java:78:9:78:47 | assertFalse(...) | exception | Preconditions.java:77:10:77:15 | Exceptional Exit | +| Preconditions.java:78:9:78:47 | assertFalse(...) | no exception | Preconditions.java:79:9:79:18 | ; | +| Preconditions.java:83:9:83:46 | assertFalse(...) | exception | Preconditions.java:82:10:82:15 | Exceptional Exit | +| Preconditions.java:83:9:83:46 | assertFalse(...) | no exception | Preconditions.java:84:9:84:18 | ; | +| Preconditions.java:88:9:88:15 | t(...) | exception | Preconditions.java:87:10:87:15 | Exceptional Exit | +| Preconditions.java:88:9:88:15 | t(...) | no exception | Preconditions.java:89:9:89:18 | ; | +| Preconditions.java:93:9:93:16 | t(...) | exception | Preconditions.java:92:10:92:15 | Exceptional Exit | +| Preconditions.java:93:9:93:16 | t(...) | no exception | Preconditions.java:94:9:94:18 | ; | +| Preconditions.java:98:9:98:16 | f(...) | exception | Preconditions.java:97:10:97:15 | Exceptional Exit | +| Preconditions.java:98:9:98:16 | f(...) | no exception | Preconditions.java:99:9:99:18 | ; | +| Preconditions.java:103:9:103:15 | f(...) | exception | Preconditions.java:102:10:102:15 | Exceptional Exit | +| Preconditions.java:103:9:103:15 | f(...) | no exception | Preconditions.java:104:9:104:18 | ; | +| Preconditions.java:108:9:108:46 | assertTrue(...) | exception | Preconditions.java:107:17:107:17 | Exceptional Exit | +| Preconditions.java:108:9:108:46 | assertTrue(...) | no exception | Preconditions.java:107:17:107:17 | Normal Exit | +| Preconditions.java:112:9:112:47 | assertFalse(...) | exception | Preconditions.java:111:17:111:17 | Exceptional Exit | +| Preconditions.java:112:9:112:47 | assertFalse(...) | no exception | Preconditions.java:111:17:111:17 | Normal Exit | diff --git a/java/ql/test/library-tests/guards/guardspreconditions.ql b/java/ql/test/library-tests/guards/guardspreconditions.ql index 12c823e9638c..77e4a4e48c08 100644 --- a/java/ql/test/library-tests/guards/guardspreconditions.ql +++ b/java/ql/test/library-tests/guards/guardspreconditions.ql @@ -1,8 +1,9 @@ import java import semmle.code.java.controlflow.Guards -from Guard g, BasicBlock bb, boolean branch +from Guard g, BasicBlock bb, GuardValue gv where - g.controls(bb, branch) and - g.getEnclosingCallable().getDeclaringType().hasName("Preconditions") -select g, branch, bb + g.valueControls(bb, gv) and + g.getEnclosingCallable().getDeclaringType().hasName("Preconditions") and + (gv.isThrowsException() or gv.getDualValue().isThrowsException()) +select g, gv, bb diff --git a/java/ql/test/library-tests/guards12/guard.expected b/java/ql/test/library-tests/guards12/guard.expected index 0980e891d84a..fade9fd4e8fc 100644 --- a/java/ql/test/library-tests/guards12/guard.expected +++ b/java/ql/test/library-tests/guards12/guard.expected @@ -51,13 +51,5 @@ hasBranchEdge | Test.java:12:7:12:17 | case ... | Test.java:9:13:9:13 | s | Test.java:12:12:12:14 | "d" | true | false | Test.java:13:7:13:16 | default | | Test.java:12:7:12:17 | case ... | Test.java:9:13:9:13 | s | Test.java:12:12:12:14 | "d" | true | true | Test.java:12:7:12:17 | case ... | | Test.java:17:26:17:33 | ... == ... | Test.java:17:26:17:28 | len | Test.java:17:33:17:33 | 4 | true | true | Test.java:17:38:17:40 | { ... } | -| Test.java:18:7:18:17 | case ... | Test.java:16:13:16:13 | s | Test.java:18:12:18:14 | "e" | true | false | Test.java:19:7:19:16 | default | -| Test.java:18:7:18:17 | case ... | Test.java:16:13:16:13 | s | Test.java:18:12:18:14 | "e" | true | true | Test.java:18:7:18:17 | case ... | -| Test.java:22:7:22:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:22:12:22:14 | "f" | true | false | Test.java:25:7:25:16 | default | -| Test.java:22:7:22:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:22:12:22:14 | "f" | true | true | Test.java:22:7:22:17 | case ... | | Test.java:23:27:23:34 | ... == ... | Test.java:23:27:23:29 | len | Test.java:23:34:23:34 | 4 | true | true | Test.java:23:39:23:41 | { ... } | -| Test.java:24:7:24:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:24:12:24:14 | "g" | true | false | Test.java:25:7:25:16 | default | -| Test.java:24:7:24:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:24:12:24:14 | "g" | true | true | Test.java:24:7:24:17 | case ... | -| Test.java:28:7:28:15 | case ... | Test.java:27:13:27:13 | s | Test.java:28:12:28:14 | "h" | true | false | Test.java:33:7:33:14 | default | | Test.java:28:7:28:15 | case ... | Test.java:27:13:27:13 | s | Test.java:28:12:28:14 | "h" | true | true | Test.java:28:7:28:15 | case ... | -| Test.java:30:7:30:15 | case ... | Test.java:27:13:27:13 | s | Test.java:30:12:30:14 | "i" | true | false | Test.java:33:7:33:14 | default | diff --git a/java/ql/test/library-tests/guards12/guard.ql b/java/ql/test/library-tests/guards12/guard.ql index cff2845ad9f8..d53dfdbc7135 100644 --- a/java/ql/test/library-tests/guards12/guard.ql +++ b/java/ql/test/library-tests/guards12/guard.ql @@ -1,8 +1,8 @@ import java import semmle.code.java.controlflow.Guards -query predicate hasBranchEdge(Guard g, BasicBlock bb1, BasicBlock bb2, boolean branch) { - g.hasBranchEdge(bb1, bb2, branch) +query predicate hasBranchEdge(Guard g, BasicBlock bb1, BasicBlock bb2, GuardValue branch) { + g.hasValueBranchEdge(bb1, bb2, branch) } from Guard g, BasicBlock bb, boolean branch, Expr e1, Expr e2, boolean pol diff --git a/java/ql/test/library-tests/java7/MultiCatch/MultiCatchControlFlow.expected b/java/ql/test/library-tests/java7/MultiCatch/MultiCatchControlFlow.expected index a849ab5392d5..d389eb658f5e 100644 --- a/java/ql/test/library-tests/java7/MultiCatch/MultiCatchControlFlow.expected +++ b/java/ql/test/library-tests/java7/MultiCatch/MultiCatchControlFlow.expected @@ -1,4 +1,4 @@ -| MultiCatch.java:6:14:6:23 | super(...) | MultiCatch.java:6:14:6:23 | Exit | +| MultiCatch.java:6:14:6:23 | super(...) | MultiCatch.java:6:14:6:23 | Normal Exit | | MultiCatch.java:6:14:6:23 | { ... } | MultiCatch.java:6:14:6:23 | super(...) | | MultiCatch.java:8:2:20:2 | { ... } | MultiCatch.java:9:3:19:3 | try ... | | MultiCatch.java:9:3:19:3 | try ... | MultiCatch.java:10:3:15:3 | { ... } | @@ -16,7 +16,7 @@ | MultiCatch.java:17:4:17:4 | e | MultiCatch.java:17:4:17:22 | printStackTrace(...) | | MultiCatch.java:17:4:17:22 | printStackTrace(...) | MultiCatch.java:18:10:18:10 | e | | MultiCatch.java:17:4:17:23 | ; | MultiCatch.java:17:4:17:4 | e | -| MultiCatch.java:18:4:18:11 | throw ... | MultiCatch.java:7:14:7:23 | Exit | +| MultiCatch.java:18:4:18:11 | throw ... | MultiCatch.java:7:14:7:23 | Exceptional Exit | | MultiCatch.java:18:10:18:10 | e | MultiCatch.java:18:4:18:11 | throw ... | | MultiCatch.java:23:2:33:2 | { ... } | MultiCatch.java:24:3:32:4 | try ... | | MultiCatch.java:24:3:32:4 | try ... | MultiCatch.java:25:3:31:3 | { ... } | @@ -31,12 +31,12 @@ | MultiCatch.java:28:12:28:12 | c | MultiCatch.java:30:10:30:24 | new Exception(...) | | MultiCatch.java:29:5:29:29 | throw ... | MultiCatch.java:31:5:31:37 | catch (...) | | MultiCatch.java:29:11:29:28 | new SQLException(...) | MultiCatch.java:29:5:29:29 | throw ... | -| MultiCatch.java:30:4:30:25 | throw ... | MultiCatch.java:22:14:22:24 | Exit | +| MultiCatch.java:30:4:30:25 | throw ... | MultiCatch.java:22:14:22:24 | Exceptional Exit | | MultiCatch.java:30:4:30:25 | throw ... | MultiCatch.java:31:5:31:37 | catch (...) | | MultiCatch.java:30:10:30:24 | new Exception(...) | MultiCatch.java:30:4:30:25 | throw ... | | MultiCatch.java:31:5:31:37 | catch (...) | MultiCatch.java:31:36:31:36 | e | | MultiCatch.java:31:36:31:36 | e | MultiCatch.java:32:3:32:4 | { ... } | -| MultiCatch.java:32:3:32:4 | { ... } | MultiCatch.java:22:14:22:24 | Exit | +| MultiCatch.java:32:3:32:4 | { ... } | MultiCatch.java:22:14:22:24 | Normal Exit | | MultiCatch.java:36:2:42:2 | { ... } | MultiCatch.java:37:3:41:4 | try ... | | MultiCatch.java:37:3:41:4 | try ... | MultiCatch.java:38:3:40:3 | { ... } | | MultiCatch.java:38:3:40:3 | { ... } | MultiCatch.java:39:10:39:26 | new IOException(...) | @@ -45,4 +45,4 @@ | MultiCatch.java:39:10:39:26 | new IOException(...) | MultiCatch.java:40:5:40:22 | catch (...) | | MultiCatch.java:40:5:40:22 | catch (...) | MultiCatch.java:40:21:40:21 | e | | MultiCatch.java:40:21:40:21 | e | MultiCatch.java:41:3:41:4 | { ... } | -| MultiCatch.java:41:3:41:4 | { ... } | MultiCatch.java:35:14:35:26 | Exit | +| MultiCatch.java:41:3:41:4 | { ... } | MultiCatch.java:35:14:35:26 | Normal Exit | diff --git a/java/ql/test/library-tests/pattern-instanceof/cfg.expected b/java/ql/test/library-tests/pattern-instanceof/cfg.expected index b6caebd532a6..5ef73c8ac78d 100644 --- a/java/ql/test/library-tests/pattern-instanceof/cfg.expected +++ b/java/ql/test/library-tests/pattern-instanceof/cfg.expected @@ -1,5 +1,9 @@ -| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Exit | +| Test.java:1:14:1:17 | Exceptional Exit | Test.java:1:14:1:17 | Exit | +| Test.java:1:14:1:17 | Normal Exit | Test.java:1:14:1:17 | Exit | +| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Normal Exit | | Test.java:1:14:1:17 | { ... } | Test.java:1:14:1:17 | super(...) | +| Test.java:3:22:3:25 | Exceptional Exit | Test.java:3:22:3:25 | Exit | +| Test.java:3:22:3:25 | Normal Exit | Test.java:3:22:3:25 | Exit | | Test.java:3:40:20:3 | { ... } | Test.java:5:5:5:34 | var ...; | | Test.java:5:5:5:34 | var ...; | Test.java:5:26:5:33 | source(...) | | Test.java:5:12:5:33 | directTaint | Test.java:6:5:6:36 | var ...; | @@ -29,7 +33,7 @@ | Test.java:11:12:11:12 | s | Test.java:11:7:11:13 | sink(...) | | Test.java:14:5:14:92 | if (...) | Test.java:14:9:14:9 | o | | Test.java:14:9:14:9 | o | Test.java:14:9:14:91 | ...instanceof... | -| Test.java:14:9:14:91 | ...instanceof... | Test.java:3:22:3:25 | Exit | +| Test.java:14:9:14:91 | ...instanceof... | Test.java:3:22:3:25 | Normal Exit | | Test.java:14:9:14:91 | ...instanceof... | Test.java:14:41:14:47 | tainted | | Test.java:14:22:14:91 | Outer(...) | Test.java:14:94:18:5 | { ... } | | Test.java:14:28:14:67 | Inner(...) | Test.java:14:77:14:90 | alsoNotTainted | @@ -43,17 +47,23 @@ | Test.java:16:7:16:22 | sink(...) | Test.java:17:7:17:27 | ; | | Test.java:16:7:16:23 | ; | Test.java:16:12:16:21 | notTainted | | Test.java:16:12:16:21 | notTainted | Test.java:16:7:16:22 | sink(...) | -| Test.java:17:7:17:26 | sink(...) | Test.java:3:22:3:25 | Exit | +| Test.java:17:7:17:26 | sink(...) | Test.java:3:22:3:25 | Normal Exit | | Test.java:17:7:17:27 | ; | Test.java:17:12:17:25 | alsoNotTainted | | Test.java:17:12:17:25 | alsoNotTainted | Test.java:17:7:17:26 | sink(...) | +| Test.java:22:24:22:29 | Exceptional Exit | Test.java:22:24:22:29 | Exit | +| Test.java:22:24:22:29 | Normal Exit | Test.java:22:24:22:29 | Exit | | Test.java:22:33:22:53 | { ... } | Test.java:22:42:22:50 | "tainted" | -| Test.java:22:35:22:51 | return ... | Test.java:22:24:22:29 | Exit | +| Test.java:22:35:22:51 | return ... | Test.java:22:24:22:29 | Normal Exit | | Test.java:22:42:22:50 | "tainted" | Test.java:22:35:22:51 | return ... | -| Test.java:23:40:23:42 | { ... } | Test.java:23:22:23:25 | Exit | +| Test.java:23:22:23:25 | Exceptional Exit | Test.java:23:22:23:25 | Exit | +| Test.java:23:22:23:25 | Normal Exit | Test.java:23:22:23:25 | Exit | +| Test.java:23:40:23:42 | { ... } | Test.java:23:22:23:25 | Normal Exit | | Test.java:27:8:27:12 | ...=... | Test.java:27:8:27:12 | ; | -| Test.java:27:8:27:12 | ...=... | Test.java:27:8:27:12 | Exit | +| Test.java:27:8:27:12 | ...=... | Test.java:27:8:27:12 | Normal Exit | | Test.java:27:8:27:12 | ; | Test.java:27:8:27:12 | this | | Test.java:27:8:27:12 | ; | Test.java:27:8:27:12 | this | +| Test.java:27:8:27:12 | Exceptional Exit | Test.java:27:8:27:12 | Exit | +| Test.java:27:8:27:12 | Normal Exit | Test.java:27:8:27:12 | Exit | | Test.java:27:8:27:12 | i | Test.java:27:8:27:12 | ...=... | | Test.java:27:8:27:12 | otherField | Test.java:27:8:27:12 | ...=... | | Test.java:27:8:27:12 | super(...) | Test.java:27:8:27:12 | ; | @@ -61,9 +71,11 @@ | Test.java:27:8:27:12 | this | Test.java:27:8:27:12 | otherField | | Test.java:27:8:27:12 | { ... } | Test.java:27:8:27:12 | super(...) | | Test.java:28:8:28:12 | ...=... | Test.java:28:8:28:12 | ; | -| Test.java:28:8:28:12 | ...=... | Test.java:28:8:28:12 | Exit | +| Test.java:28:8:28:12 | ...=... | Test.java:28:8:28:12 | Normal Exit | | Test.java:28:8:28:12 | ; | Test.java:28:8:28:12 | this | | Test.java:28:8:28:12 | ; | Test.java:28:8:28:12 | this | +| Test.java:28:8:28:12 | Exceptional Exit | Test.java:28:8:28:12 | Exit | +| Test.java:28:8:28:12 | Normal Exit | Test.java:28:8:28:12 | Exit | | Test.java:28:8:28:12 | nonTaintedField | Test.java:28:8:28:12 | ...=... | | Test.java:28:8:28:12 | super(...) | Test.java:28:8:28:12 | ; | | Test.java:28:8:28:12 | taintedField | Test.java:28:8:28:12 | ...=... | diff --git a/java/ql/test/library-tests/pattern-switch/cfg/test.expected b/java/ql/test/library-tests/pattern-switch/cfg/test.expected index c29059faf33e..f9058bd8f4c2 100644 --- a/java/ql/test/library-tests/pattern-switch/cfg/test.expected +++ b/java/ql/test/library-tests/pattern-switch/cfg/test.expected @@ -1,6 +1,12 @@ -| Exhaustive.java:1:14:1:23 | super(...) | Exhaustive.java:1:14:1:23 | Exit | +| Exhaustive.java:1:14:1:23 | Exceptional Exit | Exhaustive.java:1:14:1:23 | Exit | +| Exhaustive.java:1:14:1:23 | Normal Exit | Exhaustive.java:1:14:1:23 | Exit | +| Exhaustive.java:1:14:1:23 | super(...) | Exhaustive.java:1:14:1:23 | Normal Exit | | Exhaustive.java:1:14:1:23 | { ... } | Exhaustive.java:1:14:1:23 | super(...) | -| Exhaustive.java:3:8:3:8 | super(...) | Exhaustive.java:3:8:3:8 | Exit | +| Exhaustive.java:3:8:3:8 | Exceptional Exit | Exhaustive.java:3:8:3:8 | Exit | +| Exhaustive.java:3:8:3:8 | Exceptional Exit | Exhaustive.java:3:8:3:8 | Exit | +| Exhaustive.java:3:8:3:8 | Normal Exit | Exhaustive.java:3:8:3:8 | Exit | +| Exhaustive.java:3:8:3:8 | Normal Exit | Exhaustive.java:3:8:3:8 | Exit | +| Exhaustive.java:3:8:3:8 | super(...) | Exhaustive.java:3:8:3:8 | Normal Exit | | Exhaustive.java:3:8:3:8 | { ... } | Exhaustive.java:3:8:3:8 | super(...) | | Exhaustive.java:3:8:3:8 | { ... } | Exhaustive.java:3:12:3:12 | ; | | Exhaustive.java:3:12:3:12 | ...=... | Exhaustive.java:3:15:3:15 | ; | @@ -9,13 +15,19 @@ | Exhaustive.java:3:15:3:15 | ...=... | Exhaustive.java:3:18:3:18 | ; | | Exhaustive.java:3:15:3:15 | ; | Exhaustive.java:3:15:3:15 | new E(...) | | Exhaustive.java:3:15:3:15 | new E(...) | Exhaustive.java:3:15:3:15 | ...=... | -| Exhaustive.java:3:18:3:18 | ...=... | Exhaustive.java:3:8:3:8 | Exit | +| Exhaustive.java:3:18:3:18 | ...=... | Exhaustive.java:3:8:3:8 | Normal Exit | | Exhaustive.java:3:18:3:18 | ; | Exhaustive.java:3:18:3:18 | new E(...) | | Exhaustive.java:3:18:3:18 | new E(...) | Exhaustive.java:3:18:3:18 | ...=... | -| Exhaustive.java:5:15:5:15 | super(...) | Exhaustive.java:5:15:5:15 | Exit | +| Exhaustive.java:5:15:5:15 | Exceptional Exit | Exhaustive.java:5:15:5:15 | Exit | +| Exhaustive.java:5:15:5:15 | Normal Exit | Exhaustive.java:5:15:5:15 | Exit | +| Exhaustive.java:5:15:5:15 | super(...) | Exhaustive.java:5:15:5:15 | Normal Exit | | Exhaustive.java:5:15:5:15 | { ... } | Exhaustive.java:5:15:5:15 | super(...) | -| Exhaustive.java:6:15:6:15 | super(...) | Exhaustive.java:6:15:6:15 | Exit | +| Exhaustive.java:6:15:6:15 | Exceptional Exit | Exhaustive.java:6:15:6:15 | Exit | +| Exhaustive.java:6:15:6:15 | Normal Exit | Exhaustive.java:6:15:6:15 | Exit | +| Exhaustive.java:6:15:6:15 | super(...) | Exhaustive.java:6:15:6:15 | Normal Exit | | Exhaustive.java:6:15:6:15 | { ... } | Exhaustive.java:6:15:6:15 | super(...) | +| Exhaustive.java:8:22:8:25 | Exceptional Exit | Exhaustive.java:8:22:8:25 | Exit | +| Exhaustive.java:8:22:8:25 | Normal Exit | Exhaustive.java:8:22:8:25 | Exit | | Exhaustive.java:8:47:35:3 | { ... } | Exhaustive.java:11:5:11:14 | switch (...) | | Exhaustive.java:11:5:11:14 | switch (...) | Exhaustive.java:11:13:11:13 | o | | Exhaustive.java:11:13:11:13 | o | Exhaustive.java:12:7:12:22 | case | @@ -50,11 +62,15 @@ | Exhaustive.java:30:13:30:13 | i | Exhaustive.java:31:7:31:15 | case | | Exhaustive.java:31:7:31:15 | case | Exhaustive.java:31:14:31:14 | | | Exhaustive.java:31:7:31:15 | case | Exhaustive.java:32:7:32:15 | case | -| Exhaustive.java:31:14:31:14 | | Exhaustive.java:8:22:8:25 | Exit | +| Exhaustive.java:31:14:31:14 | | Exhaustive.java:8:22:8:25 | Normal Exit | | Exhaustive.java:32:7:32:15 | case | Exhaustive.java:32:14:32:14 | | -| Exhaustive.java:32:14:32:14 | | Exhaustive.java:8:22:8:25 | Exit | -| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Exit | +| Exhaustive.java:32:14:32:14 | | Exhaustive.java:8:22:8:25 | Normal Exit | +| Test.java:1:14:1:17 | Exceptional Exit | Test.java:1:14:1:17 | Exit | +| Test.java:1:14:1:17 | Normal Exit | Test.java:1:14:1:17 | Exit | +| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Normal Exit | | Test.java:1:14:1:17 | { ... } | Test.java:1:14:1:17 | super(...) | +| Test.java:3:22:3:25 | Exceptional Exit | Test.java:3:22:3:25 | Exit | +| Test.java:3:22:3:25 | Normal Exit | Test.java:3:22:3:25 | Exit | | Test.java:3:41:134:3 | { ... } | Test.java:5:6:5:19 | switch (...) | | Test.java:5:6:5:19 | switch (...) | Test.java:5:14:5:18 | thing | | Test.java:5:14:5:18 | thing | Test.java:6:8:6:23 | case | @@ -380,11 +396,13 @@ | Test.java:130:8:130:21 | case | Test.java:130:20:130:20 | | | Test.java:130:8:130:21 | case | Test.java:131:8:131:15 | default | | Test.java:130:20:130:20 | | Test.java:131:8:131:15 | default | -| Test.java:131:8:131:15 | default | Test.java:3:22:3:25 | Exit | +| Test.java:131:8:131:15 | default | Test.java:3:22:3:25 | Normal Exit | | Test.java:138:8:138:8 | ...=... | Test.java:138:8:138:8 | ; | -| Test.java:138:8:138:8 | ...=... | Test.java:138:8:138:8 | Exit | +| Test.java:138:8:138:8 | ...=... | Test.java:138:8:138:8 | Normal Exit | | Test.java:138:8:138:8 | ; | Test.java:138:8:138:8 | this | | Test.java:138:8:138:8 | ; | Test.java:138:8:138:8 | this | +| Test.java:138:8:138:8 | Exceptional Exit | Test.java:138:8:138:8 | Exit | +| Test.java:138:8:138:8 | Normal Exit | Test.java:138:8:138:8 | Exit | | Test.java:138:8:138:8 | b | Test.java:138:8:138:8 | ...=... | | Test.java:138:8:138:8 | field3 | Test.java:138:8:138:8 | ...=... | | Test.java:138:8:138:8 | super(...) | Test.java:138:8:138:8 | ; | @@ -392,9 +410,11 @@ | Test.java:138:8:138:8 | this | Test.java:138:8:138:8 | field3 | | Test.java:138:8:138:8 | { ... } | Test.java:138:8:138:8 | super(...) | | Test.java:139:8:139:8 | ...=... | Test.java:139:8:139:8 | ; | -| Test.java:139:8:139:8 | ...=... | Test.java:139:8:139:8 | Exit | +| Test.java:139:8:139:8 | ...=... | Test.java:139:8:139:8 | Normal Exit | | Test.java:139:8:139:8 | ; | Test.java:139:8:139:8 | this | | Test.java:139:8:139:8 | ; | Test.java:139:8:139:8 | this | +| Test.java:139:8:139:8 | Exceptional Exit | Test.java:139:8:139:8 | Exit | +| Test.java:139:8:139:8 | Normal Exit | Test.java:139:8:139:8 | Exit | | Test.java:139:8:139:8 | field1 | Test.java:139:8:139:8 | ...=... | | Test.java:139:8:139:8 | field2 | Test.java:139:8:139:8 | ...=... | | Test.java:139:8:139:8 | super(...) | Test.java:139:8:139:8 | ; | diff --git a/java/ql/test/library-tests/successors/CloseReaderTest/TestSucc.expected b/java/ql/test/library-tests/successors/CloseReaderTest/TestSucc.expected index a6f3820334af..fc529feba134 100644 --- a/java/ql/test/library-tests/successors/CloseReaderTest/TestSucc.expected +++ b/java/ql/test/library-tests/successors/CloseReaderTest/TestSucc.expected @@ -1,5 +1,9 @@ -| CloseReaderTest.java:8:14:8:28 | super(...) | CloseReaderTest.java:8:14:8:28 | Exit | +| CloseReaderTest.java:8:14:8:28 | Exceptional Exit | CloseReaderTest.java:8:14:8:28 | Exit | +| CloseReaderTest.java:8:14:8:28 | Normal Exit | CloseReaderTest.java:8:14:8:28 | Exit | +| CloseReaderTest.java:8:14:8:28 | super(...) | CloseReaderTest.java:8:14:8:28 | Normal Exit | | CloseReaderTest.java:8:14:8:28 | { ... } | CloseReaderTest.java:8:14:8:28 | super(...) | +| CloseReaderTest.java:9:23:9:34 | Exceptional Exit | CloseReaderTest.java:9:23:9:34 | Exit | +| CloseReaderTest.java:9:23:9:34 | Normal Exit | CloseReaderTest.java:9:23:9:34 | Exit | | CloseReaderTest.java:10:2:24:2 | { ... } | CloseReaderTest.java:12:3:13:42 | ; | | CloseReaderTest.java:12:3:12:12 | System.out | CloseReaderTest.java:12:20:12:40 | "Enter password for " | | CloseReaderTest.java:12:3:13:41 | print(...) | CloseReaderTest.java:14:3:14:21 | ; | @@ -19,12 +23,12 @@ | CloseReaderTest.java:16:5:16:13 | System.in | CloseReaderTest.java:15:45:16:14 | new InputStreamReader(...) | | CloseReaderTest.java:17:3:23:3 | try ... | CloseReaderTest.java:18:3:20:3 | { ... } | | CloseReaderTest.java:18:3:20:3 | { ... } | CloseReaderTest.java:19:11:19:15 | stdin | -| CloseReaderTest.java:19:4:19:27 | return ... | CloseReaderTest.java:9:23:9:34 | Exit | +| CloseReaderTest.java:19:4:19:27 | return ... | CloseReaderTest.java:9:23:9:34 | Normal Exit | | CloseReaderTest.java:19:11:19:15 | stdin | CloseReaderTest.java:19:11:19:26 | readLine(...) | | CloseReaderTest.java:19:11:19:26 | readLine(...) | CloseReaderTest.java:19:4:19:27 | return ... | | CloseReaderTest.java:19:11:19:26 | readLine(...) | CloseReaderTest.java:20:5:20:26 | catch (...) | | CloseReaderTest.java:20:5:20:26 | catch (...) | CloseReaderTest.java:20:24:20:25 | ex | | CloseReaderTest.java:20:24:20:25 | ex | CloseReaderTest.java:21:3:23:3 | { ... } | | CloseReaderTest.java:21:3:23:3 | { ... } | CloseReaderTest.java:22:11:22:14 | null | -| CloseReaderTest.java:22:4:22:15 | return ... | CloseReaderTest.java:9:23:9:34 | Exit | +| CloseReaderTest.java:22:4:22:15 | return ... | CloseReaderTest.java:9:23:9:34 | Normal Exit | | CloseReaderTest.java:22:11:22:14 | null | CloseReaderTest.java:22:4:22:15 | return ... | diff --git a/java/ql/test/library-tests/successors/LoopVarReadTest/TestSucc.expected b/java/ql/test/library-tests/successors/LoopVarReadTest/TestSucc.expected index dcf2dac3cca1..3566cc8753f2 100644 --- a/java/ql/test/library-tests/successors/LoopVarReadTest/TestSucc.expected +++ b/java/ql/test/library-tests/successors/LoopVarReadTest/TestSucc.expected @@ -1,5 +1,9 @@ -| LoopVarReadTest.java:3:14:3:28 | super(...) | LoopVarReadTest.java:3:14:3:28 | Exit | +| LoopVarReadTest.java:3:14:3:28 | Exceptional Exit | LoopVarReadTest.java:3:14:3:28 | Exit | +| LoopVarReadTest.java:3:14:3:28 | Normal Exit | LoopVarReadTest.java:3:14:3:28 | Exit | +| LoopVarReadTest.java:3:14:3:28 | super(...) | LoopVarReadTest.java:3:14:3:28 | Normal Exit | | LoopVarReadTest.java:3:14:3:28 | { ... } | LoopVarReadTest.java:3:14:3:28 | super(...) | +| LoopVarReadTest.java:4:21:4:28 | Exceptional Exit | LoopVarReadTest.java:4:21:4:28 | Exit | +| LoopVarReadTest.java:4:21:4:28 | Normal Exit | LoopVarReadTest.java:4:21:4:28 | Exit | | LoopVarReadTest.java:5:2:15:2 | { ... } | LoopVarReadTest.java:6:3:6:12 | var ...; | | LoopVarReadTest.java:6:3:6:12 | var ...; | LoopVarReadTest.java:6:11:6:11 | 2 | | LoopVarReadTest.java:6:7:6:11 | x | LoopVarReadTest.java:7:3:7:33 | for (...;...;...) | @@ -23,6 +27,6 @@ | LoopVarReadTest.java:12:7:12:12 | q | LoopVarReadTest.java:14:3:14:28 | ; | | LoopVarReadTest.java:12:11:12:12 | 10 | LoopVarReadTest.java:12:7:12:12 | q | | LoopVarReadTest.java:14:3:14:12 | System.out | LoopVarReadTest.java:14:22:14:26 | "foo" | -| LoopVarReadTest.java:14:3:14:27 | println(...) | LoopVarReadTest.java:4:21:4:28 | Exit | +| LoopVarReadTest.java:14:3:14:27 | println(...) | LoopVarReadTest.java:4:21:4:28 | Normal Exit | | LoopVarReadTest.java:14:3:14:28 | ; | LoopVarReadTest.java:14:3:14:12 | System.out | | LoopVarReadTest.java:14:22:14:26 | "foo" | LoopVarReadTest.java:14:3:14:27 | println(...) | diff --git a/java/ql/test/library-tests/successors/SaveFileTest/TestSucc.expected b/java/ql/test/library-tests/successors/SaveFileTest/TestSucc.expected index 3c261f67ee15..640e731147f9 100644 --- a/java/ql/test/library-tests/successors/SaveFileTest/TestSucc.expected +++ b/java/ql/test/library-tests/successors/SaveFileTest/TestSucc.expected @@ -1,5 +1,9 @@ -| SaveFileTest.java:11:14:11:25 | super(...) | SaveFileTest.java:11:14:11:25 | Exit | +| SaveFileTest.java:11:14:11:25 | Exceptional Exit | SaveFileTest.java:11:14:11:25 | Exit | +| SaveFileTest.java:11:14:11:25 | Normal Exit | SaveFileTest.java:11:14:11:25 | Exit | +| SaveFileTest.java:11:14:11:25 | super(...) | SaveFileTest.java:11:14:11:25 | Normal Exit | | SaveFileTest.java:11:14:11:25 | { ... } | SaveFileTest.java:11:14:11:25 | super(...) | +| SaveFileTest.java:12:14:12:21 | Exceptional Exit | SaveFileTest.java:12:14:12:21 | Exit | +| SaveFileTest.java:12:14:12:21 | Normal Exit | SaveFileTest.java:12:14:12:21 | Exit | | SaveFileTest.java:15:2:55:2 | { ... } | SaveFileTest.java:17:3:17:25 | var ...; | | SaveFileTest.java:17:3:17:25 | var ...; | SaveFileTest.java:17:21:17:24 | path | | SaveFileTest.java:17:10:17:24 | savePath | SaveFileTest.java:18:3:18:27 | if (...) | @@ -95,9 +99,11 @@ | SaveFileTest.java:48:5:48:15 | flush(...) | SaveFileTest.java:50:6:50:30 | catch (...) | | SaveFileTest.java:48:5:48:16 | ; | SaveFileTest.java:48:5:48:7 | bos | | SaveFileTest.java:49:5:49:7 | bos | SaveFileTest.java:49:5:49:15 | close(...) | -| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:12:14:12:21 | Exit | +| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:12:14:12:21 | Exceptional Exit | +| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:12:14:12:21 | Normal Exit | | SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:50:6:50:30 | catch (...) | | SaveFileTest.java:49:5:49:16 | ; | SaveFileTest.java:49:5:49:7 | bos | | SaveFileTest.java:50:6:50:30 | catch (...) | SaveFileTest.java:50:23:50:29 | ignored | | SaveFileTest.java:50:23:50:29 | ignored | SaveFileTest.java:51:4:52:4 | { ... } | -| SaveFileTest.java:51:4:52:4 | { ... } | SaveFileTest.java:12:14:12:21 | Exit | +| SaveFileTest.java:51:4:52:4 | { ... } | SaveFileTest.java:12:14:12:21 | Exceptional Exit | +| SaveFileTest.java:51:4:52:4 | { ... } | SaveFileTest.java:12:14:12:21 | Normal Exit | diff --git a/java/ql/test/library-tests/successors/SchackTest/TestSucc.expected b/java/ql/test/library-tests/successors/SchackTest/TestSucc.expected index c645abe35072..a23f6a2bc54e 100644 --- a/java/ql/test/library-tests/successors/SchackTest/TestSucc.expected +++ b/java/ql/test/library-tests/successors/SchackTest/TestSucc.expected @@ -1,9 +1,17 @@ -| SchackTest.java:1:14:1:23 | super(...) | SchackTest.java:1:14:1:23 | Exit | +| SchackTest.java:1:14:1:23 | Exceptional Exit | SchackTest.java:1:14:1:23 | Exit | +| SchackTest.java:1:14:1:23 | Normal Exit | SchackTest.java:1:14:1:23 | Exit | +| SchackTest.java:1:14:1:23 | super(...) | SchackTest.java:1:14:1:23 | Normal Exit | | SchackTest.java:1:14:1:23 | { ... } | SchackTest.java:1:14:1:23 | super(...) | -| SchackTest.java:2:8:2:10 | super(...) | SchackTest.java:2:8:2:10 | Exit | +| SchackTest.java:2:8:2:10 | Exceptional Exit | SchackTest.java:2:8:2:10 | Exit | +| SchackTest.java:2:8:2:10 | Normal Exit | SchackTest.java:2:8:2:10 | Exit | +| SchackTest.java:2:8:2:10 | super(...) | SchackTest.java:2:8:2:10 | Normal Exit | | SchackTest.java:2:8:2:10 | { ... } | SchackTest.java:2:8:2:10 | super(...) | -| SchackTest.java:3:8:3:10 | super(...) | SchackTest.java:3:8:3:10 | Exit | +| SchackTest.java:3:8:3:10 | Exceptional Exit | SchackTest.java:3:8:3:10 | Exit | +| SchackTest.java:3:8:3:10 | Normal Exit | SchackTest.java:3:8:3:10 | Exit | +| SchackTest.java:3:8:3:10 | super(...) | SchackTest.java:3:8:3:10 | Normal Exit | | SchackTest.java:3:8:3:10 | { ... } | SchackTest.java:3:8:3:10 | super(...) | +| SchackTest.java:5:7:5:9 | Exceptional Exit | SchackTest.java:5:7:5:9 | Exit | +| SchackTest.java:5:7:5:9 | Normal Exit | SchackTest.java:5:7:5:9 | Exit | | SchackTest.java:5:18:24:2 | { ... } | SchackTest.java:6:3:23:3 | try ... | | SchackTest.java:6:3:23:3 | try ... | SchackTest.java:6:7:17:3 | { ... } | | SchackTest.java:6:7:17:3 | { ... } | SchackTest.java:7:4:15:4 | try ... | @@ -56,18 +64,21 @@ | SchackTest.java:20:23:20:72 | "successor (but neither true nor false successor)" | SchackTest.java:20:4:20:73 | println(...) | | SchackTest.java:21:13:23:3 | { ... } | SchackTest.java:22:4:22:41 | ; | | SchackTest.java:22:4:22:13 | System.out | SchackTest.java:22:23:22:39 | "false successor" | -| SchackTest.java:22:4:22:40 | println(...) | SchackTest.java:5:7:5:9 | Exit | +| SchackTest.java:22:4:22:40 | println(...) | SchackTest.java:5:7:5:9 | Exceptional Exit | +| SchackTest.java:22:4:22:40 | println(...) | SchackTest.java:5:7:5:9 | Normal Exit | | SchackTest.java:22:4:22:41 | ; | SchackTest.java:22:4:22:13 | System.out | | SchackTest.java:22:23:22:39 | "false successor" | SchackTest.java:22:4:22:40 | println(...) | +| SchackTest.java:26:18:26:20 | Exceptional Exit | SchackTest.java:26:18:26:20 | Exit | +| SchackTest.java:26:18:26:20 | Normal Exit | SchackTest.java:26:18:26:20 | Exit | | SchackTest.java:26:35:30:2 | { ... } | SchackTest.java:27:3:27:25 | if (...) | | SchackTest.java:27:3:27:25 | if (...) | SchackTest.java:27:7:27:19 | random(...) | | SchackTest.java:27:7:27:19 | random(...) | SchackTest.java:27:23:27:24 | .5 | | SchackTest.java:27:7:27:24 | ... > ... | SchackTest.java:28:10:28:18 | new ExB(...) | | SchackTest.java:27:7:27:24 | ... > ... | SchackTest.java:29:10:29:22 | random(...) | | SchackTest.java:27:23:27:24 | .5 | SchackTest.java:27:7:27:24 | ... > ... | -| SchackTest.java:28:4:28:19 | throw ... | SchackTest.java:26:18:26:20 | Exit | +| SchackTest.java:28:4:28:19 | throw ... | SchackTest.java:26:18:26:20 | Exceptional Exit | | SchackTest.java:28:10:28:18 | new ExB(...) | SchackTest.java:28:4:28:19 | throw ... | -| SchackTest.java:29:3:29:28 | return ... | SchackTest.java:26:18:26:20 | Exit | +| SchackTest.java:29:3:29:28 | return ... | SchackTest.java:26:18:26:20 | Normal Exit | | SchackTest.java:29:10:29:22 | random(...) | SchackTest.java:29:26:29:27 | .3 | | SchackTest.java:29:10:29:27 | ... > ... | SchackTest.java:29:3:29:28 | return ... | | SchackTest.java:29:26:29:27 | .3 | SchackTest.java:29:10:29:27 | ... > ... | diff --git a/java/ql/test/library-tests/successors/TestBreak/TestSucc.expected b/java/ql/test/library-tests/successors/TestBreak/TestSucc.expected index 8dac71ffd45d..3fc266a0928c 100644 --- a/java/ql/test/library-tests/successors/TestBreak/TestSucc.expected +++ b/java/ql/test/library-tests/successors/TestBreak/TestSucc.expected @@ -1,5 +1,9 @@ -| TestBreak.java:3:14:3:22 | super(...) | TestBreak.java:3:14:3:22 | Exit | +| TestBreak.java:3:14:3:22 | Exceptional Exit | TestBreak.java:3:14:3:22 | Exit | +| TestBreak.java:3:14:3:22 | Normal Exit | TestBreak.java:3:14:3:22 | Exit | +| TestBreak.java:3:14:3:22 | super(...) | TestBreak.java:3:14:3:22 | Normal Exit | | TestBreak.java:3:14:3:22 | { ... } | TestBreak.java:3:14:3:22 | super(...) | +| TestBreak.java:4:14:4:14 | Exceptional Exit | TestBreak.java:4:14:4:14 | Exit | +| TestBreak.java:4:14:4:14 | Normal Exit | TestBreak.java:4:14:4:14 | Exit | | TestBreak.java:5:2:85:2 | { ... } | TestBreak.java:7:3:8:11 |