diff --git a/.gitattributes b/.gitattributes index 8aba92bef1..af845dccfc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,3 +7,11 @@ daslib/_aot_generated/*.cpp binary # Shell scripts must keep LF endings even when checked out under autocrlf=true. *.sh text eol=lf + +# dasClangBind generated bindings: emit LF on every platform. The mingw +# CI worker re-runs bind_clangbind.das to detect regen drift; without +# eol=lf, autocrlf-true on the Windows runner checks out CRLF and the +# regen (which writes LF) reports every line as changed. +modules/dasClangBind/src/*.cpp text eol=lf +modules/dasClangBind/src/*.h text eol=lf +modules/dasClangBind/src/*.inc text eol=lf diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f87b41638..41af53682c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -482,9 +482,9 @@ jobs: # (windows-latest-fat), separate top-level job so mingw churn doesn't risk # the much-larger MSVC entries. # - # dasClangBind stays disabled here — pinned to libclang 16.0.6 (find_package - # strict version), which the msys2 clang64 sysroot doesn't ship. Tracked - # separately as the bind_clangbind regen followup. + # dasClangBind is enabled here — find_package(Clang 22.1) matches msys2's + # libclang 22.1.x and POST_BUILD copies the libclang+libLLVM+libc++ chain + # next to daslang.exe so the .shared_module dlopen resolves at runtime. ########################################################### needs: pre_job if: needs.pre_job.outputs.should_skip != 'true' @@ -509,6 +509,7 @@ jobs: mingw-w64-clang-x86_64-openssl mingw-w64-clang-x86_64-glfw bison + git - name: "Build: Daslang (clang-mingw64)" run: | @@ -518,7 +519,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DDAS_CLANG_BIND_DISABLED=ON \ + -DDAS_CLANG_BIND_DISABLED=OFF \ -DDAS_LLVM_DISABLED=OFF cmake --build ./build-mingw --parallel @@ -548,3 +549,23 @@ jobs: cd bin ./test_aot -use-aot _dasroot_/dastest/dastest.das -- --use-aot --color --failures-only --timeout 900 --test ../tests + # bind_clangbind self-binder lives here (not on linux extended_checks) + # because dasClangBind on linux pulls libclang.so → libLLVM-22.so.1, + # which collides with dasLLVM in the same process (shared pass + # registry, double-init breaks JIT). msys2 clang64 ships libclang as + # a separate SO chain, and the mingw worker doesn't exercise JIT-uses- + # dasClangBind paths, so they coexist cleanly. + # + # TODO: bind_llvm.das self-binder doesn't run on mingw — libclang as + # library doesn't find via msys2's libcxx auto-detection. + # Needs explicit -resource-dir / -isystem injection. Tracked as a + # follow-up; we lose master's previous bind_llvm.das CI coverage in + # the meantime. + - name: "Run self-binder (bind_clangbind.das)" + run: | + set -eux + CLANG_INCLUDE="$(cygpath -w "${MSYSTEM_PREFIX}/include")" + ./bin/daslang.exe modules/dasClangBind/bind/bind_clangbind.das -- --clang_path "${CLANG_INCLUDE}/" + git diff --exit-code -- modules/dasClangBind/src/ \ + || (echo "ERROR: dasClangBind generated files are out of date. Run './bin/daslang modules/dasClangBind/bind/bind_clangbind.das -- --clang_path ' locally and commit the result." && exit 1) + diff --git a/.github/workflows/extended_checks.yml b/.github/workflows/extended_checks.yml index d6e8d4cc4d..92c7498d9b 100644 --- a/.github/workflows/extended_checks.yml +++ b/.github/workflows/extended_checks.yml @@ -109,10 +109,6 @@ jobs: libxcursor-dev \ libxinerama-dev \ libxi-dev \ - libclang-16-dev \ - llvm-16-dev \ - clang-16 \ - libclang-22-dev \ llvm-22-dev ;; esac @@ -138,10 +134,17 @@ jobs: ;; linux) echo "BIN=./bin" >> $GITHUB_ENV + # dasClangBind stays OFF here — its libclang.so pulls in + # libLLVM-22.so.1 which collides with dasLLVM's own use of + # the same .so (shared LLVM pass registry → double init, + # breaks dasbind_example JIT-to-exe). dasClangBind is built + # and self-binder-checked on the mingw worker (build.yml) + # where it links against msys2's libclang and there is no + # dasLLVM in the same process. CC=clang CXX=clang++ cmake --no-warn-unused-cli -B./build \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_OSX_ARCHITECTURES="${{ matrix.architecture_string }}" \ - -DDAS_CLANG_BIND_DISABLED=OFF \ + -DDAS_CLANG_BIND_DISABLED=ON \ -DDAS_GLFW_DISABLED=OFF \ -G "${{ matrix.cmake_generator }}" $ACTIVE_MODULES cmake --build ./build --config Release --target daslang daslang_static @@ -252,21 +255,9 @@ jobs: set -eux $BIN/daslang _dasroot_/dastest/dastest.das -- --color --failures-only --test ./utils/mcp/test_tools.das - - name: "Run self-binder (bind_clangbind.das)" - if: matrix.target == 'linux' - run: | - set -eux - $BIN/daslang modules/dasClangBind/bind/bind_clangbind.das -- --clang_path /usr/lib/llvm-16/include/ - git diff --exit-code -- modules/dasClangBind/src/ \ - || (echo "ERROR: dasClangBind generated files are out of date. Run './bin/daslang modules/dasClangBind/bind/bind_clangbind.das -- --clang_path ' locally and commit the result." && exit 1) - - - name: "Run self-binder (bind_llvm.das)" - if: matrix.target == 'linux' - run: | - set -eux - $BIN/daslang modules/dasClangBind/bind/bind_llvm.das -- --input /usr/lib/llvm-22/include - git diff --exit-code -- modules/dasLLVM/bindings/ \ - || (echo "ERROR: dasLLVM generated bindings are out of date. Run './bin/daslang modules/dasClangBind/bind/bind_llvm.das -- --input ' locally and commit the result." && exit 1) + # Self-binders for dasClangBind + dasLLVM bindings live on the mingw + # worker (build.yml build_windows_mingw) — see comment on the linux + # build step above for why dasClangBind can't be enabled here. - name: "Install dasImgui (daspkg)" run: | diff --git a/benchmarks/sql/_common.das b/benchmarks/sql/_common.das index 5c1d1d14c1..364c75e410 100644 --- a/benchmarks/sql/_common.das +++ b/benchmarks/sql/_common.das @@ -88,6 +88,12 @@ struct public DecsCar { dealer_id : int } +[decs_template(prefix = "dealer_")] +struct public DecsDealer { + id : int + name : string +} + def public fixture_decs(n : int) { restart() create_entities(n) $(eid : EntityId; i : int; var cmp : ComponentMap) { @@ -102,6 +108,27 @@ def public fixture_decs(n : int) { } } +// Cars + Dealers together for the decs join lane. Both archetypes co-exist in the same decs world; plan_decs_join builds an in-query hash from the smaller side (dealers) then walks the larger side (cars). +def public fixture_decs_cars_and_dealers(n : int) { + restart() + create_entities(n) $(eid : EntityId; i : int; var cmp : ComponentMap) { + apply_decs_template(cmp, DecsCar( + id = i + 1, + name = "Car{i}", + price = (i * 37) % 1000, + brand = i % BRAND_COUNT, + year = 2010 + (i * 7) % 16, + dealer_id = (i % DEALER_COUNT) + 1 + )) + } + create_entities(DEALER_COUNT) $(eid : EntityId; i : int; var cmp : ComponentMap) { + apply_decs_template(cmp, DecsDealer( + id = i + 1, + name = "Dealer{i}" + )) + } +} + // Same fixture as fixture_decs, but returns the eid of the n/2-th entity for indexed-lookup benches. // The decs O(1) lookup path keys on EntityId (not the Car.id column), so the bench needs an actual eid // captured at creation time. fixture_decs has no return so call sites can't reuse it for this. diff --git a/benchmarks/sql/groupby_select_sum.das b/benchmarks/sql/groupby_select_sum.das index b295d303da..adaf991df7 100644 --- a/benchmarks/sql/groupby_select_sum.das +++ b/benchmarks/sql/groupby_select_sum.das @@ -3,14 +3,28 @@ options persistent_heap require _common public -// _select(c => c.price) |> _group_by(price % 100) |> _select((K=key, S=sum)). -// SQL omitted: sqlite_linq's `_group_by` requires `_.Field` or a tuple of `_.Field`s. -// The expression key (`_ % 100`) is rejected. [Follow-up TODO 2026-05-23: error[50503] -// `_sql: _group_by: key must be \`_.Field\` or a tuple of \`_.Field\`s; got: (_ % 100)` -// — would need expression-key support in sqlite_linq lowering.] -// Array vs Decs is the headline comparison. Splice (PR-B) fuses the upstream Car→price -// projection into an intermediate var bind so the key + sum acc reference the projected -// int (no per-element Car re-access). +// _group_by(price % 100) |> _select((K = key, S = sum(price))). +// SQL: `SELECT (price % 100), SUM(price) FROM Cars GROUP BY (price % 100)` — exercises +// sqlite_linq's expression-key support in _group_by (PR S2). The m1 form uses +// `_group_by(_.price % 100)` + explicit inner select inside SUM (the shape the +// grouped-aggregate dispatch recognises); the m3f/m4 forms keep their splice-friendly +// `_select(_.price) |> _group_by(_ % 100) |> _select((K, S=_._1 |> sum()))` pattern, +// which fuses the upstream Car→price projection into an intermediate var bind. + +def run_m1(b : B?; n : int) { + with_sqlite(":memory:") $(db) { + fixture_db(db, n) + b |> run("m1_sql/{n}", n) { + let groups <- _sql(db |> select_from(type) + |> _group_by(_.price % 100) + |> _select((K = _._0, S = _._1 |> select($(c : Car) => c.price) |> sum()))) + b |> accept(groups) + if (empty(groups)) { + b->failNow() + } + } + } +} def run_m3f(b : B?; n : int) { let arr <- fixture_array(n) @@ -42,6 +56,11 @@ def run_m4(b : B?; n : int) { } } +[benchmark] +def groupby_select_sum_m1(b : B?) { + run_m1(b, 100000) +} + [benchmark] def groupby_select_sum_m3f(b : B?) { run_m3f(b, 100000) diff --git a/benchmarks/sql/join_count.das b/benchmarks/sql/join_count.das index fe7a8560a0..8c5f6f2a97 100644 --- a/benchmarks/sql/join_count.das +++ b/benchmarks/sql/join_count.das @@ -7,10 +7,11 @@ require _common public // SQL lane works via `_sql(... |> _join(db |> select_from(type), ...))` // — the projection must be a named-tuple (positional tuples like `(c.name, d.name)` // are rejected by `_sql`'s _select shape check; use `(CarName=..., DealerName=...)`). -// The Decs lane is absent — `_join` doesn't lower onto the archetype walk, and -// faithfully porting cross-archetype lookup would need a Dealer decs template + -// hash-by-id index. [Follow-up TODO 2026-05-23: decs join / cross-archetype lookup -// machinery — see plan_join in linq_fold.das, currently only handles iterator/array.] +// Decs lane: plan_decs_join (linq_fold.das) builds a hash from the smaller side +// (dealers) inside one `for_each_archetype` pass, then walks the larger side +// (cars) and probes — same algorithm as `join_impl` in linq.das (line 1674). +// Auto-typed result lambda (`$(l,r)=>...`) skips the verbose tuple type spelling +// over decs sources. def run_m1(b : B?; n : int) { with_sqlite(":memory:") $(db) { @@ -43,6 +44,20 @@ def run_m3f(b : B?; n : int) { } } +def run_m4(b : B?; n : int) { + fixture_decs_cars_and_dealers(n) + b |> run("m4_decs_fold/{n}", n) { + let c = _fold(from_decs_template(type) |> _join(from_decs_template(type), + $(l, r) => l.dealer_id == r.id, + $(l, r) => (CarName = l.name, DealerName = r.name)) + |> count()) + b |> accept(c) + if (c == 0) { + b->failNow() + } + } +} + [benchmark] def join_count_m1(b : B?) { run_m1(b, 100000) @@ -52,3 +67,8 @@ def join_count_m1(b : B?) { def join_count_m3f(b : B?) { run_m3f(b, 100000) } + +[benchmark] +def join_count_m4(b : B?) { + run_m4(b, 100000) +} diff --git a/benchmarks/sql/results.md b/benchmarks/sql/results.md index c1579e3031..4020ed60f0 100644 --- a/benchmarks/sql/results.md +++ b/benchmarks/sql/results.md @@ -1,10 +1,10 @@ # Benchmarks — SQL / Array / Decs comparison -Generated 2026-05-23 from master `30021f183`. Fixture size: n = 100 000 -(cars), 100 dealers, 5 brands. Each row is one bench family in -`benchmarks/sql/`; columns are nanoseconds per logical operation. -`—` marks an intentionally absent lane — see "Notes on missing lanes" -below. +Generated 2026-05-23 from `62336a4a7` (PR for `plan_decs_join`). +Fixture size: n = 100 000 (cars), 100 dealers, 5 brands. Each row is +one bench family in `benchmarks/sql/`; columns are nanoseconds per +logical operation. `—` marks an intentionally absent lane — see +"Notes on missing lanes" below. The benchmarked chain shapes are summarised in `benchmarks/README.md` and the splice arms each chain fires are @@ -26,58 +26,58 @@ before the timer resolution can measure them — they should be read as | Benchmark | SQL (m1) | Array (m3f) | Decs (m4) | Decs vs Array | |---|---:|---:|---:|---:| -| `aggregate_match` | 34.7 | 5.9 | 5.8 | 0.98× | -| `all_match` | 27.6 | 3.5 | 3.4 | 0.97× | +| `aggregate_match` | 35.3 | 5.9 | 5.8 | 0.98× | +| `all_match` | 28.1 | 3.6 | 3.5 | 0.97× | | `any_match` | 0.00 | 0.00 | 0.00 | — | -| `average_aggregate` | 29.9 | 5.8 | 8.7 | 1.50× | -| `bare_order_where` | 274.4 | 117.6 | 125.5 | 1.07× | -| `chained_where` | 36.2 | 6.7 | 6.6 | 0.99× | +| `average_aggregate` | 29.9 | 5.9 | 8.8 | 1.49× | +| `bare_order_where` | 278.2 | 118.4 | 126.6 | 1.07× | +| `chained_where` | 38.5 | 6.7 | 6.7 | 1.00× | | `contains_match` | 0.00 | 2.2 | 1.4 | 0.64× | -| `count_aggregate` | 29.4 | 4.1 | 4.1 | 1.00× | -| `distinct_by_count` | 40.5 | 15.6 | 16.0 | 1.03× | -| `distinct_count` | 41.1 | 15.9 | 15.8 | 0.99× | +| `count_aggregate` | 29.1 | 4.1 | 4.2 | 1.02× | +| `distinct_by_count` | 40.6 | 15.8 | 16.0 | 1.01× | +| `distinct_count` | 41.1 | 16.1 | 16.0 | 0.99× | | `distinct_take` | 0.00 | 0.00 | 0.00 | — | | `element_at_match` | 0.00 | 0.00 | 0.00 | — | | `first_match` | 0.00 | 0.00 | 0.00 | — | | `first_or_default_match` | 0.00 | 0.00 | 0.00 | — | -| `groupby_average` | 170.0 | 30.1 | 30.1 | 1.00× | -| `groupby_count` | 140.2 | 19.2 | 19.2 | 1.00× | -| `groupby_first` | — | 18.4 | 19.1 | 1.04× | -| `groupby_having_count` | 140.4 | 19.5 | 19.2 | 0.98× | -| `groupby_having_hidden_sum` | 173.9 | 24.3 | 24.0 | 0.99× | -| `groupby_max` | 176.4 | 24.8 | 25.9 | 1.04× | -| `groupby_min` | 172.1 | 24.8 | 25.2 | 1.02× | -| `groupby_multi_reducer` | 188.7 | 32.3 | 32.3 | 1.00× | -| `groupby_select_sum` | — | 36.5 | 36.0 | 0.99× | -| `groupby_sum` | 173.7 | 18.6 | 18.6 | 1.00× | -| `groupby_where_count` | 74.8 | 14.6 | 14.8 | 1.01× | -| `groupby_where_sum` | 85.9 | 14.1 | 14.6 | 1.04× | -| `indexed_lookup` | 1454.2 | 202887.8 | 479.4 | 0.00× | -| `join_count` | 38.1 | 127.5 | — | — | -| `last_match` | 0.00 | 6.2 | 14.0 | 2.26× | -| `long_count_aggregate` | 29.4 | 4.2 | 4.0 | 0.95× | -| `max_aggregate` | 30.8 | 6.0 | 6.9 | 1.15× | -| `min_aggregate` | 30.8 | 6.1 | 6.9 | 1.13× | -| `order_take_desc` | 37.9 | 15.8 | 19.9 | 1.26× | -| `reverse_take` | 0.10 | 0.00 | 9.2 | — | +| `groupby_average` | 174.3 | 30.3 | 30.2 | 1.00× | +| `groupby_count` | 144.3 | 19.4 | 19.3 | 0.99× | +| `groupby_first` | — | 20.0 | 19.3 | 0.97× | +| `groupby_having_count` | 142.6 | 19.3 | 19.4 | 1.01× | +| `groupby_having_hidden_sum` | 175.7 | 24.5 | 24.1 | 0.98× | +| `groupby_max` | 176.7 | 25.0 | 25.4 | 1.02× | +| `groupby_min` | 175.7 | 25.1 | 25.4 | 1.01× | +| `groupby_multi_reducer` | 191.4 | 33.7 | 32.7 | 0.97× | +| `groupby_select_sum` | 207.1 | 36.8 | 36.7 | 1.00× | +| `groupby_sum` | 172.4 | 18.8 | 18.8 | 1.00× | +| `groupby_where_count` | 75.7 | 14.7 | 15.0 | 1.02× | +| `groupby_where_sum` | 86.7 | 14.3 | 14.7 | 1.03× | +| `indexed_lookup` | 1454.5 | 204673.2 | 472.2 | 0.00× | +| `join_count` | 38.0 | 121.2 | 64.0 | 0.53× | +| `last_match` | 0.00 | 5.9 | 14.0 | 2.37× | +| `long_count_aggregate` | 29.3 | 4.2 | 4.2 | 1.00× | +| `max_aggregate` | 30.8 | 6.1 | 6.9 | 1.13× | +| `min_aggregate` | 30.4 | 6.2 | 6.9 | 1.11× | +| `order_take_desc` | 38.1 | 15.9 | 20.1 | 1.26× | +| `reverse_take` | 0.10 | 0.00 | 9.3 | — | | `select_count` | 0.10 | 0.00 | 2.2 | — | -| `select_where` | 194.9 | 11.1 | 19.4 | 1.75× | -| `select_where_count` | 32.4 | 5.2 | 7.4 | 1.42× | -| `select_where_order_take` | 36.1 | 12.1 | 15.1 | 1.25× | -| `select_where_sum` | 36.8 | 7.4 | 7.5 | 1.01× | -| `single_match` | 0.00 | 2.9 | 5.4 | 1.86× | +| `select_where` | 194.2 | 11.1 | 19.5 | 1.76× | +| `select_where_count` | 32.5 | 5.2 | 7.4 | 1.42× | +| `select_where_order_take` | 36.4 | 12.2 | 14.9 | 1.22× | +| `select_where_sum` | 37.0 | 7.5 | 7.5 | 1.00× | +| `single_match` | 0.00 | 2.9 | 5.5 | 1.90× | | `skip_take` | 0.50 | 0.10 | 0.20 | 2.00× | | `skip_while_match` | 3.4 | 5.3 | 5.3 | 1.00× | -| `sort_first` | 37.4 | 11.0 | 13.3 | 1.21× | -| `sort_take` | 38.0 | 16.2 | 20.1 | 1.24× | -| `sum_aggregate` | 29.7 | 2.1 | 2.1 | 1.00× | -| `sum_where` | 32.8 | 4.2 | 4.3 | 1.02× | +| `sort_first` | 37.9 | 11.1 | 13.4 | 1.21× | +| `sort_take` | 38.1 | 16.4 | 20.3 | 1.24× | +| `sum_aggregate` | 30.0 | 2.2 | 2.1 | 0.95× | +| `sum_where` | 32.8 | 4.3 | 4.3 | 1.00× | | `take_count` | 3.6 | 0.20 | 0.40 | 2.00× | | `take_count_filtered` | — | 0.20 | 0.20 | 1.00× | | `take_sum_aggregate` | — | 0.10 | 0.10 | 1.00× | -| `take_while_match` | 7.9 | 2.4 | 2.5 | 1.04× | -| `to_array_filter` | 69.9 | 11.7 | 11.7 | 1.00× | -| `zip_dot_product` | — | 8.0 | 4.8 | 0.60× | +| `take_while_match` | 7.9 | 2.5 | 2.5 | 1.00× | +| `to_array_filter` | 70.1 | 11.7 | 11.9 | 1.02× | +| `zip_dot_product` | — | 8.1 | 4.8 | 0.59× | ## JIT @@ -86,54 +86,54 @@ before the timer resolution can measure them — they should be read as | `aggregate_match` | 34.4 | 0.40 | 0.70 | 1.75× | | `all_match` | 27.4 | 0.30 | 0.20 | 0.67× | | `any_match` | 0.00 | 0.00 | 0.00 | — | -| `average_aggregate` | 30.0 | 1.0 | 3.5 | 3.50× | -| `bare_order_where` | 183.7 | 33.5 | 34.7 | 1.04× | -| `chained_where` | 35.8 | 0.60 | 0.80 | 1.33× | +| `average_aggregate` | 29.7 | 1.0 | 3.6 | 3.60× | +| `bare_order_where` | 185.9 | 33.7 | 35.0 | 1.04× | +| `chained_where` | 35.9 | 0.60 | 0.80 | 1.33× | | `contains_match` | 0.00 | 0.20 | 0.10 | 0.50× | -| `count_aggregate` | 29.5 | 0.30 | 0.60 | 2.00× | -| `distinct_by_count` | 40.9 | 2.1 | 2.1 | 1.00× | -| `distinct_count` | 41.1 | 2.1 | 2.1 | 1.00× | +| `count_aggregate` | 29.0 | 0.40 | 0.60 | 1.50× | +| `distinct_by_count` | 40.8 | 2.1 | 2.1 | 1.00× | +| `distinct_count` | 41.0 | 2.1 | 2.1 | 1.00× | | `distinct_take` | 0.00 | 0.00 | 0.00 | — | | `element_at_match` | 0.00 | 0.00 | 0.00 | — | | `first_match` | 0.00 | 0.00 | 0.00 | — | | `first_or_default_match` | 0.00 | 0.00 | 0.00 | — | -| `groupby_average` | 170.0 | 2.6 | 2.9 | 1.12× | -| `groupby_count` | 143.0 | 2.3 | 2.5 | 1.09× | +| `groupby_average` | 170.7 | 2.6 | 2.9 | 1.12× | +| `groupby_count` | 141.1 | 2.4 | 2.5 | 1.04× | | `groupby_first` | — | 2.2 | 3.1 | 1.41× | -| `groupby_having_count` | 139.6 | 2.3 | 2.5 | 1.09× | -| `groupby_having_hidden_sum` | 173.4 | 2.5 | 2.8 | 1.12× | -| `groupby_max` | 171.5 | 2.4 | 2.7 | 1.13× | -| `groupby_min` | 172.8 | 2.4 | 2.7 | 1.13× | -| `groupby_multi_reducer` | 187.7 | 2.7 | 2.9 | 1.07× | -| `groupby_select_sum` | — | 3.2 | 3.7 | 1.16× | -| `groupby_sum` | 169.2 | 2.4 | 2.7 | 1.13× | -| `groupby_where_count` | 75.0 | 1.7 | 1.8 | 1.06× | -| `groupby_where_sum` | 85.9 | 1.7 | 1.8 | 1.06× | -| `indexed_lookup` | 1228.9 | 34818.1 | 102.7 | 0.00× | -| `join_count` | 38.0 | 35.8 | — | — | -| `last_match` | 0.00 | 0.50 | 1.4 | 2.80× | -| `long_count_aggregate` | 29.5 | 0.40 | 0.60 | 1.50× | -| `max_aggregate` | 30.6 | 0.70 | 0.50 | 0.71× | -| `min_aggregate` | 31.4 | 0.60 | 0.50 | 0.83× | -| `order_take_desc` | 37.6 | 0.70 | 1.3 | 1.86× | +| `groupby_having_count` | 147.0 | 2.4 | 2.5 | 1.04× | +| `groupby_having_hidden_sum` | 174.1 | 2.5 | 2.8 | 1.12× | +| `groupby_max` | 172.0 | 2.4 | 2.7 | 1.13× | +| `groupby_min` | 174.2 | 2.4 | 2.7 | 1.13× | +| `groupby_multi_reducer` | 191.1 | 2.7 | 3.0 | 1.11× | +| `groupby_select_sum` | 198.8 | 3.2 | 3.7 | 1.16× | +| `groupby_sum` | 173.6 | 2.4 | 2.7 | 1.13× | +| `groupby_where_count` | 75.6 | 1.7 | 1.8 | 1.06× | +| `groupby_where_sum` | 86.8 | 1.7 | 1.8 | 1.06× | +| `indexed_lookup` | 1266.6 | 36139.0 | 104.1 | 0.00× | +| `join_count` | 38.0 | 36.2 | 13.3 | 0.37× | +| `last_match` | 0.00 | 0.60 | 1.4 | 2.33× | +| `long_count_aggregate` | 29.3 | 0.40 | 0.60 | 1.50× | +| `max_aggregate` | 30.6 | 0.60 | 0.50 | 0.83× | +| `min_aggregate` | 30.7 | 0.60 | 0.50 | 0.83× | +| `order_take_desc` | 37.8 | 0.70 | 1.4 | 2.00× | | `reverse_take` | 0.00 | 0.00 | 1.1 | — | | `select_count` | 0.10 | 0.00 | 0.00 | — | -| `select_where` | 105.9 | 4.1 | 5.4 | 1.32× | +| `select_where` | 105.6 | 4.1 | 5.5 | 1.34× | | `select_where_count` | 32.4 | 0.40 | 0.60 | 1.50× | -| `select_where_order_take` | 36.3 | 0.70 | 1.4 | 2.00× | -| `select_where_sum` | 36.7 | 0.50 | 0.60 | 1.20× | +| `select_where_order_take` | 36.4 | 0.70 | 1.4 | 2.00× | +| `select_where_sum` | 36.9 | 0.50 | 0.60 | 1.20× | | `single_match` | 0.00 | 0.40 | 1.1 | 2.75× | | `skip_take` | 0.30 | 0.00 | 0.00 | — | -| `skip_while_match` | 3.4 | 0.40 | 0.40 | 1.00× | -| `sort_first` | 37.4 | 0.40 | 1.3 | 3.25× | -| `sort_take` | 37.7 | 0.70 | 1.3 | 1.86× | -| `sum_aggregate` | 29.7 | 0.40 | 0.30 | 0.75× | -| `sum_where` | 32.4 | 0.40 | 0.60 | 1.50× | +| `skip_while_match` | 3.5 | 0.40 | 0.40 | 1.00× | +| `sort_first` | 37.5 | 0.40 | 1.3 | 3.25× | +| `sort_take` | 38.0 | 0.70 | 1.4 | 2.00× | +| `sum_aggregate` | 30.3 | 0.40 | 0.30 | 0.75× | +| `sum_where` | 33.0 | 0.40 | 0.60 | 1.50× | | `take_count` | 1.8 | 0.10 | 0.10 | 1.00× | | `take_count_filtered` | — | 0.00 | 0.00 | — | | `take_sum_aggregate` | — | 0.00 | 0.00 | — | -| `take_while_match` | 7.9 | 0.20 | 0.30 | 1.50× | -| `to_array_filter` | 48.8 | 3.2 | 3.3 | 1.03× | +| `take_while_match` | 8.0 | 0.20 | 0.30 | 1.50× | +| `to_array_filter` | 48.3 | 3.2 | 3.4 | 1.06× | | `zip_dot_product` | — | 0.50 | 0.50 | 1.00× | ## Notes on missing lanes (the `—` cells) @@ -146,15 +146,6 @@ corresponding `.das` bench file; the bullets below quote that comment. (PARTITION BY brand ORDER BY id)` + outer `WHERE rn=1`) would be the SQL equivalent; sqlite_linq does not currently lower window functions. Follow-up TODO 2026-05-23. -- **`groupby_select_sum` SQL** — sqlite_linq's `_group_by` requires - `_.Field` or a tuple of `_.Field`s; the expression key (`_ % 100`) - is rejected. Follow-up TODO 2026-05-23: expression-key support in - sqlite_linq lowering. Probe error: - - ``` - error[50503]: _sql: _group_by: key must be `_.Field` or - a tuple of `_.Field`s; got: (_ % 100) - ``` - **`take_count_filtered` SQL** — by design. In SQL, LIMIT after an aggregate has no effect (the aggregate collapses to one row), so the bound-then-count shape has no faithful SQL translation. No follow-up. @@ -162,11 +153,6 @@ corresponding `.das` bench file; the bullets below quote that comment. By design, no follow-up. - **`zip_dot_product` SQL** — `zip` is not a relational operation. No SQL form exists; by design, no follow-up. -- **`join_count` Decs** — `_join` does not currently lower onto the - decs archetype walk. Faithfully porting cross-archetype lookup would - need a Dealer `[decs_template]` plus a hash-by-id index. Follow-up - TODO 2026-05-23: decs join / cross-archetype lookup machinery in - `plan_join` (`daslib/linq_fold.das`). ## How to re-run diff --git a/daslib/linq_boost.das b/daslib/linq_boost.das index bb7b848dc8..4fd3f31f23 100644 --- a/daslib/linq_boost.das +++ b/daslib/linq_boost.das @@ -535,6 +535,22 @@ class private AstCallMacro_LinqJoinBase : AstCallMacro { let lb_fresh = "__lb__" var keya_body = rename_var_in_expr(parts.keya_body, parts.larg_name, la_fresh) var keyb_body = rename_var_in_expr(parts.keyb_body, parts.rarg_name, lb_fresh) + // Auto-type the result lambda's args when untyped — symmetric with `on`, which accepts `(l,r)=>...` without types. Lets users write `_join(..., $(l,r)=>l.id==r.id, $(l,r)=>(l.x,r.y))` against any source — including from_decs_template(type) where the iterator element is a tuple<...> that's painful to spell out by hand. Plain `_join` only: `_left_join` / `_right_join` / `_full_outer_join` need Option on one or both sides, so their untyped result lambdas must stay user-spelled. + if (fnName == "join") { + var resultArg = call.arguments[3] + if (resultArg != null && resultArg is ExprMakeBlock) { + var rblk = (resultArg as ExprMakeBlock)._block + if (rblk != null && rblk is ExprBlock) { + var rb = rblk as ExprBlock + if (rb.arguments |> length == 2 + && (rb.arguments[0]._type == null || rb.arguments[0]._type.isAutoOrAlias) + && (rb.arguments[1]._type == null || rb.arguments[1]._type.isAutoOrAlias)) { + rb.arguments[0]._type = clone_type(iterTypeA) + rb.arguments[1]._type = clone_type(iterTypeB) + } + } + } + } var res = qmacro($c(fnName)( $e(call.arguments[0]), $e(call.arguments[1]), diff --git a/daslib/linq_fold.das b/daslib/linq_fold.das index 64f66a08df..89504c0cdf 100644 --- a/daslib/linq_fold.das +++ b/daslib/linq_fold.das @@ -5261,6 +5261,136 @@ def private plan_decs_distinct(var expr : Expression?) : Expression? { return finalize_decs_emission(emission, at, expr._type.isIterator && needBuffer) } +// ── decs join splice (Session 3 — hashed O(N+M) via collect-on-srcb + probe-on-srca) ─────── + +[macro_function] +def private plan_decs_join(var expr : Expression?) : Expression? { + // Hashed equi-join over two from_decs_template eager bridges. Walks the smaller side (srcb in the source order — the user writes the smaller side as srcb) into a `table>`, then walks the larger side (srca) and probes via `table.get`. Matches array-side `join_impl` algorithm (linq.das:1674) but inlines keya/keyb/result lambdas so per-pair invoke overhead vanishes. For v1: only the `[join, count]` and `[join, ]` shapes; interleaved where/select bails to tier-2. Runtime-value or non-primitive keys: keya/keyb's block return type is used directly as the table key type — primitive equi-keys (int, string) are the common case and the `_join` macro's equi-shape constraint keeps the key expression on one side of `==`. + var (top, calls) = flatten_linq(expr) + if (expr._type == null) return null + // Terminator: count (1-arg) or implicit to_array. Anything else cascades. + var terminatorName : string = "" + { + let lastName = empty(calls) ? "" : calls.back()._1.name + if (lastName == "count" && length(calls.back()._0.arguments) == 1) { + terminatorName = lastName + calls |> pop + } + } + // Must end on a single `join` call now — interleaved where/select unsupported in v1. + if (empty(calls) || calls.back()._1.name != "join") return null + var joinCall = calls.back()._0 + calls |> pop + if (!empty(calls) || (terminatorName == "" && !expr._type.isGoodArrayType)) return null + // Both sides must be from_decs_template eager bridges. + var bridgeA = extract_decs_bridge(top) + if (bridgeA == null || joinCall.arguments |> length != 5) return null + var bridgeB = extract_decs_bridge(joinCall.arguments[1]) + if (bridgeB == null) return null + // keya/keyb are LinqJoin-macro-synthesized: $($i(la_fresh) : iterTypeA) => keya_body — 1-arg single-return. Block return type IS the key type. + var keyaLam = joinCall.arguments[2] + var keybLam = joinCall.arguments[3] + if (keyaLam == null || keybLam == null || keyaLam._type == null) return null + let keyType = strip_const_ref(clone_type(keyaLam._type.firstType)) + // Primitive-only key types — non-primitive keys would need `_::unique_key()` wrapping at probe/insert sites to match join_impl's hash semantics (daslib/linq.das:1678). Cascade everything else to tier-2 so join_impl handles them correctly. + if (keyType == null + || (keyType.baseType != Type.tInt && keyType.baseType != Type.tInt64 + && keyType.baseType != Type.tUInt && keyType.baseType != Type.tUInt64 + && keyType.baseType != Type.tInt8 && keyType.baseType != Type.tUInt8 + && keyType.baseType != Type.tInt16 && keyType.baseType != Type.tUInt16 + && keyType.baseType != Type.tString + && keyType.baseType != Type.tFloat && keyType.baseType != Type.tDouble + && keyType.baseType != Type.tBool)) return null + let at = joinCall.at + let tupAName = qn("decs_tup_a", at) + let tupBName = qn("decs_tup_b", at) + let hashName = qn("decs_hash", at) + let cntName = qn("decs_jcnt", at) + let bufName = qn("decs_jbuf", at) + let bElemName = qn("decs_jb", at) + let arrName = qn("decs_jarr", at) + var keyaBody = peel_lambda_rename_var(keyaLam, tupAName) + var keybBody = peel_lambda_rename_var(keybLam, tupBName) + if (keyaBody == null || keybBody == null) return null + var tupBindA = build_decs_tup_bind(bridgeA, tupAName, at) + var tupBindB = build_decs_tup_bind(bridgeB, tupBName, at) + if (tupBindA == null || tupBindB == null) return null + let tupBType = strip_const_ref(clone_type(bridgeB.elementType)) + // Collect loop: hash all of srcb keyed by keyb(tupb). + var collectBody <- qmacro_block_to_array() { + // nolint:PERF006 per-key bucket size unknown ahead of time + $i(hashName)[$e(keybBody)] |> push_clone($i(tupBName)) + } + var collectInner = build_decs_inner_for(bridgeB, tupBindB, stmts_to_expr(collectBody), at) + // Result builder branches on terminator. + var probeStmts : array + var preludeStmts : array + var returnStmt : Expression? + if (terminatorName == "count") { + preludeStmts |> push <| qmacro_expr() { + var $i(cntName) : int = 0 + } + probeStmts |> push <| qmacro_expr() { + $i(cntName) += length($i(arrName)) + } + returnStmt = qmacro_expr() { + return $i(cntName) + } + } else { + var resultLam = joinCall.arguments[4] + if (resultLam == null) return null + var resultBody = peel_lambda_rename_2vars(resultLam, tupAName, bElemName) + if (resultBody == null) return null + let resultType = clone_type(expr._type.firstType) + if (resultType == null) return null + preludeStmts |> push <| qmacro_expr() { + var $i(bufName) : array<$t(resultType)> + } + probeStmts |> push <| qmacro_expr() { + for ($i(bElemName) in $i(arrName)) { + $i(bufName) |> push_clone($e(resultBody)) + } + } + returnStmt = qmacro_expr() { + return <- $i(bufName) + } + } + // Probe loop: walk srca; on hash hit invoke probeStmts with the matched bucket bound as arrName. Block takes `var arr` so it matches table::get's mutating overload (we don't mutate, but the const overload is gated on a const Tab which a `var hash` local is not). + var probeWrapBody <- qmacro_block_to_array() { + get($i(hashName), $e(keyaBody), $(var $i(arrName) : array<$t(tupBType)>) { + $b(probeStmts) + }) + } + var probeInner = build_decs_inner_for(bridgeA, tupBindA, stmts_to_expr(probeWrapBody), at) + // Assemble outer zero-arg invoke. + var allStmts : array + allStmts |> push_from(preludeStmts) + allStmts |> push <| qmacro_expr() { + var $i(hashName) : table<$t(keyType); array<$t(tupBType)>> + } + allStmts |> push <| qmacro_expr() { + for_each_archetype($e(bridgeB.reqHashExpr), $e(bridgeB.erqExpr), $($i(bridgeB.archName) : Archetype) { + $e(collectInner) + }) + } + allStmts |> push <| qmacro_expr() { + for_each_archetype($e(bridgeA.reqHashExpr), $e(bridgeA.erqExpr), $($i(bridgeA.archName) : Archetype) { + $e(probeInner) + }) + } + allStmts |> push(returnStmt) + var retType : TypeDeclPtr + if (terminatorName == "count") { + retType = new TypeDecl(baseType = Type.tInt, at = at) + } else { + retType = clone_type(expr._type) + } + var emission = qmacro(invoke($() : $t(retType) { + $b(allStmts) + })) + return finalize_decs_emission(emission, at, false) +} + [macro_function] def private plan_zip(var expr : Expression?) : Expression? { // Phase 2 Z1/Z2/Z3 + accumulator/early-exit: 2-ary lockstep zip splice. Supports bare zip (array/iterator), no-pred count/long_count + accumulator (sum/min/max/average) + early-exit (first/first_or_default/any/all/contains) terminators, and fused where_/select/take/skip/take_while/skip_while chain ops between zip and terminator. Result-selector form (3-arg zip) and chained selects bail to tier-2 cascade. @@ -5587,6 +5717,8 @@ class private LinqFold : AstCallMacro { if (res != null) return res res = plan_decs_unroll(call.arguments[0]) if (res != null) return res + res = plan_decs_join(call.arguments[0]) + if (res != null) return res res = plan_zip(call.arguments[0]) if (res != null) return res res = plan_loop_or_count(call.arguments[0]) diff --git a/include/daScript/ast/ast_typedecl.h b/include/daScript/ast/ast_typedecl.h index aa194466de..0feb5f0c37 100644 --- a/include/daScript/ast/ast_typedecl.h +++ b/include/daScript/ast/ast_typedecl.h @@ -224,6 +224,7 @@ namespace das { static void updateAliasMap ( const TypeDeclPtr & decl, const TypeDeclPtr & pass, AliasMap & aliases, OptionsMap & options ); Type getRangeBaseType() const; TypeDecl * findAlias ( const string & name, bool allowAuto = false ); + bool computeAliasCache(); // eager full walk, populates aliasCacheValid/aliasCacheHasAlias on every visited node; returns true if subtree contains any alias int findArgumentIndex(const string & name) const; int tupleFieldIndex( const string & name ) const; int variantFieldIndex( const string & name ) const; @@ -284,6 +285,8 @@ namespace das { // unsigned-underlying enum (uint8/uint16/uint64). Lets `int(uint8Enum)` // resolve to enum8u_to_int instead of enum8_to_int so the byte // zero-extends instead of sign-extending. + bool aliasCacheValid : 1; // findAlias subtree cache validity flag + bool aliasCacheHasAlias : 1; // findAlias subtree cache result (only meaningful when aliasCacheValid) }; uint32_t flags = 0; }; @@ -333,7 +336,12 @@ namespace das { template<> struct ToBasicType { enum { type = Type::tFloat }; }; template<> struct ToBasicType { enum { type = Type::tVoid }; }; template<> struct ToBasicType { enum { type = Type::tInt8 }; }; -#if defined(_MSC_VER) +#if defined(_WIN32) + // Broadened from _MSC_VER to cover mingw (clang-mingw64 + gcc-mingw) too — + // Windows LLP64 makes `long`/`unsigned long` 32-bit regardless of compiler. + // Without this, dasClangBind fails to build on mingw because libclang's + // CXUnsavedFile::Length (unsigned long) hits the primary template's + // static_assert. template<> struct ToBasicType { enum { type = Type::tInt }; }; template<> struct ToBasicType { enum { type = Type::tUInt }; }; template<> struct ToBasicType { enum { type = Type::tDouble }; }; diff --git a/modules/dasClangBind/CMakeLists.txt b/modules/dasClangBind/CMakeLists.txt index 37ffd0d848..a33f5e9698 100644 --- a/modules/dasClangBind/CMakeLists.txt +++ b/modules/dasClangBind/CMakeLists.txt @@ -2,7 +2,7 @@ IF (NOT DEFINED PATH_TO_LIBCLANG) SET(PATH_TO_LIBCLANG "${PROJECT_SOURCE_DIR}/../libclang") ENDIF() IF ((NOT ${DAS_CLANG_BIND_DISABLED}) OR (NOT DEFINED DAS_CLANG_BIND_DISABLED)) - find_package(Clang 16.0.6 PATHS "${PATH_TO_LIBCLANG}") + find_package(Clang 22.1 PATHS "${PATH_TO_LIBCLANG}") ENDIF() IF ((NOT DAS_CLANG_BIND_INCLUDED) AND (${Clang_FOUND}) AND ((NOT ${DAS_CLANG_BIND_DISABLED}) OR (NOT DEFINED DAS_CLANG_BIND_DISABLED))) SET(DAS_CLANG_BIND_INCLUDED TRUE) @@ -51,6 +51,7 @@ IF ((NOT DAS_CLANG_BIND_INCLUDED) AND (${Clang_FOUND}) AND ((NOT ${DAS_CLANG_BIN ${DAS_CLANG_BIND_DIR}/src/dasClangBind.func_15.cpp ${DAS_CLANG_BIND_DIR}/src/dasClangBind.func_16.cpp ${DAS_CLANG_BIND_DIR}/src/dasClangBind.func_17.cpp + ${DAS_CLANG_BIND_DIR}/src/dasClangBind.func_18.cpp ) ADD_MODULE_CPP(dasClangBind) @@ -68,24 +69,70 @@ IF ((NOT DAS_CLANG_BIND_INCLUDED) AND (${Clang_FOUND}) AND ((NOT ${DAS_CLANG_BIN TARGET_INCLUDE_DIRECTORIES(dasModuleClangBind PUBLIC ${CLANG_BIND_INCLUDE_DIR} ${CLANG_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS}) IF(WIN32) - set(DAS_CLANG_DLLS - ${LLVM_INSTALL_PREFIX}/bin/LLVM-C.dll - ${LLVM_INSTALL_PREFIX}/bin/LTO.dll - ${LLVM_INSTALL_PREFIX}/bin/Remarks.dll - ${LLVM_INSTALL_PREFIX}/bin/libclang.dll - ) - foreach(dll ${DAS_CLANG_DLLS}) - get_filename_component(dll_name "${dll}" NAME) - add_custom_command(TARGET libDasModuleClangBind POST_BUILD + # POST_BUILD copy libclang + transitive runtime deps next to daslang.exe. + # daslang loads .shared_module files via LoadLibraryEx with restricted + # search flags (LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | _APPLICATION_DIR | + # _DEFAULT_DIRS — see src/misc/sysos.cpp:loadDynamicLibrary). PATH is + # NOT searched, so the .shared_module's libclang.dll import must live + # in bin/ or alongside the .shared_module itself. + # + # Hook on dasModuleClangBind (the shared lib target), NOT on the static + # libDasModuleClangBind — single-config Ninja builds only realize the + # shared target when dynamic daslang.exe is the link consumer. + # + # Multi-config / single-config split mirrors dasHV/CMakeLists.txt. + IF(MSVC) + # Official LLVM Windows release ships a self-contained libclang.dll + # (LLVM statically linked in). Companion DLLs LLVM-C/LTO/Remarks are + # NOT deps of libclang.dll — copied for completeness only. + SET(_DAS_CLANG_BIND_DLLS + ${LLVM_INSTALL_PREFIX}/bin/libclang.dll + ${LLVM_INSTALL_PREFIX}/bin/LLVM-C.dll + ${LLVM_INSTALL_PREFIX}/bin/LTO.dll + ${LLVM_INSTALL_PREFIX}/bin/Remarks.dll) + ELSE() + # mingw / clang-mingw64: msys2 ships libclang.dll dynamically linked + # against libLLVM-N.dll, which in turn drags in libffi/zlib/zstd/libxml2. + # Full chain (from objdump -p libclang.dll + libLLVM-N.dll): + # libclang.dll → libLLVM-N.dll, libc++, KERNEL32, api-ms-win-crt-* + # libLLVM-N.dll → libffi-N, zlib1, libzstd, libxml2-N, libc++, + # SHELL32, ole32, ADVAPI32, WS2_32, ntdll, ... + # libc++.dll → libunwind, api-ms-win-crt-* + # Glob the numbered variants (libLLVM-22, libffi-8, libxml2-16, …) to + # absorb major-version bumps without per-bump CMake churn. + FILE(GLOB _DAS_CLANG_BIND_DLLS + "${LLVM_INSTALL_PREFIX}/bin/libclang.dll" + "${LLVM_INSTALL_PREFIX}/bin/libLLVM-*.dll" + "${LLVM_INSTALL_PREFIX}/bin/libffi-*.dll" + "${LLVM_INSTALL_PREFIX}/bin/zlib1.dll" + "${LLVM_INSTALL_PREFIX}/bin/libzstd.dll" + "${LLVM_INSTALL_PREFIX}/bin/libxml2-*.dll" + "${LLVM_INSTALL_PREFIX}/bin/libiconv-*.dll" + "${LLVM_INSTALL_PREFIX}/bin/libc++.dll" + "${LLVM_INSTALL_PREFIX}/bin/libunwind.dll") + ENDIF() + IF(_DAS_CLANG_BIND_DLLS) + IF(CMAKE_CONFIGURATION_TYPES) + SET(_DAS_CLANG_BIND_COPY_DIR "${EXECUTABLE_OUTPUT_PATH}/$") + ELSE() + SET(_DAS_CLANG_BIND_COPY_DIR "${EXECUTABLE_OUTPUT_PATH}") + ENDIF() + ADD_CUSTOM_COMMAND(TARGET dasModuleClangBind POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different - "${dll}" - "${PROJECT_SOURCE_DIR}/bin/$/${dll_name}" + ${_DAS_CLANG_BIND_DLLS} + "${_DAS_CLANG_BIND_COPY_DIR}/") + ELSE() + MESSAGE(WARNING "dasClangBind: no libclang DLLs found under ${LLVM_INSTALL_PREFIX}/bin — dasModuleClangBind.shared_module dlopen will fail at runtime.") + ENDIF() + # Guard install() with the same predicate as POST_BUILD — + # install(FILES "" DESTINATION ...) errors at configure time, which + # would defeat the soft warning above. + IF(_DAS_CLANG_BIND_DLLS) + install(FILES ${_DAS_CLANG_BIND_DLLS} + DESTINATION ${DAS_INSTALL_BINDIR} ) - endforeach() - install(FILES ${DAS_CLANG_DLLS} - DESTINATION ${DAS_INSTALL_BINDIR} - ) - install(FILES ${PROJECT_SOURCE_DIR}/modules/dasClangBind/LICENSE.TXT DESTINATION ${DAS_INSTALL_DOCDIR} RENAME LLVM.LICENSE) + ENDIF() + install(FILES ${PROJECT_SOURCE_DIR}/modules/dasClangBind/LICENSE.TXT DESTINATION ${DAS_INSTALL_DOCDIR} RENAME LLVM.LICENSE) ENDIF() ADD_MODULE_DAS(cbind cbind cbind_boost) diff --git a/modules/dasClangBind/cbind/cbind_boost.das b/modules/dasClangBind/cbind/cbind_boost.das index 3838f7bc6b..f50c2860a3 100644 --- a/modules/dasClangBind/cbind/cbind_boost.das +++ b/modules/dasClangBind/cbind/cbind_boost.das @@ -236,7 +236,12 @@ class AnyGenBind { } def init_args(pfn, pfp : string; args : array) { PARSE_FILE_NAME = pfn - PARSE_FILE_PREFIX = pfp + // Normalize backslashes — libclang's cursor-location paths (see + // clang_getCursorLocationFullPath) come back with forward slashes, + // so for the starts_with prefix-strip in + // clang_getCursorLocationDescription to match on every OS+path-form + // combination the stored prefix must use forward slashes too. + PARSE_FILE_PREFIX = pfp |> replace_multiple([(text = "\\", replacement = "/")]) ARGV := args } def openFile(path : string) { diff --git a/modules/dasClangBind/src/dasClangBind.alias.add.inc b/modules/dasClangBind/src/dasClangBind.alias.add.inc index 960f22c7d0..6338e691e3 100644 --- a/modules/dasClangBind/src/dasClangBind.alias.add.inc +++ b/modules/dasClangBind/src/dasClangBind.alias.add.inc @@ -16,93 +16,103 @@ auto alias_CXDiagnosticSet = typeFactory::make(lib); alias_CXDiagnosticSet->alias = "CXDiagnosticSet"; addAlias(alias_CXDiagnosticSet); -// from clang-c/Index.h:76:15 +// from clang-c/Index.h:80:15 auto alias_CXIndex = typeFactory::make(lib); alias_CXIndex->alias = "CXIndex"; addAlias(alias_CXIndex); -// from clang-c/Index.h:82:34 +// from clang-c/Index.h:86:34 auto alias_CXTargetInfo = typeFactory::make(lib); alias_CXTargetInfo->alias = "CXTargetInfo"; addAlias(alias_CXTargetInfo); -// from clang-c/Index.h:87:39 +// from clang-c/Index.h:91:39 auto alias_CXTranslationUnit = typeFactory::make(lib); alias_CXTranslationUnit->alias = "CXTranslationUnit"; addAlias(alias_CXTranslationUnit); -// from clang-c/Index.h:93:15 +// from clang-c/Index.h:97:15 auto alias_CXClientData = typeFactory::make(lib); alias_CXClientData->alias = "CXClientData"; addAlias(alias_CXClientData); -// from clang-c/Index.h:2423:33 +// from clang-c/Index.h:2657:33 auto alias_CXCursorSet = typeFactory::make(lib); alias_CXCursorSet->alias = "CXCursorSet"; addAlias(alias_CXCursorSet); -// from clang-c/Index.h:3671:35 +// from clang-c/Index.h:4006:35 auto alias_CXCursorVisitor = typeFactory::make(lib); alias_CXCursorVisitor->alias = "CXCursorVisitor"; addAlias(alias_CXCursorVisitor); -// from clang-c/Index.h:3812:15 +// from clang-c/Index.h:4049:37 +auto alias_CXCursorVisitorBlock = typeFactory<_CXChildVisitResult *>::make(lib); +alias_CXCursorVisitorBlock->alias = "CXCursorVisitorBlock"; +addAlias(alias_CXCursorVisitorBlock); + +// from clang-c/Index.h:4147:15 auto alias_CXPrintingPolicy = typeFactory::make(lib); alias_CXPrintingPolicy->alias = "CXPrintingPolicy"; addAlias(alias_CXPrintingPolicy); -// from clang-c/Index.h:4159:15 +// from clang-c/Index.h:4637:15 auto alias_CXModule = typeFactory::make(lib); alias_CXModule->alias = "CXModule"; addAlias(alias_CXModule); -// from clang-c/Index.h:4659:15 +// from clang-c/Index.h:5182:15 auto alias_CXCompletionString = typeFactory::make(lib); alias_CXCompletionString->alias = "CXCompletionString"; addAlias(alias_CXCompletionString); -// from clang-c/Index.h:5464:16 +// from clang-c/Index.h:5987:16 auto alias_CXInclusionVisitor = typeFactory::make(lib); alias_CXInclusionVisitor->alias = "CXInclusionVisitor"; addAlias(alias_CXInclusionVisitor); -// from clang-c/Index.h:5494:15 +// from clang-c/Index.h:6017:15 auto alias_CXEvalResult = typeFactory::make(lib); alias_CXEvalResult->alias = "CXEvalResult"; addAlias(alias_CXEvalResult); -// from clang-c/Index.h:5565:15 -auto alias_CXRemapping = typeFactory::make(lib); -alias_CXRemapping->alias = "CXRemapping"; -addAlias(alias_CXRemapping); +// from clang-c/Index.h:6145:47 +auto alias_CXCursorAndRangeVisitorBlock = typeFactory<_CXCursorAndRangeVisitorBlock *>::make(lib); +alias_CXCursorAndRangeVisitorBlock->alias = "CXCursorAndRangeVisitorBlock"; +addAlias(alias_CXCursorAndRangeVisitorBlock); -// from clang-c/Index.h:5698:15 +// from clang-c/Index.h:6159:15 auto alias_CXIdxClientFile = typeFactory::make(lib); alias_CXIdxClientFile->alias = "CXIdxClientFile"; addAlias(alias_CXIdxClientFile); -// from clang-c/Index.h:5703:15 +// from clang-c/Index.h:6164:15 auto alias_CXIdxClientEntity = typeFactory::make(lib); alias_CXIdxClientEntity->alias = "CXIdxClientEntity"; addAlias(alias_CXIdxClientEntity); -// from clang-c/Index.h:5709:15 +// from clang-c/Index.h:6170:15 auto alias_CXIdxClientContainer = typeFactory::make(lib); alias_CXIdxClientContainer->alias = "CXIdxClientContainer"; addAlias(alias_CXIdxClientContainer); -// from clang-c/Index.h:5715:15 +// from clang-c/Index.h:6176:15 auto alias_CXIdxClientASTFile = typeFactory::make(lib); alias_CXIdxClientASTFile->alias = "CXIdxClientASTFile"; addAlias(alias_CXIdxClientASTFile); -// from clang-c/Index.h:6130:15 +// from clang-c/Index.h:6591:15 auto alias_CXIndexAction = typeFactory::make(lib); alias_CXIndexAction->alias = "CXIndexAction"; addAlias(alias_CXIndexAction); -// from clang-c/Index.h:6282:32 +// from clang-c/Index.h:6743:32 auto alias_CXFieldVisitor = typeFactory::make(lib); alias_CXFieldVisitor->alias = "CXFieldVisitor"; addAlias(alias_CXFieldVisitor); +// from clang-c/Index.h:6961:15 +auto alias_CXRemapping = typeFactory::make(lib); +alias_CXRemapping->alias = "CXRemapping"; +addAlias(alias_CXRemapping); + diff --git a/modules/dasClangBind/src/dasClangBind.dummy.add.inc b/modules/dasClangBind/src/dasClangBind.dummy.add.inc index 64fecb4ae6..48537a65e5 100644 --- a/modules/dasClangBind/src/dasClangBind.dummy.add.inc +++ b/modules/dasClangBind/src/dasClangBind.dummy.add.inc @@ -3,4 +3,6 @@ addAnnotation(new DummyTypeAnnotation("CXTranslationUnitImpl", "CXTranslationUnitImpl", 1, 1)); addAnnotation(new DummyTypeAnnotation("CXCursorSetImpl", "CXCursorSetImpl", 1, 1)); +addAnnotation(new DummyTypeAnnotation("_CXChildVisitResult", "_CXChildVisitResult", 1, 1)); +addAnnotation(new DummyTypeAnnotation("_CXCursorAndRangeVisitorBlock", "_CXCursorAndRangeVisitorBlock", 1, 1)); addAnnotation(new DummyTypeAnnotation("CXTargetInfoImpl", "CXTargetInfoImpl", 1, 1)); diff --git a/modules/dasClangBind/src/dasClangBind.enum.add.inc b/modules/dasClangBind/src/dasClangBind.enum.add.inc index 93454a07d2..d96e3ebbd8 100644 --- a/modules/dasClangBind/src/dasClangBind.enum.add.inc +++ b/modules/dasClangBind/src/dasClangBind.enum.add.inc @@ -7,6 +7,7 @@ addEnumeration(new Enumeration_CXLoadDiag_Error()); addEnumeration(new Enumeration_CXDiagnosticDisplayOptions()); addEnumeration(new Enumeration_CXAvailabilityKind()); addEnumeration(new Enumeration_CXCursor_ExceptionSpecificationKind()); +addEnumeration(new Enumeration_CXChoice()); addEnumeration(new Enumeration_CXGlobalOptFlags()); addEnumeration(new Enumeration_CXTranslationUnit_Flags()); addEnumeration(new Enumeration_CXSaveTranslationUnit_Flags()); @@ -26,6 +27,7 @@ addEnumeration(new Enumeration_CXTypeLayoutError()); addEnumeration(new Enumeration_CXRefQualifierKind()); addEnumeration(new Enumeration_CX_CXXAccessSpecifier()); addEnumeration(new Enumeration_CX_StorageClass()); +addEnumeration(new Enumeration_CX_BinaryOperatorKind()); addEnumeration(new Enumeration_CXChildVisitResult()); addEnumeration(new Enumeration_CXPrintingPolicyProperty()); addEnumeration(new Enumeration_CXObjCPropertyAttrKind()); @@ -47,3 +49,5 @@ addEnumeration(new Enumeration_CXIdxObjCContainerKind()); addEnumeration(new Enumeration_CXIdxEntityRefKind()); addEnumeration(new Enumeration_CXSymbolRole()); addEnumeration(new Enumeration_CXIndexOptFlags()); +addEnumeration(new Enumeration_CXBinaryOperatorKind()); +addEnumeration(new Enumeration_CXUnaryOperatorKind()); diff --git a/modules/dasClangBind/src/dasClangBind.enum.class.inc b/modules/dasClangBind/src/dasClangBind.enum.class.inc index 0a365de2d4..f742d97251 100644 --- a/modules/dasClangBind/src/dasClangBind.enum.class.inc +++ b/modules/dasClangBind/src/dasClangBind.enum.class.inc @@ -61,7 +61,7 @@ public: } }; -// from clang-c/Index.h:126:6 +// from clang-c/Index.h:130:6 class Enumeration_CXAvailabilityKind : public das::Enumeration { public: Enumeration_CXAvailabilityKind() : das::Enumeration("CXAvailabilityKind") { @@ -75,7 +75,7 @@ public: } }; -// from clang-c/Index.h:175:6 +// from clang-c/Index.h:179:6 class Enumeration_CXCursor_ExceptionSpecificationKind : public das::Enumeration { public: Enumeration_CXCursor_ExceptionSpecificationKind() : das::Enumeration("CXCursor_ExceptionSpecificationKind") { @@ -95,7 +95,20 @@ public: } }; -// from clang-c/Index.h:278:9 +// from clang-c/Index.h:282:9 +class Enumeration_CXChoice : public das::Enumeration { +public: + Enumeration_CXChoice() : das::Enumeration("CXChoice") { + external = true; + cppName = "CXChoice"; + baseType = (das::Type) das::ToBasicType::type; + addIEx("Default", "CXChoice_Default", int64_t(CXChoice::CXChoice_Default), das::LineInfo()); + addIEx("Enabled", "CXChoice_Enabled", int64_t(CXChoice::CXChoice_Enabled), das::LineInfo()); + addIEx("Disabled", "CXChoice_Disabled", int64_t(CXChoice::CXChoice_Disabled), das::LineInfo()); + } +}; + +// from clang-c/Index.h:298:9 class Enumeration_CXGlobalOptFlags : public das::Enumeration { public: Enumeration_CXGlobalOptFlags() : das::Enumeration("CXGlobalOptFlags") { @@ -109,7 +122,7 @@ public: } }; -// from clang-c/Index.h:531:6 +// from clang-c/Index.h:679:6 class Enumeration_CXTranslationUnit_Flags : public das::Enumeration { public: Enumeration_CXTranslationUnit_Flags() : das::Enumeration("CXTranslationUnit_Flags") { @@ -136,7 +149,7 @@ public: } }; -// from clang-c/Index.h:774:6 +// from clang-c/Index.h:922:6 class Enumeration_CXSaveTranslationUnit_Flags : public das::Enumeration { public: Enumeration_CXSaveTranslationUnit_Flags() : das::Enumeration("CXSaveTranslationUnit_Flags") { @@ -147,7 +160,7 @@ public: } }; -// from clang-c/Index.h:796:6 +// from clang-c/Index.h:944:6 class Enumeration_CXSaveError : public das::Enumeration { public: Enumeration_CXSaveError() : das::Enumeration("CXSaveError") { @@ -161,7 +174,7 @@ public: } }; -// from clang-c/Index.h:875:6 +// from clang-c/Index.h:1023:6 class Enumeration_CXReparse_Flags : public das::Enumeration { public: Enumeration_CXReparse_Flags() : das::Enumeration("CXReparse_Flags") { @@ -172,7 +185,7 @@ public: } }; -// from clang-c/Index.h:941:6 +// from clang-c/Index.h:1089:6 class Enumeration_CXTUResourceUsageKind : public das::Enumeration { public: Enumeration_CXTUResourceUsageKind() : das::Enumeration("CXTUResourceUsageKind") { @@ -200,7 +213,7 @@ public: } }; -// from clang-c/Index.h:1038:6 +// from clang-c/Index.h:1186:6 class Enumeration_CXCursorKind : public das::Enumeration { public: Enumeration_CXCursorKind() : das::Enumeration("CXCursorKind") { @@ -315,7 +328,7 @@ public: addIEx("LambdaExpr", "CXCursor_LambdaExpr", int64_t(CXCursorKind::CXCursor_LambdaExpr), das::LineInfo()); addIEx("ObjCBoolLiteralExpr", "CXCursor_ObjCBoolLiteralExpr", int64_t(CXCursorKind::CXCursor_ObjCBoolLiteralExpr), das::LineInfo()); addIEx("ObjCSelfExpr", "CXCursor_ObjCSelfExpr", int64_t(CXCursorKind::CXCursor_ObjCSelfExpr), das::LineInfo()); - addIEx("OMPArraySectionExpr", "CXCursor_OMPArraySectionExpr", int64_t(CXCursorKind::CXCursor_OMPArraySectionExpr), das::LineInfo()); + addIEx("ArraySectionExpr", "CXCursor_ArraySectionExpr", int64_t(CXCursorKind::CXCursor_ArraySectionExpr), das::LineInfo()); addIEx("ObjCAvailabilityCheckExpr", "CXCursor_ObjCAvailabilityCheckExpr", int64_t(CXCursorKind::CXCursor_ObjCAvailabilityCheckExpr), das::LineInfo()); addIEx("FixedPointLiteral", "CXCursor_FixedPointLiteral", int64_t(CXCursorKind::CXCursor_FixedPointLiteral), das::LineInfo()); addIEx("OMPArrayShapingExpr", "CXCursor_OMPArrayShapingExpr", int64_t(CXCursorKind::CXCursor_OMPArrayShapingExpr), das::LineInfo()); @@ -324,6 +337,7 @@ public: addIEx("ConceptSpecializationExpr", "CXCursor_ConceptSpecializationExpr", int64_t(CXCursorKind::CXCursor_ConceptSpecializationExpr), das::LineInfo()); addIEx("RequiresExpr", "CXCursor_RequiresExpr", int64_t(CXCursorKind::CXCursor_RequiresExpr), das::LineInfo()); addIEx("CXXParenListInitExpr", "CXCursor_CXXParenListInitExpr", int64_t(CXCursorKind::CXCursor_CXXParenListInitExpr), das::LineInfo()); + addIEx("PackIndexingExpr", "CXCursor_PackIndexingExpr", int64_t(CXCursorKind::CXCursor_PackIndexingExpr), das::LineInfo()); addIEx("LastExpr", "CXCursor_LastExpr", int64_t(CXCursorKind::CXCursor_LastExpr), das::LineInfo()); addIEx("FirstStmt", "CXCursor_FirstStmt", int64_t(CXCursorKind::CXCursor_FirstStmt), das::LineInfo()); addIEx("UnexposedStmt", "CXCursor_UnexposedStmt", int64_t(CXCursorKind::CXCursor_UnexposedStmt), das::LineInfo()); @@ -433,6 +447,26 @@ public: addIEx("OMPParallelMaskedTaskLoopDirective", "CXCursor_OMPParallelMaskedTaskLoopDirective", int64_t(CXCursorKind::CXCursor_OMPParallelMaskedTaskLoopDirective), das::LineInfo()); addIEx("OMPParallelMaskedTaskLoopSimdDirective", "CXCursor_OMPParallelMaskedTaskLoopSimdDirective", int64_t(CXCursorKind::CXCursor_OMPParallelMaskedTaskLoopSimdDirective), das::LineInfo()); addIEx("OMPErrorDirective", "CXCursor_OMPErrorDirective", int64_t(CXCursorKind::CXCursor_OMPErrorDirective), das::LineInfo()); + addIEx("OMPScopeDirective", "CXCursor_OMPScopeDirective", int64_t(CXCursorKind::CXCursor_OMPScopeDirective), das::LineInfo()); + addIEx("OMPReverseDirective", "CXCursor_OMPReverseDirective", int64_t(CXCursorKind::CXCursor_OMPReverseDirective), das::LineInfo()); + addIEx("OMPInterchangeDirective", "CXCursor_OMPInterchangeDirective", int64_t(CXCursorKind::CXCursor_OMPInterchangeDirective), das::LineInfo()); + addIEx("OMPAssumeDirective", "CXCursor_OMPAssumeDirective", int64_t(CXCursorKind::CXCursor_OMPAssumeDirective), das::LineInfo()); + addIEx("OMPStripeDirective", "CXCursor_OMPStripeDirective", int64_t(CXCursorKind::CXCursor_OMPStripeDirective), das::LineInfo()); + addIEx("OMPFuseDirective", "CXCursor_OMPFuseDirective", int64_t(CXCursorKind::CXCursor_OMPFuseDirective), das::LineInfo()); + addIEx("OpenACCComputeConstruct", "CXCursor_OpenACCComputeConstruct", int64_t(CXCursorKind::CXCursor_OpenACCComputeConstruct), das::LineInfo()); + addIEx("OpenACCLoopConstruct", "CXCursor_OpenACCLoopConstruct", int64_t(CXCursorKind::CXCursor_OpenACCLoopConstruct), das::LineInfo()); + addIEx("OpenACCCombinedConstruct", "CXCursor_OpenACCCombinedConstruct", int64_t(CXCursorKind::CXCursor_OpenACCCombinedConstruct), das::LineInfo()); + addIEx("OpenACCDataConstruct", "CXCursor_OpenACCDataConstruct", int64_t(CXCursorKind::CXCursor_OpenACCDataConstruct), das::LineInfo()); + addIEx("OpenACCEnterDataConstruct", "CXCursor_OpenACCEnterDataConstruct", int64_t(CXCursorKind::CXCursor_OpenACCEnterDataConstruct), das::LineInfo()); + addIEx("OpenACCExitDataConstruct", "CXCursor_OpenACCExitDataConstruct", int64_t(CXCursorKind::CXCursor_OpenACCExitDataConstruct), das::LineInfo()); + addIEx("OpenACCHostDataConstruct", "CXCursor_OpenACCHostDataConstruct", int64_t(CXCursorKind::CXCursor_OpenACCHostDataConstruct), das::LineInfo()); + addIEx("OpenACCWaitConstruct", "CXCursor_OpenACCWaitConstruct", int64_t(CXCursorKind::CXCursor_OpenACCWaitConstruct), das::LineInfo()); + addIEx("OpenACCInitConstruct", "CXCursor_OpenACCInitConstruct", int64_t(CXCursorKind::CXCursor_OpenACCInitConstruct), das::LineInfo()); + addIEx("OpenACCShutdownConstruct", "CXCursor_OpenACCShutdownConstruct", int64_t(CXCursorKind::CXCursor_OpenACCShutdownConstruct), das::LineInfo()); + addIEx("OpenACCSetConstruct", "CXCursor_OpenACCSetConstruct", int64_t(CXCursorKind::CXCursor_OpenACCSetConstruct), das::LineInfo()); + addIEx("OpenACCUpdateConstruct", "CXCursor_OpenACCUpdateConstruct", int64_t(CXCursorKind::CXCursor_OpenACCUpdateConstruct), das::LineInfo()); + addIEx("OpenACCAtomicConstruct", "CXCursor_OpenACCAtomicConstruct", int64_t(CXCursorKind::CXCursor_OpenACCAtomicConstruct), das::LineInfo()); + addIEx("OpenACCCacheConstruct", "CXCursor_OpenACCCacheConstruct", int64_t(CXCursorKind::CXCursor_OpenACCCacheConstruct), das::LineInfo()); addIEx("LastStmt", "CXCursor_LastStmt", int64_t(CXCursorKind::CXCursor_LastStmt), das::LineInfo()); addIEx("TranslationUnit", "CXCursor_TranslationUnit", int64_t(CXCursorKind::CXCursor_TranslationUnit), das::LineInfo()); addIEx("FirstAttr", "CXCursor_FirstAttr", int64_t(CXCursorKind::CXCursor_FirstAttr), das::LineInfo()); @@ -497,7 +531,7 @@ public: } }; -// from clang-c/Index.h:2224:6 +// from clang-c/Index.h:2458:6 class Enumeration_CXLinkageKind : public das::Enumeration { public: Enumeration_CXLinkageKind() : das::Enumeration("CXLinkageKind") { @@ -512,7 +546,7 @@ public: } }; -// from clang-c/Index.h:2247:6 +// from clang-c/Index.h:2481:6 class Enumeration_CXVisibilityKind : public das::Enumeration { public: Enumeration_CXVisibilityKind() : das::Enumeration("CXVisibilityKind") { @@ -526,7 +560,7 @@ public: } }; -// from clang-c/Index.h:2391:6 +// from clang-c/Index.h:2625:6 class Enumeration_CXLanguageKind : public das::Enumeration { public: Enumeration_CXLanguageKind() : das::Enumeration("CXLanguageKind") { @@ -540,7 +574,7 @@ public: } }; -// from clang-c/Index.h:2407:6 +// from clang-c/Index.h:2641:6 class Enumeration_CXTLSKind : public das::Enumeration { public: Enumeration_CXTLSKind() : das::Enumeration("CXTLSKind") { @@ -553,7 +587,7 @@ public: } }; -// from clang-c/Index.h:2651:6 +// from clang-c/Index.h:2885:6 class Enumeration_CXTypeKind : public das::Enumeration { public: Enumeration_CXTypeKind() : das::Enumeration("CXTypeKind") { @@ -675,6 +709,10 @@ public: addIEx("OCLIntelSubgroupAVCImeResult", "CXType_OCLIntelSubgroupAVCImeResult", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeResult), das::LineInfo()); addIEx("OCLIntelSubgroupAVCRefResult", "CXType_OCLIntelSubgroupAVCRefResult", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCRefResult), das::LineInfo()); addIEx("OCLIntelSubgroupAVCSicResult", "CXType_OCLIntelSubgroupAVCSicResult", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCSicResult), das::LineInfo()); + addIEx("OCLIntelSubgroupAVCImeResultSingleReferenceStreamout", "CXType_OCLIntelSubgroupAVCImeResultSingleReferenceStreamout", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeResultSingleReferenceStreamout), das::LineInfo()); + addIEx("OCLIntelSubgroupAVCImeResultDualReferenceStreamout", "CXType_OCLIntelSubgroupAVCImeResultDualReferenceStreamout", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeResultDualReferenceStreamout), das::LineInfo()); + addIEx("OCLIntelSubgroupAVCImeSingleReferenceStreamin", "CXType_OCLIntelSubgroupAVCImeSingleReferenceStreamin", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeSingleReferenceStreamin), das::LineInfo()); + addIEx("OCLIntelSubgroupAVCImeDualReferenceStreamin", "CXType_OCLIntelSubgroupAVCImeDualReferenceStreamin", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeDualReferenceStreamin), das::LineInfo()); addIEx("OCLIntelSubgroupAVCImeResultSingleRefStreamout", "CXType_OCLIntelSubgroupAVCImeResultSingleRefStreamout", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeResultSingleRefStreamout), das::LineInfo()); addIEx("OCLIntelSubgroupAVCImeResultDualRefStreamout", "CXType_OCLIntelSubgroupAVCImeResultDualRefStreamout", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeResultDualRefStreamout), das::LineInfo()); addIEx("OCLIntelSubgroupAVCImeSingleRefStreamin", "CXType_OCLIntelSubgroupAVCImeSingleRefStreamin", int64_t(CXTypeKind::CXType_OCLIntelSubgroupAVCImeSingleRefStreamin), das::LineInfo()); @@ -682,10 +720,13 @@ public: addIEx("ExtVector", "CXType_ExtVector", int64_t(CXTypeKind::CXType_ExtVector), das::LineInfo()); addIEx("Atomic", "CXType_Atomic", int64_t(CXTypeKind::CXType_Atomic), das::LineInfo()); addIEx("BTFTagAttributed", "CXType_BTFTagAttributed", int64_t(CXTypeKind::CXType_BTFTagAttributed), das::LineInfo()); + addIEx("HLSLResource", "CXType_HLSLResource", int64_t(CXTypeKind::CXType_HLSLResource), das::LineInfo()); + addIEx("HLSLAttributedResource", "CXType_HLSLAttributedResource", int64_t(CXTypeKind::CXType_HLSLAttributedResource), das::LineInfo()); + addIEx("HLSLInlineSpirv", "CXType_HLSLInlineSpirv", int64_t(CXTypeKind::CXType_HLSLInlineSpirv), das::LineInfo()); } }; -// from clang-c/Index.h:2804:6 +// from clang-c/Index.h:3048:6 class Enumeration_CXCallingConv : public das::Enumeration { public: Enumeration_CXCallingConv() : das::Enumeration("CXCallingConv") { @@ -712,12 +753,27 @@ public: addIEx("AArch64VectorCall", "CXCallingConv_AArch64VectorCall", int64_t(CXCallingConv::CXCallingConv_AArch64VectorCall), das::LineInfo()); addIEx("SwiftAsync", "CXCallingConv_SwiftAsync", int64_t(CXCallingConv::CXCallingConv_SwiftAsync), das::LineInfo()); addIEx("AArch64SVEPCS", "CXCallingConv_AArch64SVEPCS", int64_t(CXCallingConv::CXCallingConv_AArch64SVEPCS), das::LineInfo()); + addIEx("M68kRTD", "CXCallingConv_M68kRTD", int64_t(CXCallingConv::CXCallingConv_M68kRTD), das::LineInfo()); + addIEx("PreserveNone", "CXCallingConv_PreserveNone", int64_t(CXCallingConv::CXCallingConv_PreserveNone), das::LineInfo()); + addIEx("RISCVVectorCall", "CXCallingConv_RISCVVectorCall", int64_t(CXCallingConv::CXCallingConv_RISCVVectorCall), das::LineInfo()); + addIEx("RISCVVLSCall_32", "CXCallingConv_RISCVVLSCall_32", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_32), das::LineInfo()); + addIEx("RISCVVLSCall_64", "CXCallingConv_RISCVVLSCall_64", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_64), das::LineInfo()); + addIEx("RISCVVLSCall_128", "CXCallingConv_RISCVVLSCall_128", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_128), das::LineInfo()); + addIEx("RISCVVLSCall_256", "CXCallingConv_RISCVVLSCall_256", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_256), das::LineInfo()); + addIEx("RISCVVLSCall_512", "CXCallingConv_RISCVVLSCall_512", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_512), das::LineInfo()); + addIEx("RISCVVLSCall_1024", "CXCallingConv_RISCVVLSCall_1024", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_1024), das::LineInfo()); + addIEx("RISCVVLSCall_2048", "CXCallingConv_RISCVVLSCall_2048", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_2048), das::LineInfo()); + addIEx("RISCVVLSCall_4096", "CXCallingConv_RISCVVLSCall_4096", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_4096), das::LineInfo()); + addIEx("RISCVVLSCall_8192", "CXCallingConv_RISCVVLSCall_8192", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_8192), das::LineInfo()); + addIEx("RISCVVLSCall_16384", "CXCallingConv_RISCVVLSCall_16384", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_16384), das::LineInfo()); + addIEx("RISCVVLSCall_32768", "CXCallingConv_RISCVVLSCall_32768", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_32768), das::LineInfo()); + addIEx("RISCVVLSCall_65536", "CXCallingConv_RISCVVLSCall_65536", int64_t(CXCallingConv::CXCallingConv_RISCVVLSCall_65536), das::LineInfo()); addIEx("Invalid", "CXCallingConv_Invalid", int64_t(CXCallingConv::CXCallingConv_Invalid), das::LineInfo()); addIEx("Unexposed", "CXCallingConv_Unexposed", int64_t(CXCallingConv::CXCallingConv_Unexposed), das::LineInfo()); } }; -// from clang-c/Index.h:2921:6 +// from clang-c/Index.h:3196:6 class Enumeration_CXTemplateArgumentKind : public das::Enumeration { public: Enumeration_CXTemplateArgumentKind() : das::Enumeration("CXTemplateArgumentKind") { @@ -737,7 +793,7 @@ public: } }; -// from clang-c/Index.h:3325:6 +// from clang-c/Index.h:3600:6 class Enumeration_CXTypeNullabilityKind : public das::Enumeration { public: Enumeration_CXTypeNullabilityKind() : das::Enumeration("CXTypeNullabilityKind") { @@ -752,7 +808,7 @@ public: } }; -// from clang-c/Index.h:3368:6 +// from clang-c/Index.h:3643:6 class Enumeration_CXTypeLayoutError : public das::Enumeration { public: Enumeration_CXTypeLayoutError() : das::Enumeration("CXTypeLayoutError") { @@ -768,7 +824,7 @@ public: } }; -// from clang-c/Index.h:3489:6 +// from clang-c/Index.h:3764:6 class Enumeration_CXRefQualifierKind : public das::Enumeration { public: Enumeration_CXRefQualifierKind() : das::Enumeration("CXRefQualifierKind") { @@ -781,7 +837,7 @@ public: } }; -// from clang-c/Index.h:3538:6 +// from clang-c/Index.h:3816:6 class Enumeration_CX_CXXAccessSpecifier : public das::Enumeration { public: Enumeration_CX_CXXAccessSpecifier() : das::Enumeration("CX_CXXAccessSpecifier") { @@ -795,7 +851,7 @@ public: } }; -// from clang-c/Index.h:3558:6 +// from clang-c/Index.h:3836:6 class Enumeration_CX_StorageClass : public das::Enumeration { public: Enumeration_CX_StorageClass() : das::Enumeration("CX_StorageClass") { @@ -813,7 +869,52 @@ public: } }; -// from clang-c/Index.h:3642:6 +// from clang-c/Index.h:3850:6 +class Enumeration_CX_BinaryOperatorKind : public das::Enumeration { +public: + Enumeration_CX_BinaryOperatorKind() : das::Enumeration("CX_BinaryOperatorKind") { + external = true; + cppName = "CX_BinaryOperatorKind"; + baseType = (das::Type) das::ToBasicType::type; + addIEx("CX_BO_Invalid", "CX_BO_Invalid", int64_t(CX_BinaryOperatorKind::CX_BO_Invalid), das::LineInfo()); + addIEx("CX_BO_PtrMemD", "CX_BO_PtrMemD", int64_t(CX_BinaryOperatorKind::CX_BO_PtrMemD), das::LineInfo()); + addIEx("CX_BO_PtrMemI", "CX_BO_PtrMemI", int64_t(CX_BinaryOperatorKind::CX_BO_PtrMemI), das::LineInfo()); + addIEx("CX_BO_Mul", "CX_BO_Mul", int64_t(CX_BinaryOperatorKind::CX_BO_Mul), das::LineInfo()); + addIEx("CX_BO_Div", "CX_BO_Div", int64_t(CX_BinaryOperatorKind::CX_BO_Div), das::LineInfo()); + addIEx("CX_BO_Rem", "CX_BO_Rem", int64_t(CX_BinaryOperatorKind::CX_BO_Rem), das::LineInfo()); + addIEx("CX_BO_Add", "CX_BO_Add", int64_t(CX_BinaryOperatorKind::CX_BO_Add), das::LineInfo()); + addIEx("CX_BO_Sub", "CX_BO_Sub", int64_t(CX_BinaryOperatorKind::CX_BO_Sub), das::LineInfo()); + addIEx("CX_BO_Shl", "CX_BO_Shl", int64_t(CX_BinaryOperatorKind::CX_BO_Shl), das::LineInfo()); + addIEx("CX_BO_Shr", "CX_BO_Shr", int64_t(CX_BinaryOperatorKind::CX_BO_Shr), das::LineInfo()); + addIEx("CX_BO_Cmp", "CX_BO_Cmp", int64_t(CX_BinaryOperatorKind::CX_BO_Cmp), das::LineInfo()); + addIEx("CX_BO_LT", "CX_BO_LT", int64_t(CX_BinaryOperatorKind::CX_BO_LT), das::LineInfo()); + addIEx("CX_BO_GT", "CX_BO_GT", int64_t(CX_BinaryOperatorKind::CX_BO_GT), das::LineInfo()); + addIEx("CX_BO_LE", "CX_BO_LE", int64_t(CX_BinaryOperatorKind::CX_BO_LE), das::LineInfo()); + addIEx("CX_BO_GE", "CX_BO_GE", int64_t(CX_BinaryOperatorKind::CX_BO_GE), das::LineInfo()); + addIEx("CX_BO_EQ", "CX_BO_EQ", int64_t(CX_BinaryOperatorKind::CX_BO_EQ), das::LineInfo()); + addIEx("CX_BO_NE", "CX_BO_NE", int64_t(CX_BinaryOperatorKind::CX_BO_NE), das::LineInfo()); + addIEx("CX_BO_And", "CX_BO_And", int64_t(CX_BinaryOperatorKind::CX_BO_And), das::LineInfo()); + addIEx("CX_BO_Xor", "CX_BO_Xor", int64_t(CX_BinaryOperatorKind::CX_BO_Xor), das::LineInfo()); + addIEx("CX_BO_Or", "CX_BO_Or", int64_t(CX_BinaryOperatorKind::CX_BO_Or), das::LineInfo()); + addIEx("CX_BO_LAnd", "CX_BO_LAnd", int64_t(CX_BinaryOperatorKind::CX_BO_LAnd), das::LineInfo()); + addIEx("CX_BO_LOr", "CX_BO_LOr", int64_t(CX_BinaryOperatorKind::CX_BO_LOr), das::LineInfo()); + addIEx("CX_BO_Assign", "CX_BO_Assign", int64_t(CX_BinaryOperatorKind::CX_BO_Assign), das::LineInfo()); + addIEx("CX_BO_MulAssign", "CX_BO_MulAssign", int64_t(CX_BinaryOperatorKind::CX_BO_MulAssign), das::LineInfo()); + addIEx("CX_BO_DivAssign", "CX_BO_DivAssign", int64_t(CX_BinaryOperatorKind::CX_BO_DivAssign), das::LineInfo()); + addIEx("CX_BO_RemAssign", "CX_BO_RemAssign", int64_t(CX_BinaryOperatorKind::CX_BO_RemAssign), das::LineInfo()); + addIEx("CX_BO_AddAssign", "CX_BO_AddAssign", int64_t(CX_BinaryOperatorKind::CX_BO_AddAssign), das::LineInfo()); + addIEx("CX_BO_SubAssign", "CX_BO_SubAssign", int64_t(CX_BinaryOperatorKind::CX_BO_SubAssign), das::LineInfo()); + addIEx("CX_BO_ShlAssign", "CX_BO_ShlAssign", int64_t(CX_BinaryOperatorKind::CX_BO_ShlAssign), das::LineInfo()); + addIEx("CX_BO_ShrAssign", "CX_BO_ShrAssign", int64_t(CX_BinaryOperatorKind::CX_BO_ShrAssign), das::LineInfo()); + addIEx("CX_BO_AndAssign", "CX_BO_AndAssign", int64_t(CX_BinaryOperatorKind::CX_BO_AndAssign), das::LineInfo()); + addIEx("CX_BO_XorAssign", "CX_BO_XorAssign", int64_t(CX_BinaryOperatorKind::CX_BO_XorAssign), das::LineInfo()); + addIEx("CX_BO_OrAssign", "CX_BO_OrAssign", int64_t(CX_BinaryOperatorKind::CX_BO_OrAssign), das::LineInfo()); + addIEx("CX_BO_Comma", "CX_BO_Comma", int64_t(CX_BinaryOperatorKind::CX_BO_Comma), das::LineInfo()); + addIEx("CX_BO_LAST", "CX_BO_LAST", int64_t(CX_BinaryOperatorKind::CX_BO_LAST), das::LineInfo()); + } +}; + +// from clang-c/Index.h:3977:6 class Enumeration_CXChildVisitResult : public das::Enumeration { public: Enumeration_CXChildVisitResult() : das::Enumeration("CXChildVisitResult") { @@ -826,7 +927,7 @@ public: } }; -// from clang-c/Index.h:3819:6 +// from clang-c/Index.h:4154:6 class Enumeration_CXPrintingPolicyProperty : public das::Enumeration { public: Enumeration_CXPrintingPolicyProperty() : das::Enumeration("CXPrintingPolicyProperty") { @@ -863,7 +964,7 @@ public: } }; -// from clang-c/Index.h:4010:9 +// from clang-c/Index.h:4365:9 class Enumeration_CXObjCPropertyAttrKind : public das::Enumeration { public: Enumeration_CXObjCPropertyAttrKind() : das::Enumeration("CXObjCPropertyAttrKind") { @@ -887,7 +988,7 @@ public: } }; -// from clang-c/Index.h:4053:9 +// from clang-c/Index.h:4408:9 class Enumeration_CXObjCDeclQualifierKind : public das::Enumeration { public: Enumeration_CXObjCDeclQualifierKind() : das::Enumeration("CXObjCDeclQualifierKind") { @@ -904,7 +1005,7 @@ public: } }; -// from clang-c/Index.h:4433:6 +// from clang-c/Index.h:4956:6 class Enumeration_CXNameRefFlags : public das::Enumeration { public: Enumeration_CXNameRefFlags() : das::Enumeration("CXNameRefFlags") { @@ -917,7 +1018,7 @@ public: } }; -// from clang-c/Index.h:4476:14 +// from clang-c/Index.h:4999:14 class Enumeration_CXTokenKind : public das::Enumeration { public: Enumeration_CXTokenKind() : das::Enumeration("CXTokenKind") { @@ -932,7 +1033,7 @@ public: } }; -// from clang-c/Index.h:4691:6 +// from clang-c/Index.h:5214:6 class Enumeration_CXCompletionChunkKind : public das::Enumeration { public: Enumeration_CXCompletionChunkKind() : das::Enumeration("CXCompletionChunkKind") { @@ -963,7 +1064,7 @@ public: } }; -// from clang-c/Index.h:5082:6 +// from clang-c/Index.h:5605:6 class Enumeration_CXCodeComplete_Flags : public das::Enumeration { public: Enumeration_CXCodeComplete_Flags() : das::Enumeration("CXCodeComplete_Flags") { @@ -978,7 +1079,7 @@ public: } }; -// from clang-c/Index.h:5121:6 +// from clang-c/Index.h:5644:6 class Enumeration_CXCompletionContext : public das::Enumeration { public: Enumeration_CXCompletionContext() : das::Enumeration("CXCompletionContext") { @@ -1013,7 +1114,7 @@ public: } }; -// from clang-c/Index.h:5479:9 +// from clang-c/Index.h:6002:9 class Enumeration_CXEvalResultKind : public das::Enumeration { public: Enumeration_CXEvalResultKind() : das::Enumeration("CXEvalResultKind") { @@ -1030,7 +1131,7 @@ public: } }; -// from clang-c/Index.h:5622:6 +// from clang-c/Index.h:6085:6 class Enumeration_CXVisitorResult : public das::Enumeration { public: Enumeration_CXVisitorResult() : das::Enumeration("CXVisitorResult") { @@ -1042,7 +1143,7 @@ public: } }; -// from clang-c/Index.h:5629:9 +// from clang-c/Index.h:6092:9 class Enumeration_CXResult : public das::Enumeration { public: Enumeration_CXResult() : das::Enumeration("CXResult") { @@ -1055,7 +1156,7 @@ public: } }; -// from clang-c/Index.h:5774:9 +// from clang-c/Index.h:6235:9 class Enumeration_CXIdxEntityKind : public das::Enumeration { public: Enumeration_CXIdxEntityKind() : das::Enumeration("CXIdxEntityKind") { @@ -1093,7 +1194,7 @@ public: } }; -// from clang-c/Index.h:5810:9 +// from clang-c/Index.h:6271:9 class Enumeration_CXIdxEntityLanguage : public das::Enumeration { public: Enumeration_CXIdxEntityLanguage() : das::Enumeration("CXIdxEntityLanguage") { @@ -1108,7 +1209,7 @@ public: } }; -// from clang-c/Index.h:5828:9 +// from clang-c/Index.h:6289:9 class Enumeration_CXIdxEntityCXXTemplateKind : public das::Enumeration { public: Enumeration_CXIdxEntityCXXTemplateKind() : das::Enumeration("CXIdxEntityCXXTemplateKind") { @@ -1122,7 +1223,7 @@ public: } }; -// from clang-c/Index.h:5835:9 +// from clang-c/Index.h:6296:9 class Enumeration_CXIdxAttrKind : public das::Enumeration { public: Enumeration_CXIdxAttrKind() : das::Enumeration("CXIdxAttrKind") { @@ -1136,7 +1237,7 @@ public: } }; -// from clang-c/Index.h:5870:9 +// from clang-c/Index.h:6331:9 class Enumeration_CXIdxDeclInfoFlags : public das::Enumeration { public: Enumeration_CXIdxDeclInfoFlags() : das::Enumeration("CXIdxDeclInfoFlags") { @@ -1147,7 +1248,7 @@ public: } }; -// from clang-c/Index.h:5898:9 +// from clang-c/Index.h:6359:9 class Enumeration_CXIdxObjCContainerKind : public das::Enumeration { public: Enumeration_CXIdxObjCContainerKind() : das::Enumeration("CXIdxObjCContainerKind") { @@ -1160,7 +1261,7 @@ public: } }; -// from clang-c/Index.h:5958:9 +// from clang-c/Index.h:6419:9 class Enumeration_CXIdxEntityRefKind : public das::Enumeration { public: Enumeration_CXIdxEntityRefKind() : das::Enumeration("CXIdxEntityRefKind") { @@ -1172,7 +1273,7 @@ public: } }; -// from clang-c/Index.h:5976:9 +// from clang-c/Index.h:6437:9 class Enumeration_CXSymbolRole : public das::Enumeration { public: Enumeration_CXSymbolRole() : das::Enumeration("CXSymbolRole") { @@ -1192,7 +1293,7 @@ public: } }; -// from clang-c/Index.h:6148:9 +// from clang-c/Index.h:6609:9 class Enumeration_CXIndexOptFlags : public das::Enumeration { public: Enumeration_CXIndexOptFlags() : das::Enumeration("CXIndexOptFlags") { @@ -1208,3 +1309,73 @@ public: } }; +// from clang-c/Index.h:6816:6 +class Enumeration_CXBinaryOperatorKind : public das::Enumeration { +public: + Enumeration_CXBinaryOperatorKind() : das::Enumeration("CXBinaryOperatorKind") { + external = true; + cppName = "CXBinaryOperatorKind"; + baseType = (das::Type) das::ToBasicType::type; + addIEx("CXBinaryOperator_Invalid", "CXBinaryOperator_Invalid", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Invalid), das::LineInfo()); + addIEx("CXBinaryOperator_PtrMemD", "CXBinaryOperator_PtrMemD", int64_t(CXBinaryOperatorKind::CXBinaryOperator_PtrMemD), das::LineInfo()); + addIEx("CXBinaryOperator_PtrMemI", "CXBinaryOperator_PtrMemI", int64_t(CXBinaryOperatorKind::CXBinaryOperator_PtrMemI), das::LineInfo()); + addIEx("CXBinaryOperator_Mul", "CXBinaryOperator_Mul", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Mul), das::LineInfo()); + addIEx("CXBinaryOperator_Div", "CXBinaryOperator_Div", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Div), das::LineInfo()); + addIEx("CXBinaryOperator_Rem", "CXBinaryOperator_Rem", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Rem), das::LineInfo()); + addIEx("CXBinaryOperator_Add", "CXBinaryOperator_Add", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Add), das::LineInfo()); + addIEx("CXBinaryOperator_Sub", "CXBinaryOperator_Sub", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Sub), das::LineInfo()); + addIEx("CXBinaryOperator_Shl", "CXBinaryOperator_Shl", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Shl), das::LineInfo()); + addIEx("CXBinaryOperator_Shr", "CXBinaryOperator_Shr", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Shr), das::LineInfo()); + addIEx("CXBinaryOperator_Cmp", "CXBinaryOperator_Cmp", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Cmp), das::LineInfo()); + addIEx("CXBinaryOperator_LT", "CXBinaryOperator_LT", int64_t(CXBinaryOperatorKind::CXBinaryOperator_LT), das::LineInfo()); + addIEx("CXBinaryOperator_GT", "CXBinaryOperator_GT", int64_t(CXBinaryOperatorKind::CXBinaryOperator_GT), das::LineInfo()); + addIEx("CXBinaryOperator_LE", "CXBinaryOperator_LE", int64_t(CXBinaryOperatorKind::CXBinaryOperator_LE), das::LineInfo()); + addIEx("CXBinaryOperator_GE", "CXBinaryOperator_GE", int64_t(CXBinaryOperatorKind::CXBinaryOperator_GE), das::LineInfo()); + addIEx("CXBinaryOperator_EQ", "CXBinaryOperator_EQ", int64_t(CXBinaryOperatorKind::CXBinaryOperator_EQ), das::LineInfo()); + addIEx("CXBinaryOperator_NE", "CXBinaryOperator_NE", int64_t(CXBinaryOperatorKind::CXBinaryOperator_NE), das::LineInfo()); + addIEx("CXBinaryOperator_And", "CXBinaryOperator_And", int64_t(CXBinaryOperatorKind::CXBinaryOperator_And), das::LineInfo()); + addIEx("CXBinaryOperator_Xor", "CXBinaryOperator_Xor", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Xor), das::LineInfo()); + addIEx("CXBinaryOperator_Or", "CXBinaryOperator_Or", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Or), das::LineInfo()); + addIEx("CXBinaryOperator_LAnd", "CXBinaryOperator_LAnd", int64_t(CXBinaryOperatorKind::CXBinaryOperator_LAnd), das::LineInfo()); + addIEx("CXBinaryOperator_LOr", "CXBinaryOperator_LOr", int64_t(CXBinaryOperatorKind::CXBinaryOperator_LOr), das::LineInfo()); + addIEx("CXBinaryOperator_Assign", "CXBinaryOperator_Assign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Assign), das::LineInfo()); + addIEx("CXBinaryOperator_MulAssign", "CXBinaryOperator_MulAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_MulAssign), das::LineInfo()); + addIEx("CXBinaryOperator_DivAssign", "CXBinaryOperator_DivAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_DivAssign), das::LineInfo()); + addIEx("CXBinaryOperator_RemAssign", "CXBinaryOperator_RemAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_RemAssign), das::LineInfo()); + addIEx("CXBinaryOperator_AddAssign", "CXBinaryOperator_AddAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_AddAssign), das::LineInfo()); + addIEx("CXBinaryOperator_SubAssign", "CXBinaryOperator_SubAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_SubAssign), das::LineInfo()); + addIEx("CXBinaryOperator_ShlAssign", "CXBinaryOperator_ShlAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_ShlAssign), das::LineInfo()); + addIEx("CXBinaryOperator_ShrAssign", "CXBinaryOperator_ShrAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_ShrAssign), das::LineInfo()); + addIEx("CXBinaryOperator_AndAssign", "CXBinaryOperator_AndAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_AndAssign), das::LineInfo()); + addIEx("CXBinaryOperator_XorAssign", "CXBinaryOperator_XorAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_XorAssign), das::LineInfo()); + addIEx("CXBinaryOperator_OrAssign", "CXBinaryOperator_OrAssign", int64_t(CXBinaryOperatorKind::CXBinaryOperator_OrAssign), das::LineInfo()); + addIEx("CXBinaryOperator_Comma", "CXBinaryOperator_Comma", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Comma), das::LineInfo()); + addIEx("CXBinaryOperator_Last", "CXBinaryOperator_Last", int64_t(CXBinaryOperatorKind::CXBinaryOperator_Last), das::LineInfo()); + } +}; + +// from clang-c/Index.h:6905:6 +class Enumeration_CXUnaryOperatorKind : public das::Enumeration { +public: + Enumeration_CXUnaryOperatorKind() : das::Enumeration("CXUnaryOperatorKind") { + external = true; + cppName = "CXUnaryOperatorKind"; + baseType = (das::Type) das::ToBasicType::type; + addIEx("CXUnaryOperator_Invalid", "CXUnaryOperator_Invalid", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Invalid), das::LineInfo()); + addIEx("CXUnaryOperator_PostInc", "CXUnaryOperator_PostInc", int64_t(CXUnaryOperatorKind::CXUnaryOperator_PostInc), das::LineInfo()); + addIEx("CXUnaryOperator_PostDec", "CXUnaryOperator_PostDec", int64_t(CXUnaryOperatorKind::CXUnaryOperator_PostDec), das::LineInfo()); + addIEx("CXUnaryOperator_PreInc", "CXUnaryOperator_PreInc", int64_t(CXUnaryOperatorKind::CXUnaryOperator_PreInc), das::LineInfo()); + addIEx("CXUnaryOperator_PreDec", "CXUnaryOperator_PreDec", int64_t(CXUnaryOperatorKind::CXUnaryOperator_PreDec), das::LineInfo()); + addIEx("CXUnaryOperator_AddrOf", "CXUnaryOperator_AddrOf", int64_t(CXUnaryOperatorKind::CXUnaryOperator_AddrOf), das::LineInfo()); + addIEx("CXUnaryOperator_Deref", "CXUnaryOperator_Deref", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Deref), das::LineInfo()); + addIEx("CXUnaryOperator_Plus", "CXUnaryOperator_Plus", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Plus), das::LineInfo()); + addIEx("CXUnaryOperator_Minus", "CXUnaryOperator_Minus", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Minus), das::LineInfo()); + addIEx("CXUnaryOperator_Not", "CXUnaryOperator_Not", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Not), das::LineInfo()); + addIEx("CXUnaryOperator_LNot", "CXUnaryOperator_LNot", int64_t(CXUnaryOperatorKind::CXUnaryOperator_LNot), das::LineInfo()); + addIEx("CXUnaryOperator_Real", "CXUnaryOperator_Real", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Real), das::LineInfo()); + addIEx("CXUnaryOperator_Imag", "CXUnaryOperator_Imag", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Imag), das::LineInfo()); + addIEx("CXUnaryOperator_Extension", "CXUnaryOperator_Extension", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Extension), das::LineInfo()); + addIEx("CXUnaryOperator_Coawait", "CXUnaryOperator_Coawait", int64_t(CXUnaryOperatorKind::CXUnaryOperator_Coawait), das::LineInfo()); + } +}; + diff --git a/modules/dasClangBind/src/dasClangBind.enum.decl.cast.inc b/modules/dasClangBind/src/dasClangBind.enum.decl.cast.inc index c607bedac7..43b4bc037f 100644 --- a/modules/dasClangBind/src/dasClangBind.enum.decl.cast.inc +++ b/modules/dasClangBind/src/dasClangBind.enum.decl.cast.inc @@ -8,6 +8,7 @@ DAS_BIND_ENUM_CAST(CXLoadDiag_Error); DAS_BIND_ENUM_CAST(CXDiagnosticDisplayOptions); DAS_BIND_ENUM_CAST(CXAvailabilityKind); DAS_BIND_ENUM_CAST(CXCursor_ExceptionSpecificationKind); +DAS_BIND_ENUM_CAST(CXChoice); DAS_BIND_ENUM_CAST(CXGlobalOptFlags); DAS_BIND_ENUM_CAST(CXTranslationUnit_Flags); DAS_BIND_ENUM_CAST(CXSaveTranslationUnit_Flags); @@ -27,6 +28,7 @@ DAS_BIND_ENUM_CAST(CXTypeLayoutError); DAS_BIND_ENUM_CAST(CXRefQualifierKind); DAS_BIND_ENUM_CAST(CX_CXXAccessSpecifier); DAS_BIND_ENUM_CAST(CX_StorageClass); +DAS_BIND_ENUM_CAST(CX_BinaryOperatorKind); DAS_BIND_ENUM_CAST(CXChildVisitResult); DAS_BIND_ENUM_CAST(CXPrintingPolicyProperty); DAS_BIND_ENUM_CAST(CXObjCPropertyAttrKind); @@ -48,3 +50,5 @@ DAS_BIND_ENUM_CAST(CXIdxObjCContainerKind); DAS_BIND_ENUM_CAST(CXIdxEntityRefKind); DAS_BIND_ENUM_CAST(CXSymbolRole); DAS_BIND_ENUM_CAST(CXIndexOptFlags); +DAS_BIND_ENUM_CAST(CXBinaryOperatorKind); +DAS_BIND_ENUM_CAST(CXUnaryOperatorKind); diff --git a/modules/dasClangBind/src/dasClangBind.enum.decl.inc b/modules/dasClangBind/src/dasClangBind.enum.decl.inc index eaf994c35d..2711e449a7 100644 --- a/modules/dasClangBind/src/dasClangBind.enum.decl.inc +++ b/modules/dasClangBind/src/dasClangBind.enum.decl.inc @@ -13,6 +13,8 @@ DAS_BASE_BIND_ENUM_GEN(CXAvailabilityKind,CXAvailabilityKind); DAS_BASE_BIND_ENUM_GEN(CXCursor_ExceptionSpecificationKind,CXCursor_ExceptionSpecificationKind); +DAS_BASE_BIND_ENUM_GEN(CXChoice,CXChoice); + DAS_BASE_BIND_ENUM_GEN(CXGlobalOptFlags,CXGlobalOptFlags); DAS_BASE_BIND_ENUM_GEN(CXTranslationUnit_Flags,CXTranslationUnit_Flags); @@ -51,6 +53,8 @@ DAS_BASE_BIND_ENUM_GEN(CX_CXXAccessSpecifier,CX_CXXAccessSpecifier); DAS_BASE_BIND_ENUM_GEN(CX_StorageClass,CX_StorageClass); +DAS_BASE_BIND_ENUM_GEN(CX_BinaryOperatorKind,CX_BinaryOperatorKind); + DAS_BASE_BIND_ENUM_GEN(CXChildVisitResult,CXChildVisitResult); DAS_BASE_BIND_ENUM_GEN(CXPrintingPolicyProperty,CXPrintingPolicyProperty); @@ -93,3 +97,7 @@ DAS_BASE_BIND_ENUM_GEN(CXSymbolRole,CXSymbolRole); DAS_BASE_BIND_ENUM_GEN(CXIndexOptFlags,CXIndexOptFlags); +DAS_BASE_BIND_ENUM_GEN(CXBinaryOperatorKind,CXBinaryOperatorKind); + +DAS_BASE_BIND_ENUM_GEN(CXUnaryOperatorKind,CXUnaryOperatorKind); + diff --git a/modules/dasClangBind/src/dasClangBind.func.decl.inc b/modules/dasClangBind/src/dasClangBind.func.decl.inc index bf51a18408..0c846d1b7b 100644 --- a/modules/dasClangBind/src/dasClangBind.func.decl.inc +++ b/modules/dasClangBind/src/dasClangBind.func.decl.inc @@ -18,3 +18,4 @@ void initFunctions_14(); void initFunctions_15(); void initFunctions_16(); void initFunctions_17(); +void initFunctions_18(); diff --git a/modules/dasClangBind/src/dasClangBind.func.reg.inc b/modules/dasClangBind/src/dasClangBind.func.reg.inc index c9e7b424e5..b6d44f0f91 100644 --- a/modules/dasClangBind/src/dasClangBind.func.reg.inc +++ b/modules/dasClangBind/src/dasClangBind.func.reg.inc @@ -18,3 +18,4 @@ initFunctions_14(); initFunctions_15(); initFunctions_16(); initFunctions_17(); +initFunctions_18(); diff --git a/modules/dasClangBind/src/dasClangBind.func_1.cpp b/modules/dasClangBind/src/dasClangBind.func_1.cpp index 40cf283239..5075dffeae 100644 --- a/modules/dasClangBind/src/dasClangBind.func_1.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_1.cpp @@ -12,15 +12,15 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_1() { -// from clang-c/CXString.h:50:28 +// from clang-c/CXString.h:54:28 makeExtern< const char * (*)(CXString) , clang_getCString , SimNode_ExtFuncCall >(lib,"clang_getCString","clang_getCString") ->args({"string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXString.h:55:21 +// from clang-c/CXString.h:59:21 makeExtern< void (*)(CXString) , clang_disposeString , SimNode_ExtFuncCall >(lib,"clang_disposeString","clang_disposeString") ->args({"string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXString.h:60:21 +// from clang-c/CXString.h:64:21 makeExtern< void (*)(CXStringSet *) , clang_disposeStringSet , SimNode_ExtFuncCall >(lib,"clang_disposeStringSet","clang_disposeStringSet") ->args({"set"}) ->addToModule(*this, SideEffects::worstDefault); @@ -51,45 +51,45 @@ void Module_dasClangBind::initFunctions_1() { makeExtern< unsigned int (*)(CXSourceLocation,CXSourceLocation) , clang_equalLocations , SimNode_ExtFuncCall >(lib,"clang_equalLocations","clang_equalLocations") ->args({"loc1","loc2"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:80:20 +// from clang-c/CXSourceLocation.h:84:25 + makeExtern< unsigned int (*)(CXSourceLocation,CXSourceLocation) , clang_isBeforeInTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_isBeforeInTranslationUnit","clang_isBeforeInTranslationUnit") + ->args({"loc1","loc2"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/CXSourceLocation.h:90:20 makeExtern< int (*)(CXSourceLocation) , clang_Location_isInSystemHeader , SimNode_ExtFuncCall >(lib,"clang_Location_isInSystemHeader","clang_Location_isInSystemHeader") ->args({"location"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:86:20 +// from clang-c/CXSourceLocation.h:96:20 makeExtern< int (*)(CXSourceLocation) , clang_Location_isFromMainFile , SimNode_ExtFuncCall >(lib,"clang_Location_isFromMainFile","clang_Location_isFromMainFile") ->args({"location"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:91:30 +// from clang-c/CXSourceLocation.h:101:30 makeExtern< CXSourceRange (*)() , clang_getNullRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getNullRange","clang_getNullRange") ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:97:30 +// from clang-c/CXSourceLocation.h:107:30 makeExtern< CXSourceRange (*)(CXSourceLocation,CXSourceLocation) , clang_getRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getRange","clang_getRange") ->args({"begin","end"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:105:25 +// from clang-c/CXSourceLocation.h:115:25 makeExtern< unsigned int (*)(CXSourceRange,CXSourceRange) , clang_equalRanges , SimNode_ExtFuncCall >(lib,"clang_equalRanges","clang_equalRanges") ->args({"range1","range2"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:111:20 +// from clang-c/CXSourceLocation.h:121:20 makeExtern< int (*)(CXSourceRange) , clang_Range_isNull , SimNode_ExtFuncCall >(lib,"clang_Range_isNull","clang_Range_isNull") ->args({"range"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:135:21 +// from clang-c/CXSourceLocation.h:145:21 makeExtern< void (*)(CXSourceLocation,void **,unsigned int *,unsigned int *,unsigned int *) , clang_getExpansionLocation , SimNode_ExtFuncCall >(lib,"clang_getExpansionLocation","clang_getExpansionLocation") ->args({"location","file","line","column","offset"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:180:21 +// from clang-c/CXSourceLocation.h:190:21 makeExtern< void (*)(CXSourceLocation,CXString *,unsigned int *,unsigned int *) , clang_getPresumedLocation , SimNode_ExtFuncCall >(lib,"clang_getPresumedLocation","clang_getPresumedLocation") ->args({"location","filename","line","column"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:192:21 +// from clang-c/CXSourceLocation.h:202:21 makeExtern< void (*)(CXSourceLocation,void **,unsigned int *,unsigned int *,unsigned int *) , clang_getInstantiationLocation , SimNode_ExtFuncCall >(lib,"clang_getInstantiationLocation","clang_getInstantiationLocation") ->args({"location","file","line","column","offset"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:219:21 - makeExtern< void (*)(CXSourceLocation,void **,unsigned int *,unsigned int *,unsigned int *) , clang_getSpellingLocation , SimNode_ExtFuncCall >(lib,"clang_getSpellingLocation","clang_getSpellingLocation") - ->args({"location","file","line","column","offset"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_10.cpp b/modules/dasClangBind/src/dasClangBind.func_10.cpp index 7c10220ba4..8dff5a78d1 100644 --- a/modules/dasClangBind/src/dasClangBind.func_10.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_10.cpp @@ -12,86 +12,86 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_10() { -// from clang-c/Index.h:3487:25 +// from clang-c/Index.h:3744:26 + makeExtern< long long (*)(CXCursor) , clang_Cursor_getOffsetOfField , SimNode_ExtFuncCall >(lib,"clang_Cursor_getOffsetOfField","clang_Cursor_getOffsetOfField") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3750:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isAnonymous , SimNode_ExtFuncCall >(lib,"clang_Cursor_isAnonymous","clang_Cursor_isAnonymous") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3756:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isAnonymousRecordDecl , SimNode_ExtFuncCall >(lib,"clang_Cursor_isAnonymousRecordDecl","clang_Cursor_isAnonymousRecordDecl") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3762:25 makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isInlineNamespace , SimNode_ExtFuncCall >(lib,"clang_Cursor_isInlineNamespace","clang_Cursor_isInlineNamespace") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3502:20 +// from clang-c/Index.h:3777:20 makeExtern< int (*)(CXType) , clang_Type_getNumTemplateArguments , SimNode_ExtFuncCall >(lib,"clang_Type_getNumTemplateArguments","clang_Type_getNumTemplateArguments") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3511:23 +// from clang-c/Index.h:3786:23 makeExtern< CXType (*)(CXType,unsigned int) , clang_Type_getTemplateArgumentAsType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getTemplateArgumentAsType","clang_Type_getTemplateArgumentAsType") ->args({"T","i"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3520:40 +// from clang-c/Index.h:3795:40 makeExtern< CXRefQualifierKind (*)(CXType) , clang_Type_getCXXRefQualifier , SimNode_ExtFuncCall >(lib,"clang_Type_getCXXRefQualifier","clang_Type_getCXXRefQualifier") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3526:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isBitField , SimNode_ExtFuncCall >(lib,"clang_Cursor_isBitField","clang_Cursor_isBitField") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3532:25 +// from clang-c/Index.h:3801:25 makeExtern< unsigned int (*)(CXCursor) , clang_isVirtualBase , SimNode_ExtFuncCall >(lib,"clang_isVirtualBase","clang_isVirtualBase") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3552:43 +// from clang-c/Index.h:3810:26 + makeExtern< long long (*)(CXCursor,CXCursor) , clang_getOffsetOfBase , SimNode_ExtFuncCall >(lib,"clang_getOffsetOfBase","clang_getOffsetOfBase") + ->args({"Parent","Base"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3830:43 makeExtern< CX_CXXAccessSpecifier (*)(CXCursor) , clang_getCXXAccessSpecifier , SimNode_ExtFuncCall >(lib,"clang_getCXXAccessSpecifier","clang_getCXXAccessSpecifier") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3575:37 +// from clang-c/Index.h:3894:1 + makeExtern< CX_BinaryOperatorKind (*)(CXCursor) , clang_Cursor_getBinaryOpcode , SimNode_ExtFuncCall >(lib,"clang_Cursor_getBinaryOpcode","clang_Cursor_getBinaryOpcode") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3902:1 + makeExtern< CXString (*)(CX_BinaryOperatorKind) , clang_Cursor_getBinaryOpcodeStr , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getBinaryOpcodeStr","clang_Cursor_getBinaryOpcodeStr") + ->args({"Op"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3910:37 makeExtern< CX_StorageClass (*)(CXCursor) , clang_Cursor_getStorageClass , SimNode_ExtFuncCall >(lib,"clang_Cursor_getStorageClass","clang_Cursor_getStorageClass") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3586:25 +// from clang-c/Index.h:3921:25 makeExtern< unsigned int (*)(CXCursor) , clang_getNumOverloadedDecls , SimNode_ExtFuncCall >(lib,"clang_getNumOverloadedDecls","clang_getNumOverloadedDecls") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3602:25 +// from clang-c/Index.h:3937:25 makeExtern< CXCursor (*)(CXCursor,unsigned int) , clang_getOverloadedDecl , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getOverloadedDecl","clang_getOverloadedDecl") ->args({"cursor","index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3620:23 +// from clang-c/Index.h:3955:23 makeExtern< CXType (*)(CXCursor) , clang_getIBOutletCollectionType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getIBOutletCollectionType","clang_getIBOutletCollectionType") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3748:25 +// from clang-c/Index.h:4057:1 + makeExtern< unsigned int (*)(CXCursor,_CXChildVisitResult *) , clang_visitChildrenWithBlock , SimNode_ExtFuncCall >(lib,"clang_visitChildrenWithBlock","clang_visitChildrenWithBlock") + ->args({"parent","block"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4083:25 makeExtern< CXString (*)(CXCursor) , clang_getCursorUSR , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorUSR","clang_getCursorUSR") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3753:25 +// from clang-c/Index.h:4088:25 makeExtern< CXString (*)(const char *) , clang_constructUSR_ObjCClass , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCClass","clang_constructUSR_ObjCClass") ->args({"class_name"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3758:25 +// from clang-c/Index.h:4093:25 makeExtern< CXString (*)(const char *,const char *) , clang_constructUSR_ObjCCategory , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCCategory","clang_constructUSR_ObjCCategory") ->args({"class_name","category_name"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3765:1 - makeExtern< CXString (*)(const char *) , clang_constructUSR_ObjCProtocol , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCProtocol","clang_constructUSR_ObjCProtocol") - ->args({"protocol_name"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3771:25 - makeExtern< CXString (*)(const char *,CXString) , clang_constructUSR_ObjCIvar , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCIvar","clang_constructUSR_ObjCIvar") - ->args({"name","classUSR"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3778:25 - makeExtern< CXString (*)(const char *,unsigned int,CXString) , clang_constructUSR_ObjCMethod , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCMethod","clang_constructUSR_ObjCMethod") - ->args({"name","isInstanceMethod","classUSR"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3786:25 - makeExtern< CXString (*)(const char *,CXString) , clang_constructUSR_ObjCProperty , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCProperty","clang_constructUSR_ObjCProperty") - ->args({"property","classUSR"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3792:25 - makeExtern< CXString (*)(CXCursor) , clang_getCursorSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorSpelling","clang_getCursorSpelling") - ->args({""}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3805:30 - makeExtern< CXSourceRange (*)(CXCursor,unsigned int,unsigned int) , clang_Cursor_getSpellingNameRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getSpellingNameRange","clang_Cursor_getSpellingNameRange") - ->args({"","pieceIndex","options"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_11.cpp b/modules/dasClangBind/src/dasClangBind.func_11.cpp index 57ab41e52d..91bda65b32 100644 --- a/modules/dasClangBind/src/dasClangBind.func_11.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_11.cpp @@ -12,86 +12,86 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_11() { -// from clang-c/Index.h:3854:1 +// from clang-c/Index.h:4100:1 + makeExtern< CXString (*)(const char *) , clang_constructUSR_ObjCProtocol , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCProtocol","clang_constructUSR_ObjCProtocol") + ->args({"protocol_name"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4106:25 + makeExtern< CXString (*)(const char *,CXString) , clang_constructUSR_ObjCIvar , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCIvar","clang_constructUSR_ObjCIvar") + ->args({"name","classUSR"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4113:25 + makeExtern< CXString (*)(const char *,unsigned int,CXString) , clang_constructUSR_ObjCMethod , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCMethod","clang_constructUSR_ObjCMethod") + ->args({"name","isInstanceMethod","classUSR"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4121:25 + makeExtern< CXString (*)(const char *,CXString) , clang_constructUSR_ObjCProperty , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_constructUSR_ObjCProperty","clang_constructUSR_ObjCProperty") + ->args({"property","classUSR"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4127:25 + makeExtern< CXString (*)(CXCursor) , clang_getCursorSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorSpelling","clang_getCursorSpelling") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4140:30 + makeExtern< CXSourceRange (*)(CXCursor,unsigned int,unsigned int) , clang_Cursor_getSpellingNameRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getSpellingNameRange","clang_Cursor_getSpellingNameRange") + ->args({"","pieceIndex","options"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4189:1 makeExtern< unsigned int (*)(void *,CXPrintingPolicyProperty) , clang_PrintingPolicy_getProperty , SimNode_ExtFuncCall >(lib,"clang_PrintingPolicy_getProperty","clang_PrintingPolicy_getProperty") ->args({"Policy","Property"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3861:1 +// from clang-c/Index.h:4196:1 makeExtern< void (*)(void *,CXPrintingPolicyProperty,unsigned int) , clang_PrintingPolicy_setProperty , SimNode_ExtFuncCall >(lib,"clang_PrintingPolicy_setProperty","clang_PrintingPolicy_setProperty") ->args({"Policy","Property","Value"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3871:33 +// from clang-c/Index.h:4206:33 makeExtern< void * (*)(CXCursor) , clang_getCursorPrintingPolicy , SimNode_ExtFuncCall >(lib,"clang_getCursorPrintingPolicy","clang_getCursorPrintingPolicy") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3876:21 +// from clang-c/Index.h:4211:21 makeExtern< void (*)(void *) , clang_PrintingPolicy_dispose , SimNode_ExtFuncCall >(lib,"clang_PrintingPolicy_dispose","clang_PrintingPolicy_dispose") ->args({"Policy"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3889:25 +// from clang-c/Index.h:4224:25 makeExtern< CXString (*)(CXCursor,void *) , clang_getCursorPrettyPrinted , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorPrettyPrinted","clang_getCursorPrettyPrinted") ->args({"Cursor","Policy"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3899:25 +// from clang-c/Index.h:4232:25 + makeExtern< CXString (*)(CXType,void *) , clang_getTypePrettyPrinted , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTypePrettyPrinted","clang_getTypePrettyPrinted") + ->args({"CT","cxPolicy"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4244:25 + makeExtern< CXString (*)(CXType,void *,unsigned int) , clang_getFullyQualifiedName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getFullyQualifiedName","clang_getFullyQualifiedName") + ->args({"CT","Policy","WithGlobalNsPrefix"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4254:25 makeExtern< CXString (*)(CXCursor) , clang_getCursorDisplayName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorDisplayName","clang_getCursorDisplayName") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3911:25 +// from clang-c/Index.h:4266:25 makeExtern< CXCursor (*)(CXCursor) , clang_getCursorReferenced , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorReferenced","clang_getCursorReferenced") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3941:25 +// from clang-c/Index.h:4296:25 makeExtern< CXCursor (*)(CXCursor) , clang_getCursorDefinition , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorDefinition","clang_getCursorDefinition") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3947:25 +// from clang-c/Index.h:4302:25 makeExtern< unsigned int (*)(CXCursor) , clang_isCursorDefinition , SimNode_ExtFuncCall >(lib,"clang_isCursorDefinition","clang_isCursorDefinition") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3973:25 +// from clang-c/Index.h:4328:25 makeExtern< CXCursor (*)(CXCursor) , clang_getCanonicalCursor , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCanonicalCursor","clang_getCanonicalCursor") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3986:20 +// from clang-c/Index.h:4341:20 makeExtern< int (*)(CXCursor) , clang_Cursor_getObjCSelectorIndex , SimNode_ExtFuncCall >(lib,"clang_Cursor_getObjCSelectorIndex","clang_Cursor_getObjCSelectorIndex") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3999:20 +// from clang-c/Index.h:4354:20 makeExtern< int (*)(CXCursor) , clang_Cursor_isDynamicCall , SimNode_ExtFuncCall >(lib,"clang_Cursor_isDynamicCall","clang_Cursor_isDynamicCall") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4005:23 - makeExtern< CXType (*)(CXCursor) , clang_Cursor_getReceiverType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getReceiverType","clang_Cursor_getReceiverType") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4035:1 - makeExtern< unsigned int (*)(CXCursor,unsigned int) , clang_Cursor_getObjCPropertyAttributes , SimNode_ExtFuncCall >(lib,"clang_Cursor_getObjCPropertyAttributes","clang_Cursor_getObjCPropertyAttributes") - ->args({"C","reserved"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4041:25 - makeExtern< CXString (*)(CXCursor) , clang_Cursor_getObjCPropertyGetterName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getObjCPropertyGetterName","clang_Cursor_getObjCPropertyGetterName") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4047:25 - makeExtern< CXString (*)(CXCursor) , clang_Cursor_getObjCPropertySetterName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getObjCPropertySetterName","clang_Cursor_getObjCPropertySetterName") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4069:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_getObjCDeclQualifiers , SimNode_ExtFuncCall >(lib,"clang_Cursor_getObjCDeclQualifiers","clang_Cursor_getObjCDeclQualifiers") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4076:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isObjCOptional , SimNode_ExtFuncCall >(lib,"clang_Cursor_isObjCOptional","clang_Cursor_isObjCOptional") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4081:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isVariadic , SimNode_ExtFuncCall >(lib,"clang_Cursor_isVariadic","clang_Cursor_isVariadic") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4096:25 - makeExtern< unsigned int (*)(CXCursor,CXString *,CXString *,unsigned int *) , clang_Cursor_isExternalSymbol , SimNode_ExtFuncCall >(lib,"clang_Cursor_isExternalSymbol","clang_Cursor_isExternalSymbol") - ->args({"C","language","definedIn","isGenerated"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_12.cpp b/modules/dasClangBind/src/dasClangBind.func_12.cpp index 9c46a08fe6..51215e30fe 100644 --- a/modules/dasClangBind/src/dasClangBind.func_12.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_12.cpp @@ -12,85 +12,85 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_12() { -// from clang-c/Index.h:4106:30 +// from clang-c/Index.h:4360:23 + makeExtern< CXType (*)(CXCursor) , clang_Cursor_getReceiverType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getReceiverType","clang_Cursor_getReceiverType") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4390:1 + makeExtern< unsigned int (*)(CXCursor,unsigned int) , clang_Cursor_getObjCPropertyAttributes , SimNode_ExtFuncCall >(lib,"clang_Cursor_getObjCPropertyAttributes","clang_Cursor_getObjCPropertyAttributes") + ->args({"C","reserved"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4396:25 + makeExtern< CXString (*)(CXCursor) , clang_Cursor_getObjCPropertyGetterName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getObjCPropertyGetterName","clang_Cursor_getObjCPropertyGetterName") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4402:25 + makeExtern< CXString (*)(CXCursor) , clang_Cursor_getObjCPropertySetterName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getObjCPropertySetterName","clang_Cursor_getObjCPropertySetterName") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4424:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_getObjCDeclQualifiers , SimNode_ExtFuncCall >(lib,"clang_Cursor_getObjCDeclQualifiers","clang_Cursor_getObjCDeclQualifiers") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4431:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isObjCOptional , SimNode_ExtFuncCall >(lib,"clang_Cursor_isObjCOptional","clang_Cursor_isObjCOptional") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4436:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isVariadic , SimNode_ExtFuncCall >(lib,"clang_Cursor_isVariadic","clang_Cursor_isVariadic") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4451:25 + makeExtern< unsigned int (*)(CXCursor,CXString *,CXString *,unsigned int *) , clang_Cursor_isExternalSymbol , SimNode_ExtFuncCall >(lib,"clang_Cursor_isExternalSymbol","clang_Cursor_isExternalSymbol") + ->args({"C","language","definedIn","isGenerated"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:4461:30 makeExtern< CXSourceRange (*)(CXCursor) , clang_Cursor_getCommentRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getCommentRange","clang_Cursor_getCommentRange") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4112:25 +// from clang-c/Index.h:4467:25 makeExtern< CXString (*)(CXCursor) , clang_Cursor_getRawCommentText , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getRawCommentText","clang_Cursor_getRawCommentText") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4119:25 +// from clang-c/Index.h:4474:25 makeExtern< CXString (*)(CXCursor) , clang_Cursor_getBriefCommentText , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getBriefCommentText","clang_Cursor_getBriefCommentText") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4133:25 +// from clang-c/Index.h:4488:25 makeExtern< CXString (*)(CXCursor) , clang_Cursor_getMangling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getMangling","clang_Cursor_getMangling") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4139:29 +// from clang-c/Index.h:4494:29 makeExtern< CXStringSet * (*)(CXCursor) , clang_Cursor_getCXXManglings , SimNode_ExtFuncCall >(lib,"clang_Cursor_getCXXManglings","clang_Cursor_getCXXManglings") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4145:29 +// from clang-c/Index.h:4500:29 makeExtern< CXStringSet * (*)(CXCursor) , clang_Cursor_getObjCManglings , SimNode_ExtFuncCall >(lib,"clang_Cursor_getObjCManglings","clang_Cursor_getObjCManglings") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4164:25 - makeExtern< void * (*)(CXCursor) , clang_Cursor_getModule , SimNode_ExtFuncCall >(lib,"clang_Cursor_getModule","clang_Cursor_getModule") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4170:25 - makeExtern< void * (*)(CXTranslationUnitImpl *,void *) , clang_getModuleForFile , SimNode_ExtFuncCall >(lib,"clang_getModuleForFile","clang_getModuleForFile") - ->args({"",""}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4177:23 - makeExtern< void * (*)(void *) , clang_Module_getASTFile , SimNode_ExtFuncCall >(lib,"clang_Module_getASTFile","clang_Module_getASTFile") - ->args({"Module"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4185:25 - makeExtern< void * (*)(void *) , clang_Module_getParent , SimNode_ExtFuncCall >(lib,"clang_Module_getParent","clang_Module_getParent") - ->args({"Module"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4193:25 - makeExtern< CXString (*)(void *) , clang_Module_getName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Module_getName","clang_Module_getName") - ->args({"Module"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4200:25 - makeExtern< CXString (*)(void *) , clang_Module_getFullName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Module_getFullName","clang_Module_getFullName") - ->args({"Module"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4207:20 - makeExtern< int (*)(void *) , clang_Module_isSystem , SimNode_ExtFuncCall >(lib,"clang_Module_isSystem","clang_Module_isSystem") - ->args({"Module"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4214:25 - makeExtern< unsigned int (*)(CXTranslationUnitImpl *,void *) , clang_Module_getNumTopLevelHeaders , SimNode_ExtFuncCall >(lib,"clang_Module_getNumTopLevelHeaders","clang_Module_getNumTopLevelHeaders") - ->args({"","Module"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4225:8 - makeExtern< void * (*)(CXTranslationUnitImpl *,void *,unsigned int) , clang_Module_getTopLevelHeader , SimNode_ExtFuncCall >(lib,"clang_Module_getTopLevelHeader","clang_Module_getTopLevelHeader") - ->args({"","Module","Index"}) +// from clang-c/Index.h:4533:25 + makeExtern< CXString (*)(CXCursor) , clang_Cursor_getGCCAssemblyTemplate , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getGCCAssemblyTemplate","clang_Cursor_getGCCAssemblyTemplate") + ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4245:1 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isConvertingConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isConvertingConstructor","clang_CXXConstructor_isConvertingConstructor") - ->args({"C"}) +// from clang-c/Index.h:4542:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isGCCAssemblyHasGoto , SimNode_ExtFuncCall >(lib,"clang_Cursor_isGCCAssemblyHasGoto","clang_Cursor_isGCCAssemblyHasGoto") + ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4250:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isCopyConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isCopyConstructor","clang_CXXConstructor_isCopyConstructor") - ->args({"C"}) +// from clang-c/Index.h:4550:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_getGCCAssemblyNumOutputs , SimNode_ExtFuncCall >(lib,"clang_Cursor_getGCCAssemblyNumOutputs","clang_Cursor_getGCCAssemblyNumOutputs") + ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4255:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isDefaultConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isDefaultConstructor","clang_CXXConstructor_isDefaultConstructor") - ->args({"C"}) +// from clang-c/Index.h:4558:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_getGCCAssemblyNumInputs , SimNode_ExtFuncCall >(lib,"clang_Cursor_getGCCAssemblyNumInputs","clang_Cursor_getGCCAssemblyNumInputs") + ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4260:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isMoveConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isMoveConstructor","clang_CXXConstructor_isMoveConstructor") - ->args({"C"}) +// from clang-c/Index.h:4573:25 + makeExtern< unsigned int (*)(CXCursor,unsigned int,CXString *,CXCursor *) , clang_Cursor_getGCCAssemblyInput , SimNode_ExtFuncCall >(lib,"clang_Cursor_getGCCAssemblyInput","clang_Cursor_getGCCAssemblyInput") + ->args({"Cursor","Index","Constraint","Expr"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4265:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXField_isMutable , SimNode_ExtFuncCall >(lib,"clang_CXXField_isMutable","clang_CXXField_isMutable") - ->args({"C"}) +// from clang-c/Index.h:4591:25 + makeExtern< unsigned int (*)(CXCursor,unsigned int,CXString *,CXCursor *) , clang_Cursor_getGCCAssemblyOutput , SimNode_ExtFuncCall >(lib,"clang_Cursor_getGCCAssemblyOutput","clang_Cursor_getGCCAssemblyOutput") + ->args({"Cursor","Index","Constraint","Expr"}) ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_13.cpp b/modules/dasClangBind/src/dasClangBind.func_13.cpp index 02b47c64ca..dc571a584b 100644 --- a/modules/dasClangBind/src/dasClangBind.func_13.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_13.cpp @@ -12,85 +12,85 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_13() { -// from clang-c/Index.h:4270:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isDefaulted , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isDefaulted","clang_CXXMethod_isDefaulted") - ->args({"C"}) +// from clang-c/Index.h:4602:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_getGCCAssemblyNumClobbers , SimNode_ExtFuncCall >(lib,"clang_Cursor_getGCCAssemblyNumClobbers","clang_Cursor_getGCCAssemblyNumClobbers") + ->args({"Cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4275:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isDeleted , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isDeleted","clang_CXXMethod_isDeleted") - ->args({"C"}) +// from clang-c/Index.h:4613:25 + makeExtern< CXString (*)(CXCursor,unsigned int) , clang_Cursor_getGCCAssemblyClobber , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getGCCAssemblyClobber","clang_Cursor_getGCCAssemblyClobber") + ->args({"Cursor","Index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4281:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isPureVirtual , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isPureVirtual","clang_CXXMethod_isPureVirtual") - ->args({"C"}) +// from clang-c/Index.h:4623:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isGCCAssemblyVolatile , SimNode_ExtFuncCall >(lib,"clang_Cursor_isGCCAssemblyVolatile","clang_Cursor_isGCCAssemblyVolatile") + ->args({"Cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4287:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isStatic , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isStatic","clang_CXXMethod_isStatic") +// from clang-c/Index.h:4642:25 + makeExtern< void * (*)(CXCursor) , clang_Cursor_getModule , SimNode_ExtFuncCall >(lib,"clang_Cursor_getModule","clang_Cursor_getModule") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4294:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isVirtual , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isVirtual","clang_CXXMethod_isVirtual") - ->args({"C"}) +// from clang-c/Index.h:4648:25 + makeExtern< void * (*)(CXTranslationUnitImpl *,void *) , clang_getModuleForFile , SimNode_ExtFuncCall >(lib,"clang_getModuleForFile","clang_getModuleForFile") + ->args({"",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4319:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isCopyAssignmentOperator , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isCopyAssignmentOperator","clang_CXXMethod_isCopyAssignmentOperator") - ->args({"C"}) +// from clang-c/Index.h:4655:23 + makeExtern< void * (*)(void *) , clang_Module_getASTFile , SimNode_ExtFuncCall >(lib,"clang_Module_getASTFile","clang_Module_getASTFile") + ->args({"Module"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4344:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isMoveAssignmentOperator , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isMoveAssignmentOperator","clang_CXXMethod_isMoveAssignmentOperator") - ->args({"C"}) +// from clang-c/Index.h:4663:25 + makeExtern< void * (*)(void *) , clang_Module_getParent , SimNode_ExtFuncCall >(lib,"clang_Module_getParent","clang_Module_getParent") + ->args({"Module"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4350:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXRecord_isAbstract , SimNode_ExtFuncCall >(lib,"clang_CXXRecord_isAbstract","clang_CXXRecord_isAbstract") - ->args({"C"}) +// from clang-c/Index.h:4671:25 + makeExtern< CXString (*)(void *) , clang_Module_getName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Module_getName","clang_Module_getName") + ->args({"Module"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4355:25 - makeExtern< unsigned int (*)(CXCursor) , clang_EnumDecl_isScoped , SimNode_ExtFuncCall >(lib,"clang_EnumDecl_isScoped","clang_EnumDecl_isScoped") - ->args({"C"}) +// from clang-c/Index.h:4678:25 + makeExtern< CXString (*)(void *) , clang_Module_getFullName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Module_getFullName","clang_Module_getFullName") + ->args({"Module"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4361:25 - makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isConst , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isConst","clang_CXXMethod_isConst") - ->args({"C"}) +// from clang-c/Index.h:4685:20 + makeExtern< int (*)(void *) , clang_Module_isSystem , SimNode_ExtFuncCall >(lib,"clang_Module_isSystem","clang_Module_isSystem") + ->args({"Module"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4380:34 - makeExtern< CXCursorKind (*)(CXCursor) , clang_getTemplateCursorKind , SimNode_ExtFuncCall >(lib,"clang_getTemplateCursorKind","clang_getTemplateCursorKind") - ->args({"C"}) +// from clang-c/Index.h:4692:25 + makeExtern< unsigned int (*)(CXTranslationUnitImpl *,void *) , clang_Module_getNumTopLevelHeaders , SimNode_ExtFuncCall >(lib,"clang_Module_getNumTopLevelHeaders","clang_Module_getNumTopLevelHeaders") + ->args({"","Module"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4410:25 - makeExtern< CXCursor (*)(CXCursor) , clang_getSpecializedCursorTemplate , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getSpecializedCursorTemplate","clang_getSpecializedCursorTemplate") - ->args({"C"}) +// from clang-c/Index.h:4703:8 + makeExtern< void * (*)(CXTranslationUnitImpl *,void *,unsigned int) , clang_Module_getTopLevelHeader , SimNode_ExtFuncCall >(lib,"clang_Module_getTopLevelHeader","clang_Module_getTopLevelHeader") + ->args({"","Module","Index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4430:30 - makeExtern< CXSourceRange (*)(CXCursor,unsigned int,unsigned int) , clang_getCursorReferenceNameRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorReferenceNameRange","clang_getCursorReferenceNameRange") - ->args({"C","NameFlags","PieceIndex"}) +// from clang-c/Index.h:4723:1 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isConvertingConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isConvertingConstructor","clang_CXXConstructor_isConvertingConstructor") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4522:25 - makeExtern< CXToken * (*)(CXTranslationUnitImpl *,CXSourceLocation) , clang_getToken , SimNode_ExtFuncCall >(lib,"clang_getToken","clang_getToken") - ->args({"TU","Location"}) +// from clang-c/Index.h:4728:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isCopyConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isCopyConstructor","clang_CXXConstructor_isCopyConstructor") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4528:28 - makeExtern< CXTokenKind (*)(CXToken) , clang_getTokenKind , SimNode_ExtFuncCall >(lib,"clang_getTokenKind","clang_getTokenKind") - ->args({""}) +// from clang-c/Index.h:4733:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isDefaultConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isDefaultConstructor","clang_CXXConstructor_isDefaultConstructor") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4536:25 - makeExtern< CXString (*)(CXTranslationUnitImpl *,CXToken) , clang_getTokenSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTokenSpelling","clang_getTokenSpelling") - ->args({"",""}) +// from clang-c/Index.h:4738:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXConstructor_isMoveConstructor , SimNode_ExtFuncCall >(lib,"clang_CXXConstructor_isMoveConstructor","clang_CXXConstructor_isMoveConstructor") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4541:33 - makeExtern< CXSourceLocation (*)(CXTranslationUnitImpl *,CXToken) , clang_getTokenLocation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTokenLocation","clang_getTokenLocation") - ->args({"",""}) +// from clang-c/Index.h:4743:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXField_isMutable , SimNode_ExtFuncCall >(lib,"clang_CXXField_isMutable","clang_CXXField_isMutable") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4547:30 - makeExtern< CXSourceRange (*)(CXTranslationUnitImpl *,CXToken) , clang_getTokenExtent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTokenExtent","clang_getTokenExtent") - ->args({"",""}) +// from clang-c/Index.h:4748:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isDefaulted , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isDefaulted","clang_CXXMethod_isDefaulted") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4566:21 - makeExtern< void (*)(CXTranslationUnitImpl *,CXSourceRange,CXToken **,unsigned int *) , clang_tokenize , SimNode_ExtFuncCall >(lib,"clang_tokenize","clang_tokenize") - ->args({"TU","Range","Tokens","NumTokens"}) +// from clang-c/Index.h:4753:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isDeleted , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isDeleted","clang_CXXMethod_isDeleted") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4599:21 - makeExtern< void (*)(CXTranslationUnitImpl *,CXToken *,unsigned int,CXCursor *) , clang_annotateTokens , SimNode_ExtFuncCall >(lib,"clang_annotateTokens","clang_annotateTokens") - ->args({"TU","Tokens","NumTokens","Cursors"}) +// from clang-c/Index.h:4759:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isPureVirtual , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isPureVirtual","clang_CXXMethod_isPureVirtual") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_14.cpp b/modules/dasClangBind/src/dasClangBind.func_14.cpp index be9fff0a7d..7b25756725 100644 --- a/modules/dasClangBind/src/dasClangBind.func_14.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_14.cpp @@ -12,83 +12,85 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_14() { -// from clang-c/Index.h:4605:21 - makeExtern< void (*)(CXTranslationUnitImpl *,CXToken *,unsigned int) , clang_disposeTokens , SimNode_ExtFuncCall >(lib,"clang_disposeTokens","clang_disposeTokens") - ->args({"TU","Tokens","NumTokens"}) +// from clang-c/Index.h:4765:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isStatic , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isStatic","clang_CXXMethod_isStatic") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4622:25 - makeExtern< CXString (*)(CXCursorKind) , clang_getCursorKindSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorKindSpelling","clang_getCursorKindSpelling") - ->args({"Kind"}) +// from clang-c/Index.h:4772:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isVirtual , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isVirtual","clang_CXXMethod_isVirtual") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4623:21 - makeExtern< void (*)(CXCursor,const char **,const char **,unsigned int *,unsigned int *,unsigned int *,unsigned int *) , clang_getDefinitionSpellingAndExtent , SimNode_ExtFuncCall >(lib,"clang_getDefinitionSpellingAndExtent","clang_getDefinitionSpellingAndExtent") - ->args({"","startBuf","endBuf","startLine","startColumn","endLine","endColumn"}) +// from clang-c/Index.h:4797:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isCopyAssignmentOperator , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isCopyAssignmentOperator","clang_CXXMethod_isCopyAssignmentOperator") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4626:21 - makeExtern< void (*)() , clang_enableStackTraces , SimNode_ExtFuncCall >(lib,"clang_enableStackTraces","clang_enableStackTraces") +// from clang-c/Index.h:4822:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isMoveAssignmentOperator , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isMoveAssignmentOperator","clang_CXXMethod_isMoveAssignmentOperator") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4865:1 - makeExtern< CXCompletionChunkKind (*)(void *,unsigned int) , clang_getCompletionChunkKind , SimNode_ExtFuncCall >(lib,"clang_getCompletionChunkKind","clang_getCompletionChunkKind") - ->args({"completion_string","chunk_number"}) +// from clang-c/Index.h:4867:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isExplicit , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isExplicit","clang_CXXMethod_isExplicit") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4878:25 - makeExtern< CXString (*)(void *,unsigned int) , clang_getCompletionChunkText , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionChunkText","clang_getCompletionChunkText") - ->args({"completion_string","chunk_number"}) +// from clang-c/Index.h:4873:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXRecord_isAbstract , SimNode_ExtFuncCall >(lib,"clang_CXXRecord_isAbstract","clang_CXXRecord_isAbstract") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4892:35 - makeExtern< void * (*)(void *,unsigned int) , clang_getCompletionChunkCompletionString , SimNode_ExtFuncCall >(lib,"clang_getCompletionChunkCompletionString","clang_getCompletionChunkCompletionString") - ->args({"completion_string","chunk_number"}) +// from clang-c/Index.h:4878:25 + makeExtern< unsigned int (*)(CXCursor) , clang_EnumDecl_isScoped , SimNode_ExtFuncCall >(lib,"clang_EnumDecl_isScoped","clang_EnumDecl_isScoped") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4899:1 - makeExtern< unsigned int (*)(void *) , clang_getNumCompletionChunks , SimNode_ExtFuncCall >(lib,"clang_getNumCompletionChunks","clang_getNumCompletionChunks") - ->args({"completion_string"}) +// from clang-c/Index.h:4884:25 + makeExtern< unsigned int (*)(CXCursor) , clang_CXXMethod_isConst , SimNode_ExtFuncCall >(lib,"clang_CXXMethod_isConst","clang_CXXMethod_isConst") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4914:1 - makeExtern< unsigned int (*)(void *) , clang_getCompletionPriority , SimNode_ExtFuncCall >(lib,"clang_getCompletionPriority","clang_getCompletionPriority") - ->args({"completion_string"}) +// from clang-c/Index.h:4903:34 + makeExtern< CXCursorKind (*)(CXCursor) , clang_getTemplateCursorKind , SimNode_ExtFuncCall >(lib,"clang_getTemplateCursorKind","clang_getTemplateCursorKind") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4925:1 - makeExtern< CXAvailabilityKind (*)(void *) , clang_getCompletionAvailability , SimNode_ExtFuncCall >(lib,"clang_getCompletionAvailability","clang_getCompletionAvailability") - ->args({"completion_string"}) +// from clang-c/Index.h:4933:25 + makeExtern< CXCursor (*)(CXCursor) , clang_getSpecializedCursorTemplate , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getSpecializedCursorTemplate","clang_getSpecializedCursorTemplate") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4937:1 - makeExtern< unsigned int (*)(void *) , clang_getCompletionNumAnnotations , SimNode_ExtFuncCall >(lib,"clang_getCompletionNumAnnotations","clang_getCompletionNumAnnotations") - ->args({"completion_string"}) +// from clang-c/Index.h:4953:30 + makeExtern< CXSourceRange (*)(CXCursor,unsigned int,unsigned int) , clang_getCursorReferenceNameRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorReferenceNameRange","clang_getCursorReferenceNameRange") + ->args({"C","NameFlags","PieceIndex"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4950:25 - makeExtern< CXString (*)(void *,unsigned int) , clang_getCompletionAnnotation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionAnnotation","clang_getCompletionAnnotation") - ->args({"completion_string","annotation_number"}) +// from clang-c/Index.h:5045:25 + makeExtern< CXToken * (*)(CXTranslationUnitImpl *,CXSourceLocation) , clang_getToken , SimNode_ExtFuncCall >(lib,"clang_getToken","clang_getToken") + ->args({"TU","Location"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4969:25 - makeExtern< CXString (*)(void *,CXCursorKind *) , clang_getCompletionParent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionParent","clang_getCompletionParent") - ->args({"completion_string","kind"}) +// from clang-c/Index.h:5051:28 + makeExtern< CXTokenKind (*)(CXToken) , clang_getTokenKind , SimNode_ExtFuncCall >(lib,"clang_getTokenKind","clang_getTokenKind") + ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4977:1 - makeExtern< CXString (*)(void *) , clang_getCompletionBriefComment , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionBriefComment","clang_getCompletionBriefComment") - ->args({"completion_string"}) +// from clang-c/Index.h:5059:25 + makeExtern< CXString (*)(CXTranslationUnitImpl *,CXToken) , clang_getTokenSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTokenSpelling","clang_getTokenSpelling") + ->args({"",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:4989:1 - makeExtern< void * (*)(CXCursor) , clang_getCursorCompletionString , SimNode_ExtFuncCall >(lib,"clang_getCursorCompletionString","clang_getCursorCompletionString") - ->args({"cursor"}) +// from clang-c/Index.h:5064:33 + makeExtern< CXSourceLocation (*)(CXTranslationUnitImpl *,CXToken) , clang_getTokenLocation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTokenLocation","clang_getTokenLocation") + ->args({"",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5025:1 - makeExtern< unsigned int (*)(CXCodeCompleteResults *,unsigned int) , clang_getCompletionNumFixIts , SimNode_ExtFuncCall >(lib,"clang_getCompletionNumFixIts","clang_getCompletionNumFixIts") - ->args({"results","completion_index"}) +// from clang-c/Index.h:5070:30 + makeExtern< CXSourceRange (*)(CXTranslationUnitImpl *,CXToken) , clang_getTokenExtent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTokenExtent","clang_getTokenExtent") + ->args({"",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5071:25 - makeExtern< CXString (*)(CXCodeCompleteResults *,unsigned int,unsigned int,CXSourceRange *) , clang_getCompletionFixIt , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionFixIt","clang_getCompletionFixIt") - ->args({"results","completion_index","fixit_index","replacement_range"}) +// from clang-c/Index.h:5089:21 + makeExtern< void (*)(CXTranslationUnitImpl *,CXSourceRange,CXToken **,unsigned int *) , clang_tokenize , SimNode_ExtFuncCall >(lib,"clang_tokenize","clang_tokenize") + ->args({"TU","Range","Tokens","NumTokens"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5255:25 - makeExtern< unsigned int (*)() , clang_defaultCodeCompleteOptions , SimNode_ExtFuncCall >(lib,"clang_defaultCodeCompleteOptions","clang_defaultCodeCompleteOptions") +// from clang-c/Index.h:5122:21 + makeExtern< void (*)(CXTranslationUnitImpl *,CXToken *,unsigned int,CXCursor *) , clang_annotateTokens , SimNode_ExtFuncCall >(lib,"clang_annotateTokens","clang_annotateTokens") + ->args({"TU","Tokens","NumTokens","Cursors"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5327:1 - makeExtern< CXCodeCompleteResults * (*)(CXTranslationUnitImpl *,const char *,unsigned int,unsigned int,CXUnsavedFile *,unsigned int,unsigned int) , clang_codeCompleteAt , SimNode_ExtFuncCall >(lib,"clang_codeCompleteAt","clang_codeCompleteAt") - ->args({"TU","complete_filename","complete_line","complete_column","unsaved_files","num_unsaved_files","options"}) +// from clang-c/Index.h:5128:21 + makeExtern< void (*)(CXTranslationUnitImpl *,CXToken *,unsigned int) , clang_disposeTokens , SimNode_ExtFuncCall >(lib,"clang_disposeTokens","clang_disposeTokens") + ->args({"TU","Tokens","NumTokens"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5340:6 - makeExtern< void (*)(CXCompletionResult *,unsigned int) , clang_sortCodeCompletionResults , SimNode_ExtFuncCall >(lib,"clang_sortCodeCompletionResults","clang_sortCodeCompletionResults") - ->args({"Results","NumResults"}) +// from clang-c/Index.h:5145:25 + makeExtern< CXString (*)(CXCursorKind) , clang_getCursorKindSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorKindSpelling","clang_getCursorKindSpelling") + ->args({"Kind"}) ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_15.cpp b/modules/dasClangBind/src/dasClangBind.func_15.cpp index f8b98ae45a..4b954e28bf 100644 --- a/modules/dasClangBind/src/dasClangBind.func_15.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_15.cpp @@ -12,84 +12,83 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_15() { -// from clang-c/Index.h:5347:6 - makeExtern< void (*)(CXCodeCompleteResults *) , clang_disposeCodeCompleteResults , SimNode_ExtFuncCall >(lib,"clang_disposeCodeCompleteResults","clang_disposeCodeCompleteResults") - ->args({"Results"}) +// from clang-c/Index.h:5146:21 + makeExtern< void (*)(CXCursor,const char **,const char **,unsigned int *,unsigned int *,unsigned int *,unsigned int *) , clang_getDefinitionSpellingAndExtent , SimNode_ExtFuncCall >(lib,"clang_getDefinitionSpellingAndExtent","clang_getDefinitionSpellingAndExtent") + ->args({"","startBuf","endBuf","startLine","startColumn","endLine","endColumn"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5354:10 - makeExtern< unsigned int (*)(CXCodeCompleteResults *) , clang_codeCompleteGetNumDiagnostics , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetNumDiagnostics","clang_codeCompleteGetNumDiagnostics") - ->args({"Results"}) +// from clang-c/Index.h:5149:21 + makeExtern< void (*)() , clang_enableStackTraces , SimNode_ExtFuncCall >(lib,"clang_enableStackTraces","clang_enableStackTraces") ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5366:14 - makeExtern< void * (*)(CXCodeCompleteResults *,unsigned int) , clang_codeCompleteGetDiagnostic , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetDiagnostic","clang_codeCompleteGetDiagnostic") - ->args({"Results","Index"}) +// from clang-c/Index.h:5388:1 + makeExtern< CXCompletionChunkKind (*)(void *,unsigned int) , clang_getCompletionChunkKind , SimNode_ExtFuncCall >(lib,"clang_getCompletionChunkKind","clang_getCompletionChunkKind") + ->args({"completion_string","chunk_number"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5380:1 - makeExtern< unsigned long long (*)(CXCodeCompleteResults *) , clang_codeCompleteGetContexts , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetContexts","clang_codeCompleteGetContexts") - ->args({"Results"}) +// from clang-c/Index.h:5401:25 + makeExtern< CXString (*)(void *,unsigned int) , clang_getCompletionChunkText , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionChunkText","clang_getCompletionChunkText") + ->args({"completion_string","chunk_number"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5400:1 - makeExtern< CXCursorKind (*)(CXCodeCompleteResults *,unsigned int *) , clang_codeCompleteGetContainerKind , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetContainerKind","clang_codeCompleteGetContainerKind") - ->args({"Results","IsIncomplete"}) +// from clang-c/Index.h:5415:35 + makeExtern< void * (*)(void *,unsigned int) , clang_getCompletionChunkCompletionString , SimNode_ExtFuncCall >(lib,"clang_getCompletionChunkCompletionString","clang_getCompletionChunkCompletionString") + ->args({"completion_string","chunk_number"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5413:10 - makeExtern< CXString (*)(CXCodeCompleteResults *) , clang_codeCompleteGetContainerUSR , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_codeCompleteGetContainerUSR","clang_codeCompleteGetContainerUSR") - ->args({"Results"}) +// from clang-c/Index.h:5422:1 + makeExtern< unsigned int (*)(void *) , clang_getNumCompletionChunks , SimNode_ExtFuncCall >(lib,"clang_getNumCompletionChunks","clang_getNumCompletionChunks") + ->args({"completion_string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5427:10 - makeExtern< CXString (*)(CXCodeCompleteResults *) , clang_codeCompleteGetObjCSelector , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_codeCompleteGetObjCSelector","clang_codeCompleteGetObjCSelector") - ->args({"Results"}) +// from clang-c/Index.h:5437:1 + makeExtern< unsigned int (*)(void *) , clang_getCompletionPriority , SimNode_ExtFuncCall >(lib,"clang_getCompletionPriority","clang_getCompletionPriority") + ->args({"completion_string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5443:25 - makeExtern< CXString (*)() , clang_getClangVersion , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getClangVersion","clang_getClangVersion") +// from clang-c/Index.h:5448:1 + makeExtern< CXAvailabilityKind (*)(void *) , clang_getCompletionAvailability , SimNode_ExtFuncCall >(lib,"clang_getCompletionAvailability","clang_getCompletionAvailability") + ->args({"completion_string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5451:21 - makeExtern< void (*)(unsigned int) , clang_toggleCrashRecovery , SimNode_ExtFuncCall >(lib,"clang_toggleCrashRecovery","clang_toggleCrashRecovery") - ->args({"isEnabled"}) +// from clang-c/Index.h:5460:1 + makeExtern< unsigned int (*)(void *) , clang_getCompletionNumAnnotations , SimNode_ExtFuncCall >(lib,"clang_getCompletionNumAnnotations","clang_getCompletionNumAnnotations") + ->args({"completion_string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5502:29 - makeExtern< void * (*)(CXCursor) , clang_Cursor_Evaluate , SimNode_ExtFuncCall >(lib,"clang_Cursor_Evaluate","clang_Cursor_Evaluate") - ->args({"C"}) +// from clang-c/Index.h:5473:25 + makeExtern< CXString (*)(void *,unsigned int) , clang_getCompletionAnnotation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionAnnotation","clang_getCompletionAnnotation") + ->args({"completion_string","annotation_number"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5507:33 - makeExtern< CXEvalResultKind (*)(void *) , clang_EvalResult_getKind , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getKind","clang_EvalResult_getKind") - ->args({"E"}) +// from clang-c/Index.h:5492:25 + makeExtern< CXString (*)(void *,CXCursorKind *) , clang_getCompletionParent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionParent","clang_getCompletionParent") + ->args({"completion_string","kind"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5513:20 - makeExtern< int (*)(void *) , clang_EvalResult_getAsInt , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsInt","clang_EvalResult_getAsInt") - ->args({"E"}) +// from clang-c/Index.h:5500:1 + makeExtern< CXString (*)(void *) , clang_getCompletionBriefComment , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionBriefComment","clang_getCompletionBriefComment") + ->args({"completion_string"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5520:26 - makeExtern< long long (*)(void *) , clang_EvalResult_getAsLongLong , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsLongLong","clang_EvalResult_getAsLongLong") - ->args({"E"}) +// from clang-c/Index.h:5512:1 + makeExtern< void * (*)(CXCursor) , clang_getCursorCompletionString , SimNode_ExtFuncCall >(lib,"clang_getCursorCompletionString","clang_getCursorCompletionString") + ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5526:25 - makeExtern< unsigned int (*)(void *) , clang_EvalResult_isUnsignedInt , SimNode_ExtFuncCall >(lib,"clang_EvalResult_isUnsignedInt","clang_EvalResult_isUnsignedInt") - ->args({"E"}) +// from clang-c/Index.h:5548:1 + makeExtern< unsigned int (*)(CXCodeCompleteResults *,unsigned int) , clang_getCompletionNumFixIts , SimNode_ExtFuncCall >(lib,"clang_getCompletionNumFixIts","clang_getCompletionNumFixIts") + ->args({"results","completion_index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5533:1 - makeExtern< unsigned long long (*)(void *) , clang_EvalResult_getAsUnsigned , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsUnsigned","clang_EvalResult_getAsUnsigned") - ->args({"E"}) +// from clang-c/Index.h:5594:25 + makeExtern< CXString (*)(CXCodeCompleteResults *,unsigned int,unsigned int,CXSourceRange *) , clang_getCompletionFixIt , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCompletionFixIt","clang_getCompletionFixIt") + ->args({"results","completion_index","fixit_index","replacement_range"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5539:23 - makeExtern< double (*)(void *) , clang_EvalResult_getAsDouble , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsDouble","clang_EvalResult_getAsDouble") - ->args({"E"}) +// from clang-c/Index.h:5778:25 + makeExtern< unsigned int (*)() , clang_defaultCodeCompleteOptions , SimNode_ExtFuncCall >(lib,"clang_defaultCodeCompleteOptions","clang_defaultCodeCompleteOptions") ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5547:28 - makeExtern< const char * (*)(void *) , clang_EvalResult_getAsStr , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsStr","clang_EvalResult_getAsStr") - ->args({"E"}) +// from clang-c/Index.h:5850:1 + makeExtern< CXCodeCompleteResults * (*)(CXTranslationUnitImpl *,const char *,unsigned int,unsigned int,CXUnsavedFile *,unsigned int,unsigned int) , clang_codeCompleteAt , SimNode_ExtFuncCall >(lib,"clang_codeCompleteAt","clang_codeCompleteAt") + ->args({"TU","complete_filename","complete_line","complete_column","unsaved_files","num_unsaved_files","options"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5552:21 - makeExtern< void (*)(void *) , clang_EvalResult_dispose , SimNode_ExtFuncCall >(lib,"clang_EvalResult_dispose","clang_EvalResult_dispose") - ->args({"E"}) +// from clang-c/Index.h:5863:6 + makeExtern< void (*)(CXCompletionResult *,unsigned int) , clang_sortCodeCompletionResults , SimNode_ExtFuncCall >(lib,"clang_sortCodeCompletionResults","clang_sortCodeCompletionResults") + ->args({"Results","NumResults"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5575:28 - makeExtern< void * (*)(const char *) , clang_getRemappings , SimNode_ExtFuncCall >(lib,"clang_getRemappings","clang_getRemappings") - ->args({"path"}) +// from clang-c/Index.h:5870:6 + makeExtern< void (*)(CXCodeCompleteResults *) , clang_disposeCodeCompleteResults , SimNode_ExtFuncCall >(lib,"clang_disposeCodeCompleteResults","clang_disposeCodeCompleteResults") + ->args({"Results"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5588:13 - makeExtern< void * (*)(const char **,unsigned int) , clang_getRemappingsFromFileList , SimNode_ExtFuncCall >(lib,"clang_getRemappingsFromFileList","clang_getRemappingsFromFileList") - ->args({"filePaths","numFiles"}) +// from clang-c/Index.h:5877:10 + makeExtern< unsigned int (*)(CXCodeCompleteResults *) , clang_codeCompleteGetNumDiagnostics , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetNumDiagnostics","clang_codeCompleteGetNumDiagnostics") + ->args({"Results"}) ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_16.cpp b/modules/dasClangBind/src/dasClangBind.func_16.cpp index a78a2ce827..f906592bb3 100644 --- a/modules/dasClangBind/src/dasClangBind.func_16.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_16.cpp @@ -12,85 +12,84 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_16() { -// from clang-c/Index.h:5594:25 - makeExtern< unsigned int (*)(void *) , clang_remap_getNumFiles , SimNode_ExtFuncCall >(lib,"clang_remap_getNumFiles","clang_remap_getNumFiles") - ->args({""}) +// from clang-c/Index.h:5889:14 + makeExtern< void * (*)(CXCodeCompleteResults *,unsigned int) , clang_codeCompleteGetDiagnostic , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetDiagnostic","clang_codeCompleteGetDiagnostic") + ->args({"Results","Index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5604:21 - makeExtern< void (*)(void *,unsigned int,CXString *,CXString *) , clang_remap_getFilenames , SimNode_ExtFuncCall >(lib,"clang_remap_getFilenames","clang_remap_getFilenames") - ->args({"","index","original","transformed"}) +// from clang-c/Index.h:5903:1 + makeExtern< unsigned long long (*)(CXCodeCompleteResults *) , clang_codeCompleteGetContexts , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetContexts","clang_codeCompleteGetContexts") + ->args({"Results"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5611:21 - makeExtern< void (*)(void *) , clang_remap_dispose , SimNode_ExtFuncCall >(lib,"clang_remap_dispose","clang_remap_dispose") - ->args({""}) +// from clang-c/Index.h:5923:1 + makeExtern< CXCursorKind (*)(CXCodeCompleteResults *,unsigned int *) , clang_codeCompleteGetContainerKind , SimNode_ExtFuncCall >(lib,"clang_codeCompleteGetContainerKind","clang_codeCompleteGetContainerKind") + ->args({"Results","IsIncomplete"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5660:25 - makeExtern< CXResult (*)(CXCursor,void *,CXCursorAndRangeVisitor) , clang_findReferencesInFile , SimNode_ExtFuncCall >(lib,"clang_findReferencesInFile","clang_findReferencesInFile") - ->args({"cursor","file","visitor"}) +// from clang-c/Index.h:5936:10 + makeExtern< CXString (*)(CXCodeCompleteResults *) , clang_codeCompleteGetContainerUSR , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_codeCompleteGetContainerUSR","clang_codeCompleteGetContainerUSR") + ->args({"Results"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:5675:25 - makeExtern< CXResult (*)(CXTranslationUnitImpl *,void *,CXCursorAndRangeVisitor) , clang_findIncludesInFile , SimNode_ExtFuncCall >(lib,"clang_findIncludesInFile","clang_findIncludesInFile") - ->args({"TU","file","visitor"}) +// from clang-c/Index.h:5950:10 + makeExtern< CXString (*)(CXCodeCompleteResults *) , clang_codeCompleteGetObjCSelector , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_codeCompleteGetObjCSelector","clang_codeCompleteGetObjCSelector") + ->args({"Results"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6077:20 - makeExtern< int (*)(CXIdxEntityKind) , clang_index_isEntityObjCContainerKind , SimNode_ExtFuncCall >(lib,"clang_index_isEntityObjCContainerKind","clang_index_isEntityObjCContainerKind") - ->args({""}) +// from clang-c/Index.h:5966:25 + makeExtern< CXString (*)() , clang_getClangVersion , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getClangVersion","clang_getClangVersion") ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6079:1 - makeExtern< const CXIdxObjCContainerDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCContainerDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCContainerDeclInfo","clang_index_getObjCContainerDeclInfo") - ->args({""}) +// from clang-c/Index.h:5974:21 + makeExtern< void (*)(unsigned int) , clang_toggleCrashRecovery , SimNode_ExtFuncCall >(lib,"clang_toggleCrashRecovery","clang_toggleCrashRecovery") + ->args({"isEnabled"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6082:1 - makeExtern< const CXIdxObjCInterfaceDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCInterfaceDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCInterfaceDeclInfo","clang_index_getObjCInterfaceDeclInfo") - ->args({""}) +// from clang-c/Index.h:6025:29 + makeExtern< void * (*)(CXCursor) , clang_Cursor_Evaluate , SimNode_ExtFuncCall >(lib,"clang_Cursor_Evaluate","clang_Cursor_Evaluate") + ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6086:1 - makeExtern< const CXIdxObjCCategoryDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCCategoryDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCCategoryDeclInfo","clang_index_getObjCCategoryDeclInfo") - ->args({""}) +// from clang-c/Index.h:6030:33 + makeExtern< CXEvalResultKind (*)(void *) , clang_EvalResult_getKind , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getKind","clang_EvalResult_getKind") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6089:1 - makeExtern< const CXIdxObjCProtocolRefListInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCProtocolRefListInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCProtocolRefListInfo","clang_index_getObjCProtocolRefListInfo") - ->args({""}) +// from clang-c/Index.h:6036:20 + makeExtern< int (*)(void *) , clang_EvalResult_getAsInt , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsInt","clang_EvalResult_getAsInt") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6092:1 - makeExtern< const CXIdxObjCPropertyDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCPropertyDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCPropertyDeclInfo","clang_index_getObjCPropertyDeclInfo") - ->args({""}) +// from clang-c/Index.h:6043:26 + makeExtern< long long (*)(void *) , clang_EvalResult_getAsLongLong , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsLongLong","clang_EvalResult_getAsLongLong") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6095:1 - makeExtern< const CXIdxIBOutletCollectionAttrInfo * (*)(const CXIdxAttrInfo *) , clang_index_getIBOutletCollectionAttrInfo , SimNode_ExtFuncCall >(lib,"clang_index_getIBOutletCollectionAttrInfo","clang_index_getIBOutletCollectionAttrInfo") - ->args({""}) +// from clang-c/Index.h:6049:25 + makeExtern< unsigned int (*)(void *) , clang_EvalResult_isUnsignedInt , SimNode_ExtFuncCall >(lib,"clang_EvalResult_isUnsignedInt","clang_EvalResult_isUnsignedInt") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6098:1 - makeExtern< const CXIdxCXXClassDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getCXXClassDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getCXXClassDeclInfo","clang_index_getCXXClassDeclInfo") - ->args({""}) +// from clang-c/Index.h:6056:1 + makeExtern< unsigned long long (*)(void *) , clang_EvalResult_getAsUnsigned , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsUnsigned","clang_EvalResult_getAsUnsigned") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6105:1 - makeExtern< void * (*)(const CXIdxContainerInfo *) , clang_index_getClientContainer , SimNode_ExtFuncCall >(lib,"clang_index_getClientContainer","clang_index_getClientContainer") - ->args({""}) +// from clang-c/Index.h:6062:23 + makeExtern< double (*)(void *) , clang_EvalResult_getAsDouble , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsDouble","clang_EvalResult_getAsDouble") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6111:21 - makeExtern< void (*)(const CXIdxContainerInfo *,void *) , clang_index_setClientContainer , SimNode_ExtFuncCall >(lib,"clang_index_setClientContainer","clang_index_setClientContainer") - ->args({"",""}) +// from clang-c/Index.h:6070:28 + makeExtern< const char * (*)(void *) , clang_EvalResult_getAsStr , SimNode_ExtFuncCall >(lib,"clang_EvalResult_getAsStr","clang_EvalResult_getAsStr") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6118:1 - makeExtern< void * (*)(const CXIdxEntityInfo *) , clang_index_getClientEntity , SimNode_ExtFuncCall >(lib,"clang_index_getClientEntity","clang_index_getClientEntity") - ->args({""}) +// from clang-c/Index.h:6075:21 + makeExtern< void (*)(void *) , clang_EvalResult_dispose , SimNode_ExtFuncCall >(lib,"clang_EvalResult_dispose","clang_EvalResult_dispose") + ->args({"E"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6123:21 - makeExtern< void (*)(const CXIdxEntityInfo *,void *) , clang_index_setClientEntity , SimNode_ExtFuncCall >(lib,"clang_index_setClientEntity","clang_index_setClientEntity") - ->args({"",""}) +// from clang-c/Index.h:6123:25 + makeExtern< CXResult (*)(CXCursor,void *,CXCursorAndRangeVisitor) , clang_findReferencesInFile , SimNode_ExtFuncCall >(lib,"clang_findReferencesInFile","clang_findReferencesInFile") + ->args({"cursor","file","visitor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6138:30 - makeExtern< void * (*)(void *) , clang_IndexAction_create , SimNode_ExtFuncCall >(lib,"clang_IndexAction_create","clang_IndexAction_create") - ->args({"CIdx"}) +// from clang-c/Index.h:6138:25 + makeExtern< CXResult (*)(CXTranslationUnitImpl *,void *,CXCursorAndRangeVisitor) , clang_findIncludesInFile , SimNode_ExtFuncCall >(lib,"clang_findIncludesInFile","clang_findIncludesInFile") + ->args({"TU","file","visitor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6146:21 - makeExtern< void (*)(void *) , clang_IndexAction_dispose , SimNode_ExtFuncCall >(lib,"clang_IndexAction_dispose","clang_IndexAction_dispose") - ->args({""}) +// from clang-c/Index.h:6149:10 + makeExtern< CXResult (*)(CXCursor,void *,_CXCursorAndRangeVisitorBlock *) , clang_findReferencesInFileWithBlock , SimNode_ExtFuncCall >(lib,"clang_findReferencesInFileWithBlock","clang_findReferencesInFileWithBlock") + ->args({"","",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6212:20 - makeExtern< int (*)(void *,void *,IndexerCallbacks *,unsigned int,unsigned int,const char *,const char *const *,int,CXUnsavedFile *,unsigned int,CXTranslationUnitImpl **,unsigned int) , clang_indexSourceFile , SimNode_ExtFuncCall >(lib,"clang_indexSourceFile","clang_indexSourceFile") - ->args({"","client_data","index_callbacks","index_callbacks_size","index_options","source_filename","command_line_args","num_command_line_args","unsaved_files","num_unsaved_files","out_TU","TU_options"}) +// from clang-c/Index.h:6153:10 + makeExtern< CXResult (*)(CXTranslationUnitImpl *,void *,_CXCursorAndRangeVisitorBlock *) , clang_findIncludesInFileWithBlock , SimNode_ExtFuncCall >(lib,"clang_findIncludesInFileWithBlock","clang_findIncludesInFileWithBlock") + ->args({"","",""}) ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_17.cpp b/modules/dasClangBind/src/dasClangBind.func_17.cpp index ebc686ca4f..3b5793b210 100644 --- a/modules/dasClangBind/src/dasClangBind.func_17.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_17.cpp @@ -12,22 +12,86 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_17() { -// from clang-c/Index.h:6224:20 +// from clang-c/Index.h:6538:20 + makeExtern< int (*)(CXIdxEntityKind) , clang_index_isEntityObjCContainerKind , SimNode_ExtFuncCall >(lib,"clang_index_isEntityObjCContainerKind","clang_index_isEntityObjCContainerKind") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6540:1 + makeExtern< const CXIdxObjCContainerDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCContainerDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCContainerDeclInfo","clang_index_getObjCContainerDeclInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6543:1 + makeExtern< const CXIdxObjCInterfaceDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCInterfaceDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCInterfaceDeclInfo","clang_index_getObjCInterfaceDeclInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6547:1 + makeExtern< const CXIdxObjCCategoryDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCCategoryDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCCategoryDeclInfo","clang_index_getObjCCategoryDeclInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6550:1 + makeExtern< const CXIdxObjCProtocolRefListInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCProtocolRefListInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCProtocolRefListInfo","clang_index_getObjCProtocolRefListInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6553:1 + makeExtern< const CXIdxObjCPropertyDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getObjCPropertyDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getObjCPropertyDeclInfo","clang_index_getObjCPropertyDeclInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6556:1 + makeExtern< const CXIdxIBOutletCollectionAttrInfo * (*)(const CXIdxAttrInfo *) , clang_index_getIBOutletCollectionAttrInfo , SimNode_ExtFuncCall >(lib,"clang_index_getIBOutletCollectionAttrInfo","clang_index_getIBOutletCollectionAttrInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6559:1 + makeExtern< const CXIdxCXXClassDeclInfo * (*)(const CXIdxDeclInfo *) , clang_index_getCXXClassDeclInfo , SimNode_ExtFuncCall >(lib,"clang_index_getCXXClassDeclInfo","clang_index_getCXXClassDeclInfo") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6566:1 + makeExtern< void * (*)(const CXIdxContainerInfo *) , clang_index_getClientContainer , SimNode_ExtFuncCall >(lib,"clang_index_getClientContainer","clang_index_getClientContainer") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6572:21 + makeExtern< void (*)(const CXIdxContainerInfo *,void *) , clang_index_setClientContainer , SimNode_ExtFuncCall >(lib,"clang_index_setClientContainer","clang_index_setClientContainer") + ->args({"",""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6579:1 + makeExtern< void * (*)(const CXIdxEntityInfo *) , clang_index_getClientEntity , SimNode_ExtFuncCall >(lib,"clang_index_getClientEntity","clang_index_getClientEntity") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6584:21 + makeExtern< void (*)(const CXIdxEntityInfo *,void *) , clang_index_setClientEntity , SimNode_ExtFuncCall >(lib,"clang_index_setClientEntity","clang_index_setClientEntity") + ->args({"",""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6599:30 + makeExtern< void * (*)(void *) , clang_IndexAction_create , SimNode_ExtFuncCall >(lib,"clang_IndexAction_create","clang_IndexAction_create") + ->args({"CIdx"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6607:21 + makeExtern< void (*)(void *) , clang_IndexAction_dispose , SimNode_ExtFuncCall >(lib,"clang_IndexAction_dispose","clang_IndexAction_dispose") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6673:20 + makeExtern< int (*)(void *,void *,IndexerCallbacks *,unsigned int,unsigned int,const char *,const char *const *,int,CXUnsavedFile *,unsigned int,CXTranslationUnitImpl **,unsigned int) , clang_indexSourceFile , SimNode_ExtFuncCall >(lib,"clang_indexSourceFile","clang_indexSourceFile") + ->args({"","client_data","index_callbacks","index_callbacks_size","index_options","source_filename","command_line_args","num_command_line_args","unsaved_files","num_unsaved_files","out_TU","TU_options"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6685:20 makeExtern< int (*)(void *,void *,IndexerCallbacks *,unsigned int,unsigned int,const char *,const char *const *,int,CXUnsavedFile *,unsigned int,CXTranslationUnitImpl **,unsigned int) , clang_indexSourceFileFullArgv , SimNode_ExtFuncCall >(lib,"clang_indexSourceFileFullArgv","clang_indexSourceFileFullArgv") ->args({"","client_data","index_callbacks","index_callbacks_size","index_options","source_filename","command_line_args","num_command_line_args","unsaved_files","num_unsaved_files","out_TU","TU_options"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6247:20 +// from clang-c/Index.h:6708:20 makeExtern< int (*)(void *,void *,IndexerCallbacks *,unsigned int,unsigned int,CXTranslationUnitImpl *) , clang_indexTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_indexTranslationUnit","clang_indexTranslationUnit") ->args({"","client_data","index_callbacks","index_callbacks_size","index_options",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6259:21 +// from clang-c/Index.h:6720:21 makeExtern< void (*)(CXIdxLoc,void **,void **,unsigned int *,unsigned int *,unsigned int *) , clang_indexLoc_getFileLocation , SimNode_ExtFuncCall >(lib,"clang_indexLoc_getFileLocation","clang_indexLoc_getFileLocation") ->args({"loc","indexFile","file","line","column","offset"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:6269:18 +// from clang-c/Index.h:6730:18 makeExtern< CXSourceLocation (*)(CXIdxLoc) , clang_indexLoc_getCXSourceLocation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_indexLoc_getCXSourceLocation","clang_indexLoc_getCXSourceLocation") ->args({"loc"}) ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6892:1 + makeExtern< CXString (*)(CXBinaryOperatorKind) , clang_getBinaryOperatorKindSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getBinaryOperatorKindSpelling","clang_getBinaryOperatorKindSpelling") + ->args({"kind"}) + ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_18.cpp b/modules/dasClangBind/src/dasClangBind.func_18.cpp new file mode 100644 index 0000000000..1e339cc1a6 --- /dev/null +++ b/modules/dasClangBind/src/dasClangBind.func_18.cpp @@ -0,0 +1,49 @@ +// this file is generated via Daslang automatic binder +// all user modifications will be lost after this file is re-generated + +#include "daScript/misc/platform.h" +#include "daScript/ast/ast.h" +#include "daScript/ast/ast_interop.h" +#include "daScript/ast/ast_handle.h" +#include "daScript/ast/ast_typefactory_bind.h" +#include "daScript/simulate/bind_enum.h" +#include "dasClangBind.h" +#include "need_dasClangBind.h" +namespace das { +#include "dasClangBind.func.aot.decl.inc" +void Module_dasClangBind::initFunctions_18() { +// from clang-c/Index.h:6900:1 + makeExtern< CXBinaryOperatorKind (*)(CXCursor) , clang_getCursorBinaryOperatorKind , SimNode_ExtFuncCall >(lib,"clang_getCursorBinaryOperatorKind","clang_getCursorBinaryOperatorKind") + ->args({"cursor"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6942:1 + makeExtern< CXString (*)(CXUnaryOperatorKind) , clang_getUnaryOperatorKindSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getUnaryOperatorKindSpelling","clang_getUnaryOperatorKindSpelling") + ->args({"kind"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6950:1 + makeExtern< CXUnaryOperatorKind (*)(CXCursor) , clang_getCursorUnaryOperatorKind , SimNode_ExtFuncCall >(lib,"clang_getCursorUnaryOperatorKind","clang_getCursorUnaryOperatorKind") + ->args({"cursor"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6963:46 + makeExtern< void * (*)(const char *) , clang_getRemappings , SimNode_ExtFuncCall >(lib,"clang_getRemappings","clang_getRemappings") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6966:1 + makeExtern< void * (*)(const char **,unsigned int) , clang_getRemappingsFromFileList , SimNode_ExtFuncCall >(lib,"clang_getRemappingsFromFileList","clang_getRemappingsFromFileList") + ->args({"",""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6968:43 + makeExtern< unsigned int (*)(void *) , clang_remap_getNumFiles , SimNode_ExtFuncCall >(lib,"clang_remap_getNumFiles","clang_remap_getNumFiles") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6971:1 + makeExtern< void (*)(void *,unsigned int,CXString *,CXString *) , clang_remap_getFilenames , SimNode_ExtFuncCall >(lib,"clang_remap_getFilenames","clang_remap_getFilenames") + ->args({"","","",""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:6973:39 + makeExtern< void (*)(void *) , clang_remap_dispose , SimNode_ExtFuncCall >(lib,"clang_remap_dispose","clang_remap_dispose") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +} +} + diff --git a/modules/dasClangBind/src/dasClangBind.func_2.cpp b/modules/dasClangBind/src/dasClangBind.func_2.cpp index 14446513ad..325066cb80 100644 --- a/modules/dasClangBind/src/dasClangBind.func_2.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_2.cpp @@ -12,19 +12,23 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_2() { -// from clang-c/CXSourceLocation.h:247:21 +// from clang-c/CXSourceLocation.h:229:21 + makeExtern< void (*)(CXSourceLocation,void **,unsigned int *,unsigned int *,unsigned int *) , clang_getSpellingLocation , SimNode_ExtFuncCall >(lib,"clang_getSpellingLocation","clang_getSpellingLocation") + ->args({"location","file","line","column","offset"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/CXSourceLocation.h:257:21 makeExtern< void (*)(CXSourceLocation,void **,unsigned int *,unsigned int *,unsigned int *) , clang_getFileLocation , SimNode_ExtFuncCall >(lib,"clang_getFileLocation","clang_getFileLocation") ->args({"location","file","line","column","offset"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:255:33 +// from clang-c/CXSourceLocation.h:265:33 makeExtern< CXSourceLocation (*)(CXSourceRange) , clang_getRangeStart , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getRangeStart","clang_getRangeStart") ->args({"range"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:261:33 +// from clang-c/CXSourceLocation.h:271:33 makeExtern< CXSourceLocation (*)(CXSourceRange) , clang_getRangeEnd , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getRangeEnd","clang_getRangeEnd") ->args({"range"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXSourceLocation.h:278:21 +// from clang-c/CXSourceLocation.h:288:21 makeExtern< void (*)(CXSourceRangeList *) , clang_disposeSourceRangeList , SimNode_ExtFuncCall >(lib,"clang_disposeSourceRangeList","clang_disposeSourceRangeList") ->args({"ranges"}) ->addToModule(*this, SideEffects::worstDefault); @@ -87,10 +91,6 @@ void Module_dasClangBind::initFunctions_2() { makeExtern< CXString (*)(void *) , clang_getDiagnosticCategoryText , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getDiagnosticCategoryText","clang_getDiagnosticCategoryText") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/CXDiagnostic.h:321:25 - makeExtern< unsigned int (*)(void *) , clang_getDiagnosticNumRanges , SimNode_ExtFuncCall >(lib,"clang_getDiagnosticNumRanges","clang_getDiagnosticNumRanges") - ->args({""}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_3.cpp b/modules/dasClangBind/src/dasClangBind.func_3.cpp index 99204ee627..4115d1be0a 100644 --- a/modules/dasClangBind/src/dasClangBind.func_3.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_3.cpp @@ -12,6 +12,10 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_3() { +// from clang-c/CXDiagnostic.h:321:25 + makeExtern< unsigned int (*)(void *) , clang_getDiagnosticNumRanges , SimNode_ExtFuncCall >(lib,"clang_getDiagnosticNumRanges","clang_getDiagnosticNumRanges") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); // from clang-c/CXDiagnostic.h:336:30 makeExtern< CXSourceRange (*)(void *,unsigned int) , clang_getDiagnosticRange , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getDiagnosticRange","clang_getDiagnosticRange") ->args({"Diagnostic","Range"}) @@ -24,74 +28,70 @@ void Module_dasClangBind::initFunctions_3() { makeExtern< CXString (*)(void *,unsigned int,CXSourceRange *) , clang_getDiagnosticFixIt , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getDiagnosticFixIt","clang_getDiagnosticFixIt") ->args({"Diagnostic","FixIt","ReplacementRange"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:267:24 +// from clang-c/Index.h:271:24 makeExtern< void * (*)(int,int) , clang_createIndex , SimNode_ExtFuncCall >(lib,"clang_createIndex","clang_createIndex") ->args({"excludeDeclarationsFromPCH","displayDiagnostics"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:276:21 +// from clang-c/Index.h:280:21 makeExtern< void (*)(void *) , clang_disposeIndex , SimNode_ExtFuncCall >(lib,"clang_disposeIndex","clang_disposeIndex") ->args({"index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:325:21 +// from clang-c/Index.h:447:1 + makeExtern< void * (*)(const CXIndexOptions *) , clang_createIndexWithOptions , SimNode_ExtFuncCall >(lib,"clang_createIndexWithOptions","clang_createIndexWithOptions") + ->args({"options"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:467:21 makeExtern< void (*)(void *,unsigned int) , clang_CXIndex_setGlobalOptions , SimNode_ExtFuncCall >(lib,"clang_CXIndex_setGlobalOptions","clang_CXIndex_setGlobalOptions") ->args({"","options"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:333:25 +// from clang-c/Index.h:478:25 makeExtern< unsigned int (*)(void *) , clang_CXIndex_getGlobalOptions , SimNode_ExtFuncCall >(lib,"clang_CXIndex_getGlobalOptions","clang_CXIndex_getGlobalOptions") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:343:1 +// from clang-c/Index.h:491:1 makeExtern< void (*)(void *,const char *) , clang_CXIndex_setInvocationEmissionPathOption , SimNode_ExtFuncCall >(lib,"clang_CXIndex_setInvocationEmissionPathOption","clang_CXIndex_setInvocationEmissionPathOption") ->args({"","Path"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:350:25 +// from clang-c/Index.h:498:25 makeExtern< unsigned int (*)(CXTranslationUnitImpl *,void *) , clang_isFileMultipleIncludeGuarded , SimNode_ExtFuncCall >(lib,"clang_isFileMultipleIncludeGuarded","clang_isFileMultipleIncludeGuarded") ->args({"tu","file"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:363:23 +// from clang-c/Index.h:511:23 makeExtern< void * (*)(CXTranslationUnitImpl *,const char *) , clang_getFile , SimNode_ExtFuncCall >(lib,"clang_getFile","clang_getFile") ->args({"tu","file_name"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:378:28 +// from clang-c/Index.h:526:28 makeExtern< const char * (*)(CXTranslationUnitImpl *,void *,size_t *) , clang_getFileContents , SimNode_ExtFuncCall >(lib,"clang_getFileContents","clang_getFileContents") ->args({"tu","file","size"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:385:33 +// from clang-c/Index.h:533:33 makeExtern< CXSourceLocation (*)(CXTranslationUnitImpl *,void *,unsigned int,unsigned int) , clang_getLocation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getLocation","clang_getLocation") ->args({"tu","file","line","column"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:392:33 +// from clang-c/Index.h:540:33 makeExtern< CXSourceLocation (*)(CXTranslationUnitImpl *,void *,unsigned int) , clang_getLocationForOffset , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getLocationForOffset","clang_getLocationForOffset") ->args({"tu","file","offset"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:402:35 +// from clang-c/Index.h:550:35 makeExtern< CXSourceRangeList * (*)(CXTranslationUnitImpl *,void *) , clang_getSkippedRanges , SimNode_ExtFuncCall >(lib,"clang_getSkippedRanges","clang_getSkippedRanges") ->args({"tu","file"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:413:1 +// from clang-c/Index.h:561:1 makeExtern< CXSourceRangeList * (*)(CXTranslationUnitImpl *) , clang_getAllSkippedRanges , SimNode_ExtFuncCall >(lib,"clang_getAllSkippedRanges","clang_getAllSkippedRanges") ->args({"tu"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:419:25 +// from clang-c/Index.h:567:25 makeExtern< unsigned int (*)(CXTranslationUnitImpl *) , clang_getNumDiagnostics , SimNode_ExtFuncCall >(lib,"clang_getNumDiagnostics","clang_getNumDiagnostics") ->args({"Unit"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:430:29 +// from clang-c/Index.h:578:29 makeExtern< void * (*)(CXTranslationUnitImpl *,unsigned int) , clang_getDiagnostic , SimNode_ExtFuncCall >(lib,"clang_getDiagnostic","clang_getDiagnostic") ->args({"Unit","Index"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:440:1 +// from clang-c/Index.h:588:1 makeExtern< void * (*)(CXTranslationUnitImpl *) , clang_getDiagnosticSetFromTU , SimNode_ExtFuncCall >(lib,"clang_getDiagnosticSetFromTU","clang_getDiagnosticSetFromTU") ->args({"Unit"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:456:1 - makeExtern< CXString (*)(CXTranslationUnitImpl *) , clang_getTranslationUnitSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTranslationUnitSpelling","clang_getTranslationUnitSpelling") - ->args({"CTUnit"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:498:34 - makeExtern< CXTranslationUnitImpl * (*)(void *,const char *,int,const char *const *,unsigned int,CXUnsavedFile *) , clang_createTranslationUnitFromSourceFile , SimNode_ExtFuncCall >(lib,"clang_createTranslationUnitFromSourceFile","clang_createTranslationUnitFromSourceFile") - ->args({"CIdx","source_filename","num_clang_command_line_args","clang_command_line_args","num_unsaved_files","unsaved_files"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_4.cpp b/modules/dasClangBind/src/dasClangBind.func_4.cpp index 86a4ee156f..ffb50ae32a 100644 --- a/modules/dasClangBind/src/dasClangBind.func_4.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_4.cpp @@ -12,84 +12,85 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_4() { -// from clang-c/Index.h:510:1 +// from clang-c/Index.h:604:1 + makeExtern< CXString (*)(CXTranslationUnitImpl *) , clang_getTranslationUnitSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTranslationUnitSpelling","clang_getTranslationUnitSpelling") + ->args({"CTUnit"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:646:34 + makeExtern< CXTranslationUnitImpl * (*)(void *,const char *,int,const char *const *,unsigned int,CXUnsavedFile *) , clang_createTranslationUnitFromSourceFile , SimNode_ExtFuncCall >(lib,"clang_createTranslationUnitFromSourceFile","clang_createTranslationUnitFromSourceFile") + ->args({"CIdx","source_filename","num_clang_command_line_args","clang_command_line_args","num_unsaved_files","unsaved_files"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:658:1 makeExtern< CXTranslationUnitImpl * (*)(void *,const char *) , clang_createTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_createTranslationUnit","clang_createTranslationUnit") ->args({"CIdx","ast_filename"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:521:1 +// from clang-c/Index.h:669:1 makeExtern< CXErrorCode (*)(void *,const char *,CXTranslationUnitImpl **) , clang_createTranslationUnit2 , SimNode_ExtFuncCall >(lib,"clang_createTranslationUnit2","clang_createTranslationUnit2") ->args({"CIdx","ast_filename","out_TU"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:692:25 +// from clang-c/Index.h:840:25 makeExtern< unsigned int (*)() , clang_defaultEditingTranslationUnitOptions , SimNode_ExtFuncCall >(lib,"clang_defaultEditingTranslationUnitOptions","clang_defaultEditingTranslationUnitOptions") ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:700:34 +// from clang-c/Index.h:848:34 makeExtern< CXTranslationUnitImpl * (*)(void *,const char *,const char *const *,int,CXUnsavedFile *,unsigned int,unsigned int) , clang_parseTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_parseTranslationUnit","clang_parseTranslationUnit") ->args({"CIdx","source_filename","command_line_args","num_command_line_args","unsaved_files","num_unsaved_files","options"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:750:33 +// from clang-c/Index.h:898:33 makeExtern< CXErrorCode (*)(void *,const char *,const char *const *,int,CXUnsavedFile *,unsigned int,unsigned int,CXTranslationUnitImpl **) , clang_parseTranslationUnit2 , SimNode_ExtFuncCall >(lib,"clang_parseTranslationUnit2","clang_parseTranslationUnit2") ->args({"CIdx","source_filename","command_line_args","num_command_line_args","unsaved_files","num_unsaved_files","options","out_TU"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:761:33 +// from clang-c/Index.h:909:33 makeExtern< CXErrorCode (*)(void *,const char *,const char *const *,int,CXUnsavedFile *,unsigned int,unsigned int,CXTranslationUnitImpl **) , clang_parseTranslationUnit2FullArgv , SimNode_ExtFuncCall >(lib,"clang_parseTranslationUnit2FullArgv","clang_parseTranslationUnit2FullArgv") ->args({"CIdx","source_filename","command_line_args","num_command_line_args","unsaved_files","num_unsaved_files","options","out_TU"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:790:25 +// from clang-c/Index.h:938:25 makeExtern< unsigned int (*)(CXTranslationUnitImpl *) , clang_defaultSaveOptions , SimNode_ExtFuncCall >(lib,"clang_defaultSaveOptions","clang_defaultSaveOptions") ->args({"TU"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:850:20 +// from clang-c/Index.h:998:20 makeExtern< int (*)(CXTranslationUnitImpl *,const char *,unsigned int) , clang_saveTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_saveTranslationUnit","clang_saveTranslationUnit") ->args({"TU","FileName","options"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:861:25 +// from clang-c/Index.h:1009:25 makeExtern< unsigned int (*)(CXTranslationUnitImpl *) , clang_suspendTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_suspendTranslationUnit","clang_suspendTranslationUnit") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:866:21 +// from clang-c/Index.h:1014:21 makeExtern< void (*)(CXTranslationUnitImpl *) , clang_disposeTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_disposeTranslationUnit","clang_disposeTranslationUnit") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:892:25 +// from clang-c/Index.h:1040:25 makeExtern< unsigned int (*)(CXTranslationUnitImpl *) , clang_defaultReparseOptions , SimNode_ExtFuncCall >(lib,"clang_defaultReparseOptions","clang_defaultReparseOptions") ->args({"TU"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:934:1 +// from clang-c/Index.h:1082:1 makeExtern< int (*)(CXTranslationUnitImpl *,unsigned int,CXUnsavedFile *,unsigned int) , clang_reparseTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_reparseTranslationUnit","clang_reparseTranslationUnit") ->args({"TU","num_unsaved_files","unsaved_files","options"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:969:13 +// from clang-c/Index.h:1117:13 makeExtern< const char * (*)(CXTUResourceUsageKind) , clang_getTUResourceUsageName , SimNode_ExtFuncCall >(lib,"clang_getTUResourceUsageName","clang_getTUResourceUsageName") ->args({"kind"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:1000:1 +// from clang-c/Index.h:1148:1 makeExtern< CXTUResourceUsage (*)(CXTranslationUnitImpl *) , clang_getCXTUResourceUsage , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCXTUResourceUsage","clang_getCXTUResourceUsage") ->args({"TU"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:1002:21 +// from clang-c/Index.h:1150:21 makeExtern< void (*)(CXTUResourceUsage) , clang_disposeCXTUResourceUsage , SimNode_ExtFuncCall >(lib,"clang_disposeCXTUResourceUsage","clang_disposeCXTUResourceUsage") ->args({"usage"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:1010:1 +// from clang-c/Index.h:1158:1 makeExtern< CXTargetInfoImpl * (*)(CXTranslationUnitImpl *) , clang_getTranslationUnitTargetInfo , SimNode_ExtFuncCall >(lib,"clang_getTranslationUnitTargetInfo","clang_getTranslationUnitTargetInfo") ->args({"CTUnit"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:1015:21 +// from clang-c/Index.h:1163:21 makeExtern< void (*)(CXTargetInfoImpl *) , clang_TargetInfo_dispose , SimNode_ExtFuncCall >(lib,"clang_TargetInfo_dispose","clang_TargetInfo_dispose") ->args({"Info"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:1022:25 +// from clang-c/Index.h:1170:25 makeExtern< CXString (*)(CXTargetInfoImpl *) , clang_TargetInfo_getTriple , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_TargetInfo_getTriple","clang_TargetInfo_getTriple") ->args({"Info"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:1029:20 - makeExtern< int (*)(CXTargetInfoImpl *) , clang_TargetInfo_getPointerWidth , SimNode_ExtFuncCall >(lib,"clang_TargetInfo_getPointerWidth","clang_TargetInfo_getPointerWidth") - ->args({"Info"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2122:25 - makeExtern< CXCursor (*)() , clang_getNullCursor , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getNullCursor","clang_getNullCursor") - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_5.cpp b/modules/dasClangBind/src/dasClangBind.func_5.cpp index ac4ed149ff..8168e887b7 100644 --- a/modules/dasClangBind/src/dasClangBind.func_5.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_5.cpp @@ -12,86 +12,85 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_5() { -// from clang-c/Index.h:2130:25 +// from clang-c/Index.h:1177:20 + makeExtern< int (*)(CXTargetInfoImpl *) , clang_TargetInfo_getPointerWidth , SimNode_ExtFuncCall >(lib,"clang_TargetInfo_getPointerWidth","clang_TargetInfo_getPointerWidth") + ->args({"Info"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:2356:25 + makeExtern< CXCursor (*)() , clang_getNullCursor , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getNullCursor","clang_getNullCursor") + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:2364:25 makeExtern< CXCursor (*)(CXTranslationUnitImpl *) , clang_getTranslationUnitCursor , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTranslationUnitCursor","clang_getTranslationUnitCursor") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2135:25 +// from clang-c/Index.h:2369:25 makeExtern< unsigned int (*)(CXCursor,CXCursor) , clang_equalCursors , SimNode_ExtFuncCall >(lib,"clang_equalCursors","clang_equalCursors") ->args({"",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2140:20 +// from clang-c/Index.h:2374:20 makeExtern< int (*)(CXCursor) , clang_Cursor_isNull , SimNode_ExtFuncCall >(lib,"clang_Cursor_isNull","clang_Cursor_isNull") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2145:25 +// from clang-c/Index.h:2379:25 makeExtern< unsigned int (*)(CXCursor) , clang_hashCursor , SimNode_ExtFuncCall >(lib,"clang_hashCursor","clang_hashCursor") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2150:34 +// from clang-c/Index.h:2384:34 makeExtern< CXCursorKind (*)(CXCursor) , clang_getCursorKind , SimNode_ExtFuncCall >(lib,"clang_getCursorKind","clang_getCursorKind") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2155:25 +// from clang-c/Index.h:2389:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isDeclaration , SimNode_ExtFuncCall >(lib,"clang_isDeclaration","clang_isDeclaration") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2165:25 +// from clang-c/Index.h:2399:25 makeExtern< unsigned int (*)(CXCursor) , clang_isInvalidDeclaration , SimNode_ExtFuncCall >(lib,"clang_isInvalidDeclaration","clang_isInvalidDeclaration") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2175:25 +// from clang-c/Index.h:2409:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isReference , SimNode_ExtFuncCall >(lib,"clang_isReference","clang_isReference") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2180:25 +// from clang-c/Index.h:2414:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isExpression , SimNode_ExtFuncCall >(lib,"clang_isExpression","clang_isExpression") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2185:25 +// from clang-c/Index.h:2419:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isStatement , SimNode_ExtFuncCall >(lib,"clang_isStatement","clang_isStatement") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2190:25 +// from clang-c/Index.h:2424:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isAttribute , SimNode_ExtFuncCall >(lib,"clang_isAttribute","clang_isAttribute") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2195:25 +// from clang-c/Index.h:2429:25 makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_hasAttrs , SimNode_ExtFuncCall >(lib,"clang_Cursor_hasAttrs","clang_Cursor_hasAttrs") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2201:25 +// from clang-c/Index.h:2435:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isInvalid , SimNode_ExtFuncCall >(lib,"clang_isInvalid","clang_isInvalid") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2207:25 +// from clang-c/Index.h:2441:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_isTranslationUnit","clang_isTranslationUnit") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2213:25 +// from clang-c/Index.h:2447:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isPreprocessing , SimNode_ExtFuncCall >(lib,"clang_isPreprocessing","clang_isPreprocessing") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2219:25 +// from clang-c/Index.h:2453:25 makeExtern< unsigned int (*)(CXCursorKind) , clang_isUnexposed , SimNode_ExtFuncCall >(lib,"clang_isUnexposed","clang_isUnexposed") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2245:35 +// from clang-c/Index.h:2479:35 makeExtern< CXLinkageKind (*)(CXCursor) , clang_getCursorLinkage , SimNode_ExtFuncCall >(lib,"clang_getCursorLinkage","clang_getCursorLinkage") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2271:38 +// from clang-c/Index.h:2505:38 makeExtern< CXVisibilityKind (*)(CXCursor) , clang_getCursorVisibility , SimNode_ExtFuncCall >(lib,"clang_getCursorVisibility","clang_getCursorVisibility") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2282:1 - makeExtern< CXAvailabilityKind (*)(CXCursor) , clang_getCursorAvailability , SimNode_ExtFuncCall >(lib,"clang_getCursorAvailability","clang_getCursorAvailability") - ->args({"cursor"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2357:20 - makeExtern< int (*)(CXCursor,int *,CXString *,int *,CXString *,CXPlatformAvailability *,int) , clang_getCursorPlatformAvailability , SimNode_ExtFuncCall >(lib,"clang_getCursorPlatformAvailability","clang_getCursorPlatformAvailability") - ->args({"cursor","always_deprecated","deprecated_message","always_unavailable","unavailable_message","availability","availability_size"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_6.cpp b/modules/dasClangBind/src/dasClangBind.func_6.cpp index c93e77f8a6..34657f4eaa 100644 --- a/modules/dasClangBind/src/dasClangBind.func_6.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_6.cpp @@ -12,85 +12,85 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_6() { -// from clang-c/Index.h:2366:1 +// from clang-c/Index.h:2516:1 + makeExtern< CXAvailabilityKind (*)(CXCursor) , clang_getCursorAvailability , SimNode_ExtFuncCall >(lib,"clang_getCursorAvailability","clang_getCursorAvailability") + ->args({"cursor"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:2591:20 + makeExtern< int (*)(CXCursor,int *,CXString *,int *,CXString *,CXPlatformAvailability *,int) , clang_getCursorPlatformAvailability , SimNode_ExtFuncCall >(lib,"clang_getCursorPlatformAvailability","clang_getCursorPlatformAvailability") + ->args({"cursor","always_deprecated","deprecated_message","always_unavailable","unavailable_message","availability","availability_size"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:2600:1 makeExtern< void (*)(CXPlatformAvailability *) , clang_disposeCXPlatformAvailability , SimNode_ExtFuncCall >(lib,"clang_disposeCXPlatformAvailability","clang_disposeCXPlatformAvailability") ->args({"availability"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2372:25 +// from clang-c/Index.h:2606:25 makeExtern< CXCursor (*)(CXCursor) , clang_Cursor_getVarDeclInitializer , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getVarDeclInitializer","clang_Cursor_getVarDeclInitializer") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2379:20 +// from clang-c/Index.h:2613:20 makeExtern< int (*)(CXCursor) , clang_Cursor_hasVarDeclGlobalStorage , SimNode_ExtFuncCall >(lib,"clang_Cursor_hasVarDeclGlobalStorage","clang_Cursor_hasVarDeclGlobalStorage") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2386:20 +// from clang-c/Index.h:2620:20 makeExtern< int (*)(CXCursor) , clang_Cursor_hasVarDeclExternalStorage , SimNode_ExtFuncCall >(lib,"clang_Cursor_hasVarDeclExternalStorage","clang_Cursor_hasVarDeclExternalStorage") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2401:36 +// from clang-c/Index.h:2635:36 makeExtern< CXLanguageKind (*)(CXCursor) , clang_getCursorLanguage , SimNode_ExtFuncCall >(lib,"clang_getCursorLanguage","clang_getCursorLanguage") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2413:31 +// from clang-c/Index.h:2647:31 makeExtern< CXTLSKind (*)(CXCursor) , clang_getCursorTLSKind , SimNode_ExtFuncCall >(lib,"clang_getCursorTLSKind","clang_getCursorTLSKind") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2418:34 +// from clang-c/Index.h:2652:34 makeExtern< CXTranslationUnitImpl * (*)(CXCursor) , clang_Cursor_getTranslationUnit , SimNode_ExtFuncCall >(lib,"clang_Cursor_getTranslationUnit","clang_Cursor_getTranslationUnit") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2428:28 +// from clang-c/Index.h:2662:28 makeExtern< CXCursorSetImpl * (*)() , clang_createCXCursorSet , SimNode_ExtFuncCall >(lib,"clang_createCXCursorSet","clang_createCXCursorSet") ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2433:21 +// from clang-c/Index.h:2667:21 makeExtern< void (*)(CXCursorSetImpl *) , clang_disposeCXCursorSet , SimNode_ExtFuncCall >(lib,"clang_disposeCXCursorSet","clang_disposeCXCursorSet") ->args({"cset"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2440:25 +// from clang-c/Index.h:2674:25 makeExtern< unsigned int (*)(CXCursorSetImpl *,CXCursor) , clang_CXCursorSet_contains , SimNode_ExtFuncCall >(lib,"clang_CXCursorSet_contains","clang_CXCursorSet_contains") ->args({"cset","cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2448:25 +// from clang-c/Index.h:2682:25 makeExtern< unsigned int (*)(CXCursorSetImpl *,CXCursor) , clang_CXCursorSet_insert , SimNode_ExtFuncCall >(lib,"clang_CXCursorSet_insert","clang_CXCursorSet_insert") ->args({"cset","cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2484:25 +// from clang-c/Index.h:2718:25 makeExtern< CXCursor (*)(CXCursor) , clang_getCursorSemanticParent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorSemanticParent","clang_getCursorSemanticParent") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2520:25 +// from clang-c/Index.h:2754:25 makeExtern< CXCursor (*)(CXCursor) , clang_getCursorLexicalParent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorLexicalParent","clang_getCursorLexicalParent") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2565:21 +// from clang-c/Index.h:2799:21 makeExtern< void (*)(CXCursor,CXCursor **,unsigned int *) , clang_getOverriddenCursors , SimNode_ExtFuncCall >(lib,"clang_getOverriddenCursors","clang_getOverriddenCursors") ->args({"cursor","overridden","num_overridden"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2573:21 +// from clang-c/Index.h:2807:21 makeExtern< void (*)(CXCursor *) , clang_disposeOverriddenCursors , SimNode_ExtFuncCall >(lib,"clang_disposeOverriddenCursors","clang_disposeOverriddenCursors") ->args({"overridden"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2579:23 +// from clang-c/Index.h:2813:23 makeExtern< void * (*)(CXCursor) , clang_getIncludedFile , SimNode_ExtFuncCall >(lib,"clang_getIncludedFile","clang_getIncludedFile") ->args({"cursor"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2611:25 +// from clang-c/Index.h:2845:25 makeExtern< CXCursor (*)(CXTranslationUnitImpl *,CXSourceLocation) , clang_getCursor , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursor","clang_getCursor") ->args({"",""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2623:33 +// from clang-c/Index.h:2857:33 makeExtern< CXSourceLocation (*)(CXCursor) , clang_getCursorLocation , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorLocation","clang_getCursorLocation") ->args({""}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2636:30 - makeExtern< CXSourceRange (*)(CXCursor) , clang_getCursorExtent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorExtent","clang_getCursorExtent") - ->args({""}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2843:23 - makeExtern< CXType (*)(CXCursor) , clang_getCursorType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorType","clang_getCursorType") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_7.cpp b/modules/dasClangBind/src/dasClangBind.func_7.cpp index 513b359b15..10e3bceda5 100644 --- a/modules/dasClangBind/src/dasClangBind.func_7.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_7.cpp @@ -12,86 +12,86 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_7() { -// from clang-c/Index.h:2851:25 +// from clang-c/Index.h:2870:30 + makeExtern< CXSourceRange (*)(CXCursor) , clang_getCursorExtent , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorExtent","clang_getCursorExtent") + ->args({""}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3102:23 + makeExtern< CXType (*)(CXCursor) , clang_getCursorType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorType","clang_getCursorType") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3110:25 makeExtern< CXString (*)(CXType) , clang_getTypeSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTypeSpelling","clang_getTypeSpelling") ->args({"CT"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2859:23 +// from clang-c/Index.h:3118:23 makeExtern< CXType (*)(CXCursor) , clang_getTypedefDeclUnderlyingType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTypedefDeclUnderlyingType","clang_getTypedefDeclUnderlyingType") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2867:23 +// from clang-c/Index.h:3126:23 makeExtern< CXType (*)(CXCursor) , clang_getEnumDeclIntegerType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getEnumDeclIntegerType","clang_getEnumDeclIntegerType") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2877:26 +// from clang-c/Index.h:3136:26 makeExtern< long long (*)(CXCursor) , clang_getEnumConstantDeclValue , SimNode_ExtFuncCall >(lib,"clang_getEnumConstantDeclValue","clang_getEnumConstantDeclValue") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2888:1 +// from clang-c/Index.h:3147:1 makeExtern< unsigned long long (*)(CXCursor) , clang_getEnumConstantDeclUnsignedValue , SimNode_ExtFuncCall >(lib,"clang_getEnumConstantDeclUnsignedValue","clang_getEnumConstantDeclUnsignedValue") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2895:20 +// from clang-c/Index.h:3152:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isBitField , SimNode_ExtFuncCall >(lib,"clang_Cursor_isBitField","clang_Cursor_isBitField") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3170:20 makeExtern< int (*)(CXCursor) , clang_getFieldDeclBitWidth , SimNode_ExtFuncCall >(lib,"clang_getFieldDeclBitWidth","clang_getFieldDeclBitWidth") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2904:20 +// from clang-c/Index.h:3179:20 makeExtern< int (*)(CXCursor) , clang_Cursor_getNumArguments , SimNode_ExtFuncCall >(lib,"clang_Cursor_getNumArguments","clang_Cursor_getNumArguments") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2913:25 +// from clang-c/Index.h:3188:25 makeExtern< CXCursor (*)(CXCursor,unsigned int) , clang_Cursor_getArgument , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getArgument","clang_Cursor_getArgument") ->args({"C","i"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2951:20 +// from clang-c/Index.h:3226:20 makeExtern< int (*)(CXCursor) , clang_Cursor_getNumTemplateArguments , SimNode_ExtFuncCall >(lib,"clang_Cursor_getNumTemplateArguments","clang_Cursor_getNumTemplateArguments") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2971:1 +// from clang-c/Index.h:3246:1 makeExtern< CXTemplateArgumentKind (*)(CXCursor,unsigned int) , clang_Cursor_getTemplateArgumentKind , SimNode_ExtFuncCall >(lib,"clang_Cursor_getTemplateArgumentKind","clang_Cursor_getTemplateArgumentKind") ->args({"C","I"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:2991:23 +// from clang-c/Index.h:3266:23 makeExtern< CXType (*)(CXCursor,unsigned int) , clang_Cursor_getTemplateArgumentType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Cursor_getTemplateArgumentType","clang_Cursor_getTemplateArgumentType") ->args({"C","I"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3012:26 +// from clang-c/Index.h:3287:26 makeExtern< long long (*)(CXCursor,unsigned int) , clang_Cursor_getTemplateArgumentValue , SimNode_ExtFuncCall >(lib,"clang_Cursor_getTemplateArgumentValue","clang_Cursor_getTemplateArgumentValue") ->args({"C","I"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3034:1 +// from clang-c/Index.h:3309:1 makeExtern< unsigned long long (*)(CXCursor,unsigned int) , clang_Cursor_getTemplateArgumentUnsignedValue , SimNode_ExtFuncCall >(lib,"clang_Cursor_getTemplateArgumentUnsignedValue","clang_Cursor_getTemplateArgumentUnsignedValue") ->args({"C","I"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3042:25 +// from clang-c/Index.h:3317:25 makeExtern< unsigned int (*)(CXType,CXType) , clang_equalTypes , SimNode_ExtFuncCall >(lib,"clang_equalTypes","clang_equalTypes") ->args({"A","B"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3052:23 +// from clang-c/Index.h:3327:23 makeExtern< CXType (*)(CXType) , clang_getCanonicalType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCanonicalType","clang_getCanonicalType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3059:25 +// from clang-c/Index.h:3334:25 makeExtern< unsigned int (*)(CXType) , clang_isConstQualifiedType , SimNode_ExtFuncCall >(lib,"clang_isConstQualifiedType","clang_isConstQualifiedType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3065:25 +// from clang-c/Index.h:3340:25 makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isMacroFunctionLike , SimNode_ExtFuncCall >(lib,"clang_Cursor_isMacroFunctionLike","clang_Cursor_isMacroFunctionLike") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3071:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isMacroBuiltin , SimNode_ExtFuncCall >(lib,"clang_Cursor_isMacroBuiltin","clang_Cursor_isMacroBuiltin") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3077:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isFunctionInlined , SimNode_ExtFuncCall >(lib,"clang_Cursor_isFunctionInlined","clang_Cursor_isFunctionInlined") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3084:25 - makeExtern< unsigned int (*)(CXType) , clang_isVolatileQualifiedType , SimNode_ExtFuncCall >(lib,"clang_isVolatileQualifiedType","clang_isVolatileQualifiedType") - ->args({"T"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_8.cpp b/modules/dasClangBind/src/dasClangBind.func_8.cpp index d04dedc6b4..f3c24cfa2c 100644 --- a/modules/dasClangBind/src/dasClangBind.func_8.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_8.cpp @@ -12,86 +12,86 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_8() { -// from clang-c/Index.h:3091:25 +// from clang-c/Index.h:3346:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isMacroBuiltin , SimNode_ExtFuncCall >(lib,"clang_Cursor_isMacroBuiltin","clang_Cursor_isMacroBuiltin") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3352:25 + makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isFunctionInlined , SimNode_ExtFuncCall >(lib,"clang_Cursor_isFunctionInlined","clang_Cursor_isFunctionInlined") + ->args({"C"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3359:25 + makeExtern< unsigned int (*)(CXType) , clang_isVolatileQualifiedType , SimNode_ExtFuncCall >(lib,"clang_isVolatileQualifiedType","clang_isVolatileQualifiedType") + ->args({"T"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3366:25 makeExtern< unsigned int (*)(CXType) , clang_isRestrictQualifiedType , SimNode_ExtFuncCall >(lib,"clang_isRestrictQualifiedType","clang_isRestrictQualifiedType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3096:25 +// from clang-c/Index.h:3371:25 makeExtern< unsigned int (*)(CXType) , clang_getAddressSpace , SimNode_ExtFuncCall >(lib,"clang_getAddressSpace","clang_getAddressSpace") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3101:25 +// from clang-c/Index.h:3376:25 makeExtern< CXString (*)(CXType) , clang_getTypedefName , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTypedefName","clang_getTypedefName") ->args({"CT"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3106:23 +// from clang-c/Index.h:3381:23 makeExtern< CXType (*)(CXType) , clang_getPointeeType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getPointeeType","clang_getPointeeType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3143:23 +// from clang-c/Index.h:3418:23 makeExtern< CXType (*)(CXType) , clang_getUnqualifiedType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getUnqualifiedType","clang_getUnqualifiedType") ->args({"CT"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3154:23 +// from clang-c/Index.h:3429:23 makeExtern< CXType (*)(CXType) , clang_getNonReferenceType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getNonReferenceType","clang_getNonReferenceType") ->args({"CT"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3159:25 +// from clang-c/Index.h:3434:25 makeExtern< CXCursor (*)(CXType) , clang_getTypeDeclaration , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTypeDeclaration","clang_getTypeDeclaration") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3164:25 +// from clang-c/Index.h:3439:25 makeExtern< CXString (*)(CXCursor) , clang_getDeclObjCTypeEncoding , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getDeclObjCTypeEncoding","clang_getDeclObjCTypeEncoding") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3169:25 +// from clang-c/Index.h:3444:25 makeExtern< CXString (*)(CXType) , clang_Type_getObjCEncoding , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getObjCEncoding","clang_Type_getObjCEncoding") ->args({"type"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3174:25 +// from clang-c/Index.h:3449:25 makeExtern< CXString (*)(CXTypeKind) , clang_getTypeKindSpelling , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getTypeKindSpelling","clang_getTypeKindSpelling") ->args({"K"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3181:35 +// from clang-c/Index.h:3456:35 makeExtern< CXCallingConv (*)(CXType) , clang_getFunctionTypeCallingConv , SimNode_ExtFuncCall >(lib,"clang_getFunctionTypeCallingConv","clang_getFunctionTypeCallingConv") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3188:23 +// from clang-c/Index.h:3463:23 makeExtern< CXType (*)(CXType) , clang_getResultType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getResultType","clang_getResultType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3196:20 +// from clang-c/Index.h:3471:20 makeExtern< int (*)(CXType) , clang_getExceptionSpecificationType , SimNode_ExtFuncCall >(lib,"clang_getExceptionSpecificationType","clang_getExceptionSpecificationType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3204:20 +// from clang-c/Index.h:3479:20 makeExtern< int (*)(CXType) , clang_getNumArgTypes , SimNode_ExtFuncCall >(lib,"clang_getNumArgTypes","clang_getNumArgTypes") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3212:23 +// from clang-c/Index.h:3487:23 makeExtern< CXType (*)(CXType,unsigned int) , clang_getArgType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getArgType","clang_getArgType") ->args({"T","i"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3219:23 +// from clang-c/Index.h:3494:23 makeExtern< CXType (*)(CXType) , clang_Type_getObjCObjectBaseType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getObjCObjectBaseType","clang_Type_getObjCObjectBaseType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3226:25 +// from clang-c/Index.h:3501:25 makeExtern< unsigned int (*)(CXType) , clang_Type_getNumObjCProtocolRefs , SimNode_ExtFuncCall >(lib,"clang_Type_getNumObjCProtocolRefs","clang_Type_getNumObjCProtocolRefs") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3234:25 - makeExtern< CXCursor (*)(CXType,unsigned int) , clang_Type_getObjCProtocolDecl , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getObjCProtocolDecl","clang_Type_getObjCProtocolDecl") - ->args({"T","i"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3241:25 - makeExtern< unsigned int (*)(CXType) , clang_Type_getNumObjCTypeArgs , SimNode_ExtFuncCall >(lib,"clang_Type_getNumObjCTypeArgs","clang_Type_getNumObjCTypeArgs") - ->args({"T"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3249:23 - makeExtern< CXType (*)(CXType,unsigned int) , clang_Type_getObjCTypeArg , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getObjCTypeArg","clang_Type_getObjCTypeArg") - ->args({"T","i"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.func_9.cpp b/modules/dasClangBind/src/dasClangBind.func_9.cpp index 6e5913cabd..14e4e21b52 100644 --- a/modules/dasClangBind/src/dasClangBind.func_9.cpp +++ b/modules/dasClangBind/src/dasClangBind.func_9.cpp @@ -12,86 +12,86 @@ namespace das { #include "dasClangBind.func.aot.decl.inc" void Module_dasClangBind::initFunctions_9() { -// from clang-c/Index.h:3254:25 +// from clang-c/Index.h:3509:25 + makeExtern< CXCursor (*)(CXType,unsigned int) , clang_Type_getObjCProtocolDecl , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getObjCProtocolDecl","clang_Type_getObjCProtocolDecl") + ->args({"T","i"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3516:25 + makeExtern< unsigned int (*)(CXType) , clang_Type_getNumObjCTypeArgs , SimNode_ExtFuncCall >(lib,"clang_Type_getNumObjCTypeArgs","clang_Type_getNumObjCTypeArgs") + ->args({"T"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3524:23 + makeExtern< CXType (*)(CXType,unsigned int) , clang_Type_getObjCTypeArg , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getObjCTypeArg","clang_Type_getObjCTypeArg") + ->args({"T","i"}) + ->addToModule(*this, SideEffects::worstDefault); +// from clang-c/Index.h:3529:25 makeExtern< unsigned int (*)(CXType) , clang_isFunctionTypeVariadic , SimNode_ExtFuncCall >(lib,"clang_isFunctionTypeVariadic","clang_isFunctionTypeVariadic") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3261:23 +// from clang-c/Index.h:3536:23 makeExtern< CXType (*)(CXCursor) , clang_getCursorResultType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getCursorResultType","clang_getCursorResultType") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3270:20 +// from clang-c/Index.h:3545:20 makeExtern< int (*)(CXCursor) , clang_getCursorExceptionSpecificationType , SimNode_ExtFuncCall >(lib,"clang_getCursorExceptionSpecificationType","clang_getCursorExceptionSpecificationType") ->args({"C"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3276:25 +// from clang-c/Index.h:3551:25 makeExtern< unsigned int (*)(CXType) , clang_isPODType , SimNode_ExtFuncCall >(lib,"clang_isPODType","clang_isPODType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3284:23 +// from clang-c/Index.h:3559:23 makeExtern< CXType (*)(CXType) , clang_getElementType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getElementType","clang_getElementType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3292:26 +// from clang-c/Index.h:3567:26 makeExtern< long long (*)(CXType) , clang_getNumElements , SimNode_ExtFuncCall >(lib,"clang_getNumElements","clang_getNumElements") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3299:23 +// from clang-c/Index.h:3574:23 makeExtern< CXType (*)(CXType) , clang_getArrayElementType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_getArrayElementType","clang_getArrayElementType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3306:26 +// from clang-c/Index.h:3581:26 makeExtern< long long (*)(CXType) , clang_getArraySize , SimNode_ExtFuncCall >(lib,"clang_getArraySize","clang_getArraySize") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3313:23 +// from clang-c/Index.h:3588:23 makeExtern< CXType (*)(CXType) , clang_Type_getNamedType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getNamedType","clang_Type_getNamedType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3323:25 +// from clang-c/Index.h:3598:25 makeExtern< unsigned int (*)(CXType) , clang_Type_isTransparentTagTypedef , SimNode_ExtFuncCall >(lib,"clang_Type_isTransparentTagTypedef","clang_Type_isTransparentTagTypedef") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3358:43 +// from clang-c/Index.h:3633:43 makeExtern< CXTypeNullabilityKind (*)(CXType) , clang_Type_getNullability , SimNode_ExtFuncCall >(lib,"clang_Type_getNullability","clang_Type_getNullability") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3407:26 +// from clang-c/Index.h:3682:26 makeExtern< long long (*)(CXType) , clang_Type_getAlignOf , SimNode_ExtFuncCall >(lib,"clang_Type_getAlignOf","clang_Type_getAlignOf") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3414:23 +// from clang-c/Index.h:3689:23 makeExtern< CXType (*)(CXType) , clang_Type_getClassType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getClassType","clang_Type_getClassType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3425:26 +// from clang-c/Index.h:3700:26 makeExtern< long long (*)(CXType) , clang_Type_getSizeOf , SimNode_ExtFuncCall >(lib,"clang_Type_getSizeOf","clang_Type_getSizeOf") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3440:26 +// from clang-c/Index.h:3715:26 makeExtern< long long (*)(CXType,const char *) , clang_Type_getOffsetOf , SimNode_ExtFuncCall >(lib,"clang_Type_getOffsetOf","clang_Type_getOffsetOf") ->args({"T","S"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3447:23 +// from clang-c/Index.h:3722:23 makeExtern< CXType (*)(CXType) , clang_Type_getModifiedType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getModifiedType","clang_Type_getModifiedType") ->args({"T"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3454:23 +// from clang-c/Index.h:3729:23 makeExtern< CXType (*)(CXType) , clang_Type_getValueType , SimNode_ExtFuncCallAndCopyOrMove >(lib,"clang_Type_getValueType","clang_Type_getValueType") ->args({"CT"}) ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3469:26 - makeExtern< long long (*)(CXCursor) , clang_Cursor_getOffsetOfField , SimNode_ExtFuncCall >(lib,"clang_Cursor_getOffsetOfField","clang_Cursor_getOffsetOfField") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3475:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isAnonymous , SimNode_ExtFuncCall >(lib,"clang_Cursor_isAnonymous","clang_Cursor_isAnonymous") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); -// from clang-c/Index.h:3481:25 - makeExtern< unsigned int (*)(CXCursor) , clang_Cursor_isAnonymousRecordDecl , SimNode_ExtFuncCall >(lib,"clang_Cursor_isAnonymousRecordDecl","clang_Cursor_isAnonymousRecordDecl") - ->args({"C"}) - ->addToModule(*this, SideEffects::worstDefault); } } diff --git a/modules/dasClangBind/src/dasClangBind.struct.add.inc b/modules/dasClangBind/src/dasClangBind.struct.add.inc index e524154b9f..4485eefd10 100644 --- a/modules/dasClangBind/src/dasClangBind.struct.add.inc +++ b/modules/dasClangBind/src/dasClangBind.struct.add.inc @@ -17,6 +17,8 @@ auto ann_CXUnsavedFile = new CXUnsavedFile_GeneratedAnnotation(lib); addAnnotation(ann_CXUnsavedFile); auto ann_CXVersion = new CXVersion_GeneratedAnnotation(lib); addAnnotation(ann_CXVersion); +auto ann_CXIndexOptions = new CXIndexOptions_GeneratedAnnotation(lib); +addAnnotation(ann_CXIndexOptions); auto ann_CXTUResourceUsageEntry = new CXTUResourceUsageEntry_GeneratedAnnotation(lib); addAnnotation(ann_CXTUResourceUsageEntry); auto ann_CXTUResourceUsage = new CXTUResourceUsage_GeneratedAnnotation(lib); diff --git a/modules/dasClangBind/src/dasClangBind.struct.cast.inc b/modules/dasClangBind/src/dasClangBind.struct.cast.inc index c76f5448e9..0f39afaa05 100644 --- a/modules/dasClangBind/src/dasClangBind.struct.cast.inc +++ b/modules/dasClangBind/src/dasClangBind.struct.cast.inc @@ -49,6 +49,12 @@ template <> struct cast_arg { return * cast::to(res); } }; +template <> struct cast_arg { + static __forceinline const CXIndexOptions & to ( Context & ctx, SimNode * node ) { + vec4f res = node->eval(ctx); + return * cast::to(res); + } +}; template <> struct cast_arg { static __forceinline const CXTUResourceUsageEntry & to ( Context & ctx, SimNode * node ) { vec4f res = node->eval(ctx); diff --git a/modules/dasClangBind/src/dasClangBind.struct.class.inc b/modules/dasClangBind/src/dasClangBind.struct.class.inc index 77f07f05dc..bdc779fe8c 100644 --- a/modules/dasClangBind/src/dasClangBind.struct.class.inc +++ b/modules/dasClangBind/src/dasClangBind.struct.class.inc @@ -51,7 +51,7 @@ struct CXSourceRange_GeneratedAnnotation : ManagedStructureAnnotation { CXSourceRangeList_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXSourceRangeList", ml, "CXSourceRangeList") { } @@ -61,7 +61,7 @@ struct CXSourceRangeList_GeneratedAnnotation : ManagedStructureAnnotation { CXUnsavedFile_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXUnsavedFile", ml, "CXUnsavedFile") { } @@ -72,7 +72,7 @@ struct CXUnsavedFile_GeneratedAnnotation : ManagedStructureAnnotation { CXVersion_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXVersion", ml, "CXVersion") { } @@ -83,7 +83,20 @@ struct CXVersion_GeneratedAnnotation : ManagedStructureAnnotation { } }; -// from clang-c/Index.h:971:16 +// from clang-c/Index.h:353:16 +struct CXIndexOptions_GeneratedAnnotation : ManagedStructureAnnotation { + CXIndexOptions_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIndexOptions", ml, "CXIndexOptions") { + } + void init () { + addField("Size","Size"); + addField("ThreadBackgroundPriorityForIndexing","ThreadBackgroundPriorityForIndexing"); + addField("ThreadBackgroundPriorityForEditing","ThreadBackgroundPriorityForEditing"); + addField("PreambleStoragePath","PreambleStoragePath"); + addField("InvocationEmissionPath","InvocationEmissionPath"); + } +}; + +// from clang-c/Index.h:1119:16 struct CXTUResourceUsageEntry_GeneratedAnnotation : ManagedStructureAnnotation { CXTUResourceUsageEntry_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXTUResourceUsageEntry", ml, "CXTUResourceUsageEntry") { } @@ -93,7 +106,7 @@ struct CXTUResourceUsageEntry_GeneratedAnnotation : ManagedStructureAnnotation { CXTUResourceUsage_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXTUResourceUsage", ml, "CXTUResourceUsage") { } @@ -104,7 +117,7 @@ struct CXTUResourceUsage_GeneratedAnnotation : ManagedStructureAnnotation { CXCursor_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXCursor", ml, "CXCursor") { } @@ -115,7 +128,7 @@ struct CXCursor_GeneratedAnnotation : ManagedStructureAnnotation { } }; -// from clang-c/Index.h:2288:16 +// from clang-c/Index.h:2522:16 struct CXPlatformAvailability_GeneratedAnnotation : ManagedStructureAnnotation { CXPlatformAvailability_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXPlatformAvailability", ml, "CXPlatformAvailability") { } @@ -129,7 +142,7 @@ struct CXPlatformAvailability_GeneratedAnnotation : ManagedStructureAnnotation { CXType_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXType", ml, "CXType") { } @@ -139,7 +152,7 @@ struct CXType_GeneratedAnnotation : ManagedStructureAnnotation { } }; -// from clang-c/Index.h:4506:9 +// from clang-c/Index.h:5029:9 struct CXToken_GeneratedAnnotation : ManagedStructureAnnotation { CXToken_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXToken", ml, "CXToken") { } @@ -149,7 +162,7 @@ struct CXToken_GeneratedAnnotation : ManagedStructureAnnotation { } }; -// from clang-c/Index.h:4664:9 +// from clang-c/Index.h:5187:9 struct CXCompletionResult_GeneratedAnnotation : ManagedStructureAnnotation { CXCompletionResult_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXCompletionResult", ml, "CXCompletionResult") { } @@ -159,7 +172,7 @@ struct CXCompletionResult_GeneratedAnnotation : ManagedStructureAnnotation { CXCodeCompleteResults_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXCodeCompleteResults", ml, "CXCodeCompleteResults") { } @@ -169,7 +182,7 @@ struct CXCodeCompleteResults_GeneratedAnnotation : ManagedStructureAnnotation { CXCursorAndRangeVisitor_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXCursorAndRangeVisitor", ml, "CXCursorAndRangeVisitor") { } @@ -178,7 +191,7 @@ struct CXCursorAndRangeVisitor_GeneratedAnnotation : ManagedStructureAnnotation< } }; -// from clang-c/Index.h:5720:9 +// from clang-c/Index.h:6181:9 struct CXIdxLoc_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxLoc_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxLoc", ml, "CXIdxLoc") { } @@ -188,7 +201,7 @@ struct CXIdxLoc_GeneratedAnnotation : ManagedStructureAnnotation { } }; -// from clang-c/Index.h:5728:9 +// from clang-c/Index.h:6189:9 struct CXIdxIncludedFileInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxIncludedFileInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxIncludedFileInfo", ml, "CXIdxIncludedFileInfo") { } @@ -202,7 +215,7 @@ struct CXIdxIncludedFileInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxImportedASTFileInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxImportedASTFileInfo", ml, "CXIdxImportedASTFileInfo") { } @@ -214,7 +227,7 @@ struct CXIdxImportedASTFileInfo_GeneratedAnnotation : ManagedStructureAnnotation } }; -// from clang-c/Index.h:5842:9 +// from clang-c/Index.h:6303:9 struct CXIdxAttrInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxAttrInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxAttrInfo", ml, "CXIdxAttrInfo") { } @@ -225,7 +238,7 @@ struct CXIdxAttrInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxEntityInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxEntityInfo", ml, "CXIdxEntityInfo") { } @@ -241,7 +254,7 @@ struct CXIdxEntityInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxContainerInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxContainerInfo", ml, "CXIdxContainerInfo") { } @@ -250,7 +263,7 @@ struct CXIdxContainerInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxIBOutletCollectionAttrInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxIBOutletCollectionAttrInfo", ml, "CXIdxIBOutletCollectionAttrInfo") { } @@ -262,7 +275,7 @@ struct CXIdxIBOutletCollectionAttrInfo_GeneratedAnnotation : ManagedStructureAnn } }; -// from clang-c/Index.h:5872:9 +// from clang-c/Index.h:6333:9 struct CXIdxDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxDeclInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxDeclInfo", ml, "CXIdxDeclInfo") { } @@ -283,7 +296,7 @@ struct CXIdxDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxObjCContainerDeclInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxObjCContainerDeclInfo", ml, "CXIdxObjCContainerDeclInfo") { } @@ -293,7 +306,7 @@ struct CXIdxObjCContainerDeclInfo_GeneratedAnnotation : ManagedStructureAnnotati } }; -// from clang-c/Index.h:5909:9 +// from clang-c/Index.h:6370:9 struct CXIdxBaseClassInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxBaseClassInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxBaseClassInfo", ml, "CXIdxBaseClassInfo") { } @@ -304,7 +317,7 @@ struct CXIdxBaseClassInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxObjCProtocolRefInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxObjCProtocolRefInfo", ml, "CXIdxObjCProtocolRefInfo") { } @@ -315,7 +328,7 @@ struct CXIdxObjCProtocolRefInfo_GeneratedAnnotation : ManagedStructureAnnotation } }; -// from clang-c/Index.h:5921:9 +// from clang-c/Index.h:6382:9 struct CXIdxObjCProtocolRefListInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxObjCProtocolRefListInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxObjCProtocolRefListInfo", ml, "CXIdxObjCProtocolRefListInfo") { } @@ -325,7 +338,7 @@ struct CXIdxObjCProtocolRefListInfo_GeneratedAnnotation : ManagedStructureAnnota } }; -// from clang-c/Index.h:5926:9 +// from clang-c/Index.h:6387:9 struct CXIdxObjCInterfaceDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxObjCInterfaceDeclInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxObjCInterfaceDeclInfo", ml, "CXIdxObjCInterfaceDeclInfo") { } @@ -336,7 +349,7 @@ struct CXIdxObjCInterfaceDeclInfo_GeneratedAnnotation : ManagedStructureAnnotati } }; -// from clang-c/Index.h:5932:9 +// from clang-c/Index.h:6393:9 struct CXIdxObjCCategoryDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxObjCCategoryDeclInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxObjCCategoryDeclInfo", ml, "CXIdxObjCCategoryDeclInfo") { } @@ -349,7 +362,7 @@ struct CXIdxObjCCategoryDeclInfo_GeneratedAnnotation : ManagedStructureAnnotatio } }; -// from clang-c/Index.h:5940:9 +// from clang-c/Index.h:6401:9 struct CXIdxObjCPropertyDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxObjCPropertyDeclInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxObjCPropertyDeclInfo", ml, "CXIdxObjCPropertyDeclInfo") { } @@ -360,7 +373,7 @@ struct CXIdxObjCPropertyDeclInfo_GeneratedAnnotation : ManagedStructureAnnotatio } }; -// from clang-c/Index.h:5946:9 +// from clang-c/Index.h:6407:9 struct CXIdxCXXClassDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxCXXClassDeclInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxCXXClassDeclInfo", ml, "CXIdxCXXClassDeclInfo") { } @@ -371,7 +384,7 @@ struct CXIdxCXXClassDeclInfo_GeneratedAnnotation : ManagedStructureAnnotation { CXIdxEntityRefInfo_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("CXIdxEntityRefInfo", ml, "CXIdxEntityRefInfo") { } @@ -386,7 +399,7 @@ struct CXIdxEntityRefInfo_GeneratedAnnotation : ManagedStructureAnnotation { IndexerCallbacks_GeneratedAnnotation(ModuleLibrary & ml) : ManagedStructureAnnotation ("IndexerCallbacks", ml, "IndexerCallbacks") { } diff --git a/modules/dasClangBind/src/dasClangBind.struct.decl.inc b/modules/dasClangBind/src/dasClangBind.struct.decl.inc index 93b410f76c..9842c875a0 100644 --- a/modules/dasClangBind/src/dasClangBind.struct.decl.inc +++ b/modules/dasClangBind/src/dasClangBind.struct.decl.inc @@ -11,16 +11,19 @@ MAKE_EXTERNAL_TYPE_FACTORY(CXTargetInfoImpl,CXTargetInfoImpl); MAKE_EXTERNAL_TYPE_FACTORY(CXTranslationUnitImpl,CXTranslationUnitImpl); MAKE_EXTERNAL_TYPE_FACTORY(CXUnsavedFile,CXUnsavedFile); MAKE_EXTERNAL_TYPE_FACTORY(CXVersion,CXVersion); +MAKE_EXTERNAL_TYPE_FACTORY(CXIndexOptions,CXIndexOptions); MAKE_EXTERNAL_TYPE_FACTORY(CXTUResourceUsageEntry,CXTUResourceUsageEntry); MAKE_EXTERNAL_TYPE_FACTORY(CXTUResourceUsage,CXTUResourceUsage); MAKE_EXTERNAL_TYPE_FACTORY(CXCursor,CXCursor); MAKE_EXTERNAL_TYPE_FACTORY(CXPlatformAvailability,CXPlatformAvailability); MAKE_EXTERNAL_TYPE_FACTORY(CXCursorSetImpl,CXCursorSetImpl); MAKE_EXTERNAL_TYPE_FACTORY(CXType,CXType); +MAKE_EXTERNAL_TYPE_FACTORY(_CXChildVisitResult,_CXChildVisitResult); MAKE_EXTERNAL_TYPE_FACTORY(CXToken,CXToken); MAKE_EXTERNAL_TYPE_FACTORY(CXCompletionResult,CXCompletionResult); MAKE_EXTERNAL_TYPE_FACTORY(CXCodeCompleteResults,CXCodeCompleteResults); MAKE_EXTERNAL_TYPE_FACTORY(CXCursorAndRangeVisitor,CXCursorAndRangeVisitor); +MAKE_EXTERNAL_TYPE_FACTORY(_CXCursorAndRangeVisitorBlock,_CXCursorAndRangeVisitorBlock); MAKE_EXTERNAL_TYPE_FACTORY(CXIdxLoc,CXIdxLoc); MAKE_EXTERNAL_TYPE_FACTORY(CXIdxIncludedFileInfo,CXIdxIncludedFileInfo); MAKE_EXTERNAL_TYPE_FACTORY(CXIdxImportedASTFileInfo,CXIdxImportedASTFileInfo); diff --git a/modules/dasClangBind/src/dasClangBind.struct.impl.inc b/modules/dasClangBind/src/dasClangBind.struct.impl.inc index 73b17408de..92185fae6d 100644 --- a/modules/dasClangBind/src/dasClangBind.struct.impl.inc +++ b/modules/dasClangBind/src/dasClangBind.struct.impl.inc @@ -11,16 +11,19 @@ IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXTargetInfoImpl,CXTargetInfoImpl); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXTranslationUnitImpl,CXTranslationUnitImpl); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXUnsavedFile,CXUnsavedFile); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXVersion,CXVersion); +IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXIndexOptions,CXIndexOptions); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXTUResourceUsageEntry,CXTUResourceUsageEntry); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXTUResourceUsage,CXTUResourceUsage); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXCursor,CXCursor); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXPlatformAvailability,CXPlatformAvailability); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXCursorSetImpl,CXCursorSetImpl); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXType,CXType); +IMPLEMENT_EXTERNAL_TYPE_FACTORY(_CXChildVisitResult,_CXChildVisitResult); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXToken,CXToken); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXCompletionResult,CXCompletionResult); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXCodeCompleteResults,CXCodeCompleteResults); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXCursorAndRangeVisitor,CXCursorAndRangeVisitor); +IMPLEMENT_EXTERNAL_TYPE_FACTORY(_CXCursorAndRangeVisitorBlock,_CXCursorAndRangeVisitorBlock); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXIdxLoc,CXIdxLoc); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXIdxIncludedFileInfo,CXIdxIncludedFileInfo); IMPLEMENT_EXTERNAL_TYPE_FACTORY(CXIdxImportedASTFileInfo,CXIdxImportedASTFileInfo); diff --git a/modules/dasClangBind/src/dasClangBind.struct.postadd.inc b/modules/dasClangBind/src/dasClangBind.struct.postadd.inc index bf4c54aa2b..163ae6ae65 100644 --- a/modules/dasClangBind/src/dasClangBind.struct.postadd.inc +++ b/modules/dasClangBind/src/dasClangBind.struct.postadd.inc @@ -9,6 +9,7 @@ initRecAnnotation(ann_CXSourceRange,lib); initRecAnnotation(ann_CXSourceRangeList,lib); initRecAnnotation(ann_CXUnsavedFile,lib); initRecAnnotation(ann_CXVersion,lib); +initRecAnnotation(ann_CXIndexOptions,lib); initRecAnnotation(ann_CXTUResourceUsageEntry,lib); initRecAnnotation(ann_CXTUResourceUsage,lib); initRecAnnotation(ann_CXCursor,lib); diff --git a/modules/dasSQLITE/daslib/sqlite_linq.das b/modules/dasSQLITE/daslib/sqlite_linq.das index 380627bc85..493c62afe5 100644 --- a/modules/dasSQLITE/daslib/sqlite_linq.das +++ b/modules/dasSQLITE/daslib/sqlite_linq.das @@ -160,6 +160,9 @@ struct private SqlQuery { orderByCols : array orderByInlineExprs : array groupByCols : array + // nolint:STYLE014 Parallel to groupByCols: null for `_.Field` keys (groupByCols holds the daslang field name quoted, emitter translates); body for computed-expression keys (groupByCols holds the rendered SQL fragment). + groupByKeyExprs : array + groupByKeyTypes : array havingSql : string havingBindExprs : array groupedSelectExprs : array @@ -189,6 +192,8 @@ struct private SqlQuery { inView : bool hadError : bool lastError : string + // nolint:STYLE014 When true, pred_to_sql's bind fallthrough inlines ExprConst* literals into the SQL string instead of pushing `?` binds — used by expression-key contexts (e.g. _group_by) where the rendered fragment is re-used in multiple SQL positions and can't carry binds. + inlineConstants : bool // Multi-Q lowering: phase-order conflict (e.g. `take(n) |> _where(p)`) snapshots // the inner subtree's SQL+binds here; outer FROM renders as `() AS t0`. innerSql : string // null/empty = base-table FROM; else nested SELECT body @@ -576,7 +581,7 @@ def private peel_column_aggregate(var node : ExpressionPtr; var q : SqlQuery&; return true } -// nolint:STYLE015 Receiver-pin to ExprVar rejects `u.opt.X` keys SQL can't reproduce. +// nolint:STYLE015 Verifies the receiver IS the lambda's bound param — outer captures (`outer.Brand`) reject loudly instead of emitting a wrong `COUNT(DISTINCT "Brand")` against the SQL source. [macro_function] def private try_peel_distinct_by_field(var node : ExpressionPtr; var distinctSource : ExpressionPtr&; var q : SqlQuery&; prog : ProgramPtr; at : LineInfo) : string { @@ -587,7 +592,20 @@ def private try_peel_distinct_by_field(var node : ExpressionPtr; var distinctSou q.hadError = true return "" } - var body = peel_lambda_single_return(dbCall.arguments[1]) + var lam = dbCall.arguments[1] + if (lam == null || !(lam is ExprMakeBlock)) { + macro_error(prog, at, "_sql: _distinct_by key has unexpected shape (not a lambda)") + q.hadError = true + return "" + } + var blk = (lam as ExprMakeBlock)._block as ExprBlock + if (blk == null || blk.arguments |> length != 1) { + macro_error(prog, at, "_sql: _distinct_by key lambda must take exactly one argument") + q.hadError = true + return "" + } + let expectedArgName = string(blk.arguments[0].name) + var body = peel_lambda_single_return(lam) if (body == null) { macro_error(prog, at, "_sql: _distinct_by key lambda has unexpected shape") q.hadError = true @@ -601,6 +619,12 @@ def private try_peel_distinct_by_field(var node : ExpressionPtr; var distinctSou q.hadError = true return "" } + let argName = string((receiver as ExprVar).name) + if (argName != expectedArgName) { + macro_error(prog, at, "_sql: _distinct_by key references `{argName}` but the lambda's argument is `{expectedArgName}` — outer captures can't be translated, the key must read `{expectedArgName}.`") + q.hadError = true + return "" + } distinctSource = dbCall.arguments[0] return fieldName } @@ -618,7 +642,7 @@ def private peel_count_terminal(var node : ExpressionPtr; var q : SqlQuery&; return true } if (cCall.arguments |> length != 1) { - macro_error(prog, at, "_sql: `_{linqName}(predicate)` is not yet supported — use `|> _where(predicate) |> _{linqName}()` instead") + macro_error(prog, at, "_sql: `{linqName}(predicate)` is not yet supported — use `|> _where(predicate) |> {linqName}()` instead") q.hadError = true return true } @@ -758,6 +782,8 @@ def private snapshot_q_to_subquery_wrap(var q : SqlQuery&; prog : ProgramPtr; at q.orderByCols |> clear q.orderByInlineExprs |> clear q.groupByCols |> clear + q.groupByKeyExprs |> clear + q.groupByKeyTypes |> clear q.havingSql := "" q.havingBindExprs |> clear q.groupedSelectExprs |> clear @@ -1580,9 +1606,11 @@ def private analyze_chain(var node : ExpressionPtr; var q : SqlQuery&; prog : Pr macro_error(prog, at, "_sql: _group_by key lambda has unexpected shape") return false } - if (!collect_group_keys(body, q, prog, at)) return false + // nolint:STYLE015 Source first so q.rootType is set before pred_to_sql on computed keys. + if (!analyze_chain(gbCall.arguments[0], q, prog, at) + || !collect_group_keys(body, q, prog, at)) return false q.seenGroupBy = true - return analyze_chain(gbCall.arguments[0], q, prog, at) + return true } } // Peel _where — recurse first so q.rootType is set before pred_to_sql runs (needs it for @sql_json/@sql_blob descent). @@ -2145,6 +2173,13 @@ def private analyze_grouped_projection(var body : ExpressionPtr; var q : SqlQuer var val = mkTup.values[i] // single-key `_._0` — direct group-key reference. if (nKeys == 1 && qmatch(val, _._0).matched) { + if (q.groupByKeyExprs[0] != null) { + // Computed-expression key — reuse the rendered SQL fragment from collect_group_keys. + q.groupedSelectExprs |> push(q.groupByCols[0]) + q.groupedSelectTypes |> push(q.groupByKeyTypes[0]) + q.projRecordNames |> push(string(tupT.argNames[i])) + continue + } let col = group_key_column_name(q, 0) var fieldType = lookup_struct_field_type(q.rootType, col) if (fieldType == null) { @@ -2164,6 +2199,12 @@ def private analyze_grouped_projection(var body : ExpressionPtr; var q : SqlQuer let suffix = slice(outerName, 1, length(outerName)) let keyIdx = try_to_int(suffix) ?? -1 if (keyIdx >= 0 && keyIdx < nKeys) { + if (q.groupByKeyExprs[keyIdx] != null) { + q.groupedSelectExprs |> push(q.groupByCols[keyIdx]) + q.groupedSelectTypes |> push(q.groupByKeyTypes[keyIdx]) + q.projRecordNames |> push(string(tupT.argNames[i])) + continue + } let col = group_key_column_name(q, keyIdx) var fieldType = lookup_struct_field_type(q.rootType, col) if (fieldType == null) { @@ -2230,6 +2271,10 @@ def private collect_order_keys(var body : ExpressionPtr; var q : SqlQuery&; dire if (nKeys == 1 && recv != null && recv is ExprVar && (recv as ExprVar).name == "_" && outerName == "_0") { + if (q.groupByKeyExprs[0] != null) { + q.orderByCols |> push("{q.groupByCols[0]} {direction}") + return true + } let dasName = group_key_column_name(q, 0) let sqlCol = field_to_column_name(q.rootType, dasName) q.orderByCols |> push("\"{sqlCol}\" {direction}") @@ -2249,6 +2294,10 @@ def private collect_order_keys(var body : ExpressionPtr; var q : SqlQuery&; dire let suffix = slice(outerName, 1, length(outerName)) let keyIdx = try_to_int(suffix) ?? -1 if (keyIdx >= 0 && keyIdx < nKeys) { + if (q.groupByKeyExprs[keyIdx] != null) { + q.orderByCols |> push("{q.groupByCols[keyIdx]} {direction}") + return true + } let dasName = group_key_column_name(q, keyIdx) let sqlCol = field_to_column_name(q.rootType, dasName) q.orderByCols |> push("\"{sqlCol}\" {direction}") @@ -2299,6 +2348,35 @@ def private collect_order_keys(var body : ExpressionPtr; var q : SqlQuery&; dire return false } +[macro_function] +def private push_group_key(var entry : ExpressionPtr; var q : SqlQuery&; prog : ProgramPtr; at : LineInfo) : bool { + var fieldName : string + if (qmatch(entry, _.$f(fieldName)).matched) { + q.groupByCols |> push("\"{fieldName}\"") + q.groupByKeyExprs |> push(null) + q.groupByKeyTypes |> push(null) + return true + } + // nolint:STYLE015 Render with constants inlined so the fragment carries no binds and can be re-used in SELECT/GROUP BY/ORDER BY positions. + let savedInlineFlag = q.inlineConstants + let beforeBinds = length(q.bindExprs) + q.inlineConstants = true + let exprSql = pred_to_sql(entry, q, prog, at) + q.inlineConstants = savedInlineFlag + if (q.hadError || empty(exprSql)) return false + if (length(q.bindExprs) > beforeBinds) { + // nolint:STYLE015 Runtime bind in a key fragment would have to be re-pushed at each use site (SELECT/GROUP BY/ORDER BY); reject loud instead. + q.bindExprs |> resize(beforeBinds) + macro_error(prog, at, "_sql: _group_by expression key references a runtime value — only column refs (`_.X`) and constant literals (`100`, `0.5`) are allowed inside the key expression; got: {describe(entry)}") + q.hadError = true + return false + } + q.groupByCols |> push("({exprSql})") + q.groupByKeyExprs |> push <| clone_expression(entry) + q.groupByKeyTypes |> push(entry._type) + return true +} + [macro_function] def private collect_group_keys(var body : ExpressionPtr; var q : SqlQuery&; prog : ProgramPtr; at : LineInfo) : bool { if (body == null) { @@ -2312,15 +2390,7 @@ def private collect_group_keys(var body : ExpressionPtr; var q : SqlQuery&; prog return false } } - // Single-column form: _.FieldName. groupByCols stores DASLANG names; SQL translation deferred to emission. - { - var fieldName : string - if (qmatch(body, _.$f(fieldName)).matched) { - q.groupByCols |> push("\"{fieldName}\"") - return true - } - } - // Multi-column form: tuple literal `(_.k1, _.k2)`. + // Multi-column form: tuple literal `(k1, k2, ...)` — each entry is either `_.Field` or a computed expression. if (body is ExprMakeTuple) { var mkTup = body as ExprMakeTuple if (empty(mkTup.values)) { @@ -2328,19 +2398,12 @@ def private collect_group_keys(var body : ExpressionPtr; var q : SqlQuery&; prog return false } for (i in range(length(mkTup.values))) { - var val = mkTup.values[i] - var fieldName : string - if (qmatch(val, _.$f(fieldName)).matched) { - q.groupByCols |> push("\"{fieldName}\"") - } else { - macro_error(prog, at, "_sql: _group_by: tuple-key entries must be `_.Field`; got: {describe(val)}") - return false - } + if (!push_group_key(mkTup.values[i], q, prog, at)) return false } return true } - macro_error(prog, at, "_sql: _group_by: key must be `_.Field` or a tuple of `_.Field`s; got: {describe(body)}") - return false + // Single key: `_.Field`, or any expression pred_to_sql can render (`_.X % 100`, `_.X + _.Y`, etc.). + return push_group_key(body, q, prog, at) } [macro_function] @@ -2707,6 +2770,17 @@ def private pred_to_sql(var node : ExpressionPtr; var q : SqlQuery&; prog : Prog } } } + // Literal-inline mode (set by expression-key contexts) — emit ExprConst* value directly so the fragment carries no binds and can be re-used at multiple SQL positions. + if (q.inlineConstants) { + if (node is ExprConstInt) return "{(node as ExprConstInt).value}" + if (node is ExprConstInt64) return "{(node as ExprConstInt64).value}" + if (node is ExprConstUInt) return "{(node as ExprConstUInt).value}" + if (node is ExprConstUInt64) return "{(node as ExprConstUInt64).value}" + if (node is ExprConstFloat) return fmt(":.9g", (node as ExprConstFloat).value) + if (node is ExprConstDouble) return fmt(":.17g", (node as ExprConstDouble).value) + if (node is ExprConstBool) return (node as ExprConstBool).value ? "1" : "0" + if (node is ExprConstString) return sql_quote_lit(string((node as ExprConstString).value)) + } // Bind fallthrough: unrecognized exprs become `?`; sql_bind catch-all + concept_assert error if not bindable. if (q.inHaving) { q.havingBindExprs |> push <| clone_expression(node) @@ -3295,18 +3369,22 @@ def private build_sql_select(var q : SqlQuery&; force_aliases : bool = false) : w |> write(" WHERE ") w |> write(q.whereSql) } - // groupByCols hold daslang field names (quoted); translate to SQL identifier here. + // nolint:STYLE015 groupByCols hold either daslang field names (quoted) or pre-rendered SQL expression fragments; discriminate via groupByKeyExprs. if (!empty(q.groupByCols)) { w |> write(" GROUP BY ") for (i in range(length(q.groupByCols))) { if (i > 0) { w |> write(", ") } - let dasName = group_key_column_name(q, i) - let sqlCol = field_to_column_name(q.rootType, dasName) - w |> write("\"") - w |> write(sqlCol) - w |> write("\"") + if (q.groupByKeyExprs[i] != null) { + w |> write(q.groupByCols[i]) + } else { + let dasName = group_key_column_name(q, i) + let sqlCol = field_to_column_name(q.rootType, dasName) + w |> write("\"") + w |> write(sqlCol) + w |> write("\"") + } } } if (!empty(q.havingSql)) { diff --git a/src/ast/ast_infer_type_function.cpp b/src/ast/ast_infer_type_function.cpp index de576da91e..6b62a615c3 100644 --- a/src/ast/ast_infer_type_function.cpp +++ b/src/ast/ast_infer_type_function.cpp @@ -77,10 +77,14 @@ namespace das { program->library.foreach ([&](Module *mod) -> bool { auto itFnList = mod->functionsByName.find(hFuncName); if ( itFnList ) { + // Hoist module-level visibility — pFn->module == mod for non-generic fns (set in addFunction). + const bool modVis = isVisibleFunc(inWhichModule, mod); auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { // if ( pFn->isTemplate ) continue; - if ( isVisibleFunc(inWhichModule,getFunctionVisModule(pFn)) ) { + const bool funcVis = !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { if ( canCallPrivate(pFn,inWhichModule,thisModule) ) { result.push_back(pFn); } @@ -391,11 +395,16 @@ namespace das { program->library.foreach ([&](Module *mod) -> bool { auto itFnList = mod->functionsByName.find(hFuncName); if ( itFnList ) { + // Hoist module-level visibility — pFn->module == mod for non-generic fns. + const bool modVis = isVisibleFunc(inWhichModule, mod); + const bool modVisFromThis = thisModule->isVisibleDirectly(mod); auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { if ( pFn->isTemplate ) continue; - if ( isVisibleFunc(inWhichModule,getFunctionVisModule(pFn)) ) { - if ( !pFn->fromGeneric || thisModule->isVisibleDirectly(mod) ) { + const bool funcVis = !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { + if ( !pFn->fromGeneric || modVisFromThis ) { if ( canCallPrivate(pFn,inWhichModule,thisModule) ) { if ( isFunctionCompatible(pFn, types, arguments, false, inferBlock) ) { result.push_back(pFn); @@ -428,12 +437,18 @@ namespace das { program->library.foreach ([&](Module *mod) -> bool { auto itFnList = mod->functionsByName.find(hFuncName); if ( itFnList ) { + // Hoist module-level visibility — pFn->module == mod for non-generic fns. + const bool modVis = visCheck ? isVisibleFunc(inWhichModule, mod) : true; + const bool modVisFromThis = thisModule->isVisibleDirectly(mod); auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { if ( pFn->jitOnly && !jitEnabled() ) continue; if ( pFn->isTemplate ) continue; - if ( !visCheck || isVisibleFunc(inWhichModule,getFunctionVisModule(pFn) ) ) { - if ( !pFn->fromGeneric || thisModule->isVisibleDirectly(mod) ) { + const bool funcVis = !visCheck ? true + : !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { + if ( !pFn->fromGeneric || modVisFromThis ) { if ( canCallPrivate(pFn,inWhichModule,thisModule) ) { if ( !argHash ) { argHash = fragile_bit_set::key(getLookupHash(types)); @@ -468,11 +483,16 @@ namespace das { { // functions auto itFnList = mod->functionsByName.find(hFuncName); if ( itFnList ) { + // Hoist module-level visibility — pFn->module == mod by construction. + const bool modVis = isVisibleFunc(inWhichModule, mod); + const bool modVisFromThis = thisModule->isVisibleDirectly(mod); auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { if ( pFn->isTemplate ) continue; - if ( isVisibleFunc(inWhichModule,getFunctionVisModule(pFn)) ) { - if ( !pFn->fromGeneric || thisModule->isVisibleDirectly(mod) ) { + const bool funcVis = !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { + if ( !pFn->fromGeneric || modVisFromThis ) { if ( canCallPrivate(pFn,inWhichModule,thisModule) ) { if ( isFunctionCompatible(pFn, types, arguments, false, inferBlock) ) { resultFunctions.push_back(pFn); @@ -486,11 +506,14 @@ namespace das { { // generics auto itFnList = mod->genericsByName.find(hFuncName); if ( itFnList ) { + const bool modVis = isVisibleFunc(inWhichModule, mod); auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { if ( pFn->jitOnly && !jitEnabled() ) continue; if ( pFn->isTemplate ) continue; - if ( isVisibleFunc(inWhichModule,getFunctionVisModule(pFn)) ) { + const bool funcVis = !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { if ( canCallPrivate(pFn,inWhichModule,thisModule) ) { if ( isFunctionCompatible(pFn, types, arguments, true, true) ) { // infer block here? resultGenerics.push_back(pFn); @@ -512,12 +535,18 @@ namespace das { { // functions auto itFnList = mod->functionsByName.find(hFuncName); if ( itFnList ) { + // Hoist module-level visibility — pFn->module == mod by construction. + const bool modVis = visCheck ? isVisibleFunc(inWhichModule, mod) : true; + const bool modVisFromThis = thisModule->isVisibleDirectly(mod); auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { if ( pFn->jitOnly && !jitEnabled() ) continue; if ( pFn->isTemplate ) continue; - if ( !visCheck || isVisibleFunc(inWhichModule,getFunctionVisModule(pFn) ) ) { - if ( !pFn->fromGeneric || thisModule->isVisibleDirectly(mod) ) { + const bool funcVis = !visCheck ? true + : !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { + if ( !pFn->fromGeneric || modVisFromThis ) { if ( !visCheck || canCallPrivate(pFn,inWhichModule,thisModule) ) { auto itLook = pFn->lookup.find_and_reserve(argHash); // if found in lookup if ( *itLook ) { @@ -541,10 +570,14 @@ namespace das { { // generics auto itFnList = mod->genericsByName.find(hFuncName); if ( itFnList ) { + const bool modVis = visCheck ? isVisibleFunc(inWhichModule, mod) : true; auto & goodFunctions = itFnList->second; for ( auto & pFn : goodFunctions ) { if ( pFn->isTemplate ) continue; - if ( !visCheck || isVisibleFunc(inWhichModule,getFunctionVisModule(pFn)) ) { + const bool funcVis = !visCheck ? true + : !pFn->fromGeneric ? modVis + : isVisibleFunc(inWhichModule, pFn->getOrigin()->module); + if ( funcVis ) { if ( !visCheck || canCallPrivate(pFn,inWhichModule,thisModule) ) { auto itLook = pFn->lookup.find_and_reserve(argHash); // if found in lookup if ( *itLook ) { diff --git a/src/ast/ast_typedecl.cpp b/src/ast/ast_typedecl.cpp index 02c72a3a73..f3b2b5eb7d 100644 --- a/src/ast/ast_typedecl.cpp +++ b/src/ast/ast_typedecl.cpp @@ -874,6 +874,8 @@ namespace das } } flags = decl.flags; + aliasCacheValid = false; // not cloned — recompute lazily + aliasCacheHasAlias = false; alias = decl.alias; at = decl.at; module = decl.module; @@ -916,6 +918,8 @@ namespace das } } dest->flags = src->flags; + dest->aliasCacheValid = false; // not cloned — recompute lazily + dest->aliasCacheHasAlias = false; dest->alias = src->alias; dest->at = src->at; dest->module = src->module; @@ -944,7 +948,28 @@ namespace das if ( annotation ) annotation->gc_collect(target, from); } + bool TypeDecl::computeAliasCache() { + // Eager full walk independent of name/allowAuto. Sets aliasCache* on every visited node. + // alias-type subtrees are dead ends for findAlias, so treated as NoAlias. + if (aliasCacheValid) return aliasCacheHasAlias; + if (baseType == Type::alias) { + aliasCacheValid = true; + aliasCacheHasAlias = false; + return false; + } + bool hasAny = !alias.empty(); + if (firstType && firstType->computeAliasCache()) hasAny = true; + if (secondType && secondType->computeAliasCache()) hasAny = true; + for (auto & arg : argTypes) { + if (arg && arg->computeAliasCache()) hasAny = true; + } + aliasCacheValid = true; + aliasCacheHasAlias = hasAny; + return hasAny; + } TypeDecl * TypeDecl::findAlias ( const string & name, bool allowAuto ) { + if (!aliasCacheValid) computeAliasCache(); + if (!aliasCacheHasAlias) return nullptr; // proven no aliases anywhere if (baseType == Type::alias) { return nullptr; // if it is another alias, can't find it } else if (baseType == Type::autoinfer && !allowAuto) { diff --git a/tests/dasSQLITE/failed_sql_macro.das b/tests/dasSQLITE/failed_sql_macro.das index 2dfedd4213..de6f53922b 100644 --- a/tests/dasSQLITE/failed_sql_macro.das +++ b/tests/dasSQLITE/failed_sql_macro.das @@ -6,7 +6,7 @@ options gen2 // some malformed chains additionally cascade real type errors before the // analyzer ever runs — e.g. `_select(_.Name) |> _select(_.Price)` is a // genuine type bug (string has no `Price` field). Those cascades are expected. -expect 30341, 30928:2, 50503:21 +expect 30341, 30928:2, 50503:23 require daslib/sql require sqlite/sqlite_boost @@ -144,6 +144,19 @@ def main() { // keys lower to `COUNT(DISTINCT "col")`; computed keys like `_.Price % // 100` would need a general expression-to-SQL emitter not yet wired. let bad23 <- _sql(db |> select_from(type) |> _distinct_by(_.Price % 100) |> count()) + + // 24. `_distinct_by(.Field)` — the key reads a captured + // variable instead of the lambda's bound parameter (`_`); without + // the arg-name check this would silently emit `COUNT(DISTINCT "Field")` + // against the SQL row source — wrong result. + var capturedRow = Car(Id = 0, Name = "captured", Price = 0) + let bad24 <- _sql(db |> select_from(type) |> _distinct_by(capturedRow.Name) |> count()) + + // 25. `_group_by(_.Col - )` — expression-key support inlines + // constants only; a runtime-var bind would need to be re-pushed at each + // re-use of the key fragment (SELECT, GROUP BY, ORDER BY positions). + let runtimeOffset = 5 + let bad25 <- _sql(db |> select_from(type) |> _group_by(_.Price - runtimeOffset) |> _select((K = _._0, N = _._1 |> length))) // (Note: the "_in subquery without _select(_.Col)" diagnostic added in // this round is also belt-and-suspenders — a daslang `contains` type- // check rejects mismatched element types before sqlite_linq even sees diff --git a/tests/dasSQLITE/test_32_group_by_expression_keys.das b/tests/dasSQLITE/test_32_group_by_expression_keys.das new file mode 100644 index 0000000000..828244c3b0 --- /dev/null +++ b/tests/dasSQLITE/test_32_group_by_expression_keys.das @@ -0,0 +1,95 @@ +options gen2 + +require dastest/testing_boost public + +require daslib/sql +require sqlite/sqlite_boost +require sqlite/sqlite_linq + +[sql_table(name = "Cars")] +struct Car { + @sql_primary_key Id : int + Brand : string + Price : int +} + +def private fixture(db : SqlRunner) { + db |> create_table(type) + for (i in range(20)) { + db |> insert(Car(Id = i + 1, Brand = "B{i % 3}", Price = i * 10)) + } +} + +[test] +def test_expr_key_modulo_emits_inline_constant(t : T?) { + var _db = SqlRunner() + let sql = _sql_text(_db |> select_from(type) |> _group_by(_.Price % 100) |> _select((K = _._0, N = _._1 |> length))) + t |> equal(sql, "SELECT ((\"Price\") % (100)), COUNT(*) FROM \"Cars\" GROUP BY ((\"Price\") % (100))", + "expr-key SELECT + GROUP BY share the same inlined fragment, no `?` binds") +} + +[test] +def test_expr_key_modulo_runtime(t : T?) { + with_sqlite(":memory:") $(db) { + fixture(db) + let groups <- _sql(db |> select_from(type) |> _group_by(_.Price % 100) |> _select((K = _._0, N = _._1 |> length))) + t |> equal(length(groups), 10, "20 rows with Price 0,10,...,190 split by % 100 → 10 groups of 2") + var seen = 0 + for (g in groups) { + t |> equal(g.N, 2, "every group has 2 entries") + seen++ + } + t |> equal(seen, 10, "10 groups iterated") + } +} + +[test] +def test_expr_key_with_inner_select_sum(t : T?) { + with_sqlite(":memory:") $(db) { + fixture(db) + let groups <- _sql(db |> select_from(type) + |> _group_by(_.Price % 100) + |> _select((K = _._0, S = _._1 |> select($(c : Car) => c.Price) |> sum()))) + t |> equal(length(groups), 10, "10 groups") + for (g in groups) { + t |> equal(g.S, g.K * 2 + 100, "K=0 → S=100, K=10 → S=120, etc.") + } + } +} + +[test] +def test_expr_key_order_by_uses_same_fragment(t : T?) { + var _db = SqlRunner() + let sql = _sql_text(_db |> select_from(type) + |> _group_by(_.Price % 100) + |> _select((K = _._0, N = _._1 |> length)) + |> _order_by(_._0)) + t |> success(sql |> find("ORDER BY ((\"Price\") % (100)) ASC") >= 0, + "ORDER BY on the group key re-uses the expression-key fragment verbatim") +} + +[test] +def test_multi_key_mixed_field_and_expression(t : T?) { + var _db = SqlRunner() + let sql = _sql_text(_db |> select_from(type) + |> _group_by((_.Brand, _.Price % 100)) + |> _select((B = _._0._0, K = _._0._1, N = _._1 |> length))) + t |> equal(sql, "SELECT \"Brand\", ((\"Price\") % (100)), COUNT(*) FROM \"Cars\" GROUP BY \"Brand\", ((\"Price\") % (100))", + "multi-key tuple mixes field key and expression key; both render in SELECT + GROUP BY in order") +} + +[test] +def test_expr_key_runtime_runs_correctly(t : T?) { + with_sqlite(":memory:") $(db) { + fixture(db) + let groups <- _sql(db |> select_from(type) + |> _group_by((_.Brand, _.Price % 100)) + |> _select((B = _._0._0, K = _._0._1, N = _._1 |> length))) + t |> success(!empty(groups), "non-empty multi-key result") + var total = 0 + for (g in groups) { + total += g.N + } + t |> equal(total, 20, "every row visits exactly one group") + } +} diff --git a/tests/linq/test_linq_from_decs.das b/tests/linq/test_linq_from_decs.das index c5741164a9..b444a49c7e 100644 --- a/tests/linq/test_linq_from_decs.das +++ b/tests/linq/test_linq_from_decs.das @@ -3265,3 +3265,94 @@ def test_reverse_take_empty_source(t : T?) { t |> success(empty(got), "empty source returns empty") } +// ── Session 3: plan_decs_join — hashed equi-join over two from_decs_template eager bridges ── + +[decs_template(prefix = "jt_car_")] +struct JoinTestCar { + id : int + dealer_id : int +} + +[decs_template(prefix = "jt_dealer_")] +struct JoinTestDealer { + id : int + name : string +} + +def private join_test_fixture(numCars, numDealers : int) { + restart() + create_entities(numCars) $(eid : EntityId; i : int; var cmp : ComponentMap) { + apply_decs_template(cmp, JoinTestCar(id = i + 100, dealer_id = (i % max(numDealers, 1)) + 1)) + } + create_entities(numDealers) $(eid : EntityId; i : int; var cmp : ComponentMap) { + apply_decs_template(cmp, JoinTestDealer(id = i + 1, name = "D{i}")) + } +} + +[test] +def test_decs_join_count_basic(t : T?) { + // 10 cars × 5 dealers, each car matches exactly one dealer. + join_test_fixture(10, 5) + let c = _fold(from_decs_template(type) |> _join(from_decs_template(type), + $(l, r) => l.dealer_id == r.id, + $(l, r) => (l.id, r.name)) + |> count()) + t |> equal(c, 10, "every car matches exactly one dealer") +} + +[test] +def test_decs_join_count_unmatched_cars(t : T?) { + // 5 cars with dealer_id 1..5, only 3 dealers (ids 1..3) — cars whose dealer_id is 4 or 5 (the 4th and 5th car) are unmatched, so 3 of 5 cars contribute. + restart() + create_entities(5) $(eid : EntityId; i : int; var cmp : ComponentMap) { + apply_decs_template(cmp, JoinTestCar(id = i + 100, dealer_id = i + 1)) + } + create_entities(3) $(eid : EntityId; i : int; var cmp : ComponentMap) { + apply_decs_template(cmp, JoinTestDealer(id = i + 1, name = "D{i}")) + } + let c = _fold(from_decs_template(type) |> _join(from_decs_template(type), + $(l, r) => l.dealer_id == r.id, + $(l, r) => (l.id, r.name)) + |> count()) + t |> equal(c, 3, "only cars with matching dealer ids contribute") +} + +[test] +def test_decs_join_empty_sides(t : T?) { + restart() + let c = _fold(from_decs_template(type) |> _join(from_decs_template(type), + $(l, r) => l.dealer_id == r.id, + $(l, r) => (l.id, r.name)) + |> count()) + t |> equal(c, 0, "no entities → 0 pairs") +} + +[test] +def test_decs_join_many_to_one(t : T?) { + // 10 cars distributed across 2 dealers — each car matches one dealer; counts 10. + join_test_fixture(10, 2) + let c = _fold(from_decs_template(type) |> _join(from_decs_template(type), + $(l, r) => l.dealer_id == r.id, + $(l, r) => (l.id, r.name)) + |> count()) + t |> equal(c, 10, "many-cars-to-one-dealer-each yields one pair per car") +} + +[test] +def test_decs_join_to_array_projection(t : T?) { + // to_array path: named-tuple projection picks up CarId / DealerName. + join_test_fixture(6, 3) + let arr <- _fold(from_decs_template(type) |> _join(from_decs_template(type), + $(l, r) => l.dealer_id == r.id, + $(l, r) => (CarId = l.id, DealerName = r.name)) + |> to_array()) + t |> equal(length(arr), 6, "every car matched") + // Each row's CarId is 100..105, DealerName is D0..D2 in round-robin order. Order isn't guaranteed across archetypes, so check the set. + var seen : table + for (row in arr) { + seen |> insert(row.CarId) + t |> success(row.DealerName |> starts_with("D"), "dealer name prefixed D") + } + t |> equal(length(seen), 6, "all 6 distinct car ids present") +} +