================ @@ -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); ---------------- bogner wrote:
Should we assert here that `SourceType` and `T` aren't identical after stripping address spaces to protect against misuse of the function? 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