diff --git a/hipamd/hipify-clang/src/Cuda2Hip.cpp b/hipamd/hipify-clang/src/Cuda2Hip.cpp index fd23344f9f..5c422bc6ff 100644 --- a/hipamd/hipify-clang/src/Cuda2Hip.cpp +++ b/hipamd/hipify-clang/src/Cuda2Hip.cpp @@ -765,7 +765,15 @@ void addAllMatchers(ast_matchers::MatchFinder &Finder, Cuda2HipCallback *Callbac isExpansionInMainFile(), callee( functionDecl( - matchesName("cu.*") + matchesName("cu.*"), + unless( + // Clang generates structs with functions on them to represent things like + // threadIdx.x. We have other logic to handle those builtins directly, so + // we need to suppress the call-handling. + // We can't handle those directly in the call-handler without special-casing + // it unpleasantly, since the names of the functions are unique only per-struct. + matchesName("__fetch_builtin.*") + ) ) ) ).bind("cudaCall"),