Skip to content

Cherry-pick upstream fix for bad bindings on Clang 22#17

Open
tchebb wants to merge 2 commits into
adetaylor:masterfrom
tchebb:autocxx-fix-clang-22
Open

Cherry-pick upstream fix for bad bindings on Clang 22#17
tchebb wants to merge 2 commits into
adetaylor:masterfrom
tchebb:autocxx-fix-clang-22

Conversation

@tchebb

@tchebb tchebb commented Jun 2, 2026

Copy link
Copy Markdown

The upstream PR is rust-lang#3278. Without it, my autocxx project fails to compile on Clang 22 (see tchebb/openwv#9) because autocxx generates constructors for abstract classes. I did not fully track down how the badness flows from bindgen up through autocxx, but I suspect that this regression effectively makes autocxx useless for users on Clang 22.

zmodem and others added 2 commits June 2, 2026 13:43
In llvm/llvm-project#147835, Clang's AST changed
so that a TagType's decl will not necessarily refer to the type's
definition, but to the exact declaration which produced the type.

For example, in

  typedef struct S T;
  struct S {
    int x;
  };

the 'struct S' type would refer to the incomplete type decl in the
typedef, causing CompInfo to fail to see the type's definition.

This patch inserts a call to use the definition when available. It fixes
the original test case in
rust-lang#3275 and most of the
test failures caused by the Clang change but not all.
tchebb added a commit to tchebb/autocxx that referenced this pull request Jun 2, 2026
This is needed for Clang 22 support unless adetaylor/rust-bindgen#17
gets merged.
tchebb added a commit to tchebb/autocxx that referenced this pull request Jun 2, 2026
This is needed for Clang 22 support unless adetaylor/rust-bindgen#17
gets merged.
tchebb added a commit to tchebb/openwv that referenced this pull request Jun 2, 2026
Bump our autocxx fork to a new version that depends on a fork of
autocxx-bindgen with [1] included.

Fixes #9

[1] adetaylor/rust-bindgen#17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants