================ @@ -11360,6 +11360,14 @@ static void AnalyzeAssignment(Sema &S, BinaryOperator *E) { static void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T, SourceLocation CContext, unsigned diag, bool pruneControlFlow = false) { + // For languages like HLSL and OpenCL, implicit conversion diagnostics listing + // address space annotations isn't really useful. The warnings aren't because + // you're converting a `private int` to `unsigned int`, it is because you're + // conerting `int` to `unsigned int`. + if (SourceType.hasAddressSpace()) + SourceType = S.getASTContext().removeAddrSpaceQualType(SourceType); + if (T.hasAddressSpace()) + T = S.getASTContext().removeAddrSpaceQualType(T); ---------------- llvm-beanz wrote:
If we added an assert it would really be something like: ``` assert(!S.getASTContext().hasSameUnqualifiedType(SourceType, T) && ""); ``` My feeling is that doesn't really add a lot of value here because so many things in Sema would have to go wrong for us to generate implicit cast AST nodes other than qualification conversions where the source and destination types have the same unqualified types. https://github.com/llvm/llvm-project/pull/135830 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits