From 2315410885103ae6bb973e3ade96cc8296b11f65 Mon Sep 17 00:00:00 2001 From: Lucas Girouard-Stranks <519592+lithiumtoast@users.noreply.github.com> Date: Tue, 21 Jan 2025 08:58:22 -0500 Subject: [PATCH] Fix macro object evaluation sometimes using wrong translation unit --- .../Extract/Explore/NodeExplorers/MacroObjectExplorer.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cs/production/c2ffi.Tool/Extract/Explore/NodeExplorers/MacroObjectExplorer.cs b/src/cs/production/c2ffi.Tool/Extract/Explore/NodeExplorers/MacroObjectExplorer.cs index 43f6da4..918108f 100644 --- a/src/cs/production/c2ffi.Tool/Extract/Explore/NodeExplorers/MacroObjectExplorer.cs +++ b/src/cs/production/c2ffi.Tool/Extract/Explore/NodeExplorers/MacroObjectExplorer.cs @@ -160,7 +160,7 @@ int main(void) } var typeName = clangType.Spelling(); - var mainTranslationUnit = clang.clang_Cursor_getTranslationUnit(info.ClangCursor); + var mainTranslationUnit = exploreContext.ParseContext.TranslationUnit; var mainTranslationUnitCursor = clang.clang_getTranslationUnitCursor(mainTranslationUnit); var clangCursorsInMainTranslationUnit = mainTranslationUnitCursor.GetDescendents( @@ -182,8 +182,9 @@ static bool FindTypeName(string typeName, clang.CXCursor clangCursor) if (clangCursorsInMainTranslationUnit.IsDefaultOrEmpty) { - throw new ToolException( + var up = new ToolException( $"Failed to find matching type in main translation unit for macro object '{macroName}'."); + throw up; } var clangCursorInMainTranslationUnit = clangCursorsInMainTranslationUnit.First();