Skip to content

Conversation

emilio
Copy link
Contributor

@emilio emilio commented Aug 27, 2025

Fixes #3275
Fixes #3264
Closes #3277 (included here squashed)

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
#3275 and most of the
test failures caused by the Clang change but not all.
@emilio emilio added this pull request to the merge queue Aug 27, 2025
Merged via the queue into main with commit 2426dd6 Aug 27, 2025
51 checks passed
aarongable pushed a commit to chromium/chromium that referenced this pull request Aug 28, 2025
This picks up rust-lang/rust-bindgen#3278
and also adds the tests to the build process to catch such problems
earlier.

Bug: 440975178
Change-Id: Id919ff4d6191ab04267d961eef3e993665788052
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6890874
Commit-Queue: Nico Weber <[email protected]>
Reviewed-by: Nico Weber <[email protected]>
Auto-Submit: Hans Wennborg <[email protected]>
Commit-Queue: Hans Wennborg <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1507661}
facebook-github-bot pushed a commit to facebook/folly that referenced this pull request Sep 2, 2025
Summary: This reverts my folly workaround from {D80186965} because the bindgen fix [bindgen#3278](rust-lang/rust-bindgen#3278) has made it into fbsource's version of bindgen since {D81525185}.

Reviewed By: diliop

Differential Revision: D81525186

fbshipit-source-id: 3d36156e1f913f050f9af26a1938b65025aa8779
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.

Bad bindings for typedef to incomplete struct after Clang 22 change Missing fields in nested class with LLVM 22
2 participants