Anastasia added subscribers: jeroen.dobbelaere, rjmccall. Anastasia added inline comments.
================ Comment at: clang/lib/Sema/SemaExpr.cpp:10090 // if both are pointers check if operation is valid wrt address spaces - if (S.getLangOpts().OpenCL && isLHSPointer && isRHSPointer) { + if ((S.getLangOpts().OpenCL || S.getLangOpts().SYCLIsDevice) && + isLHSPointer && isRHSPointer) { ---------------- bader wrote: > Alternative approach would be to remove `S.getLangOpts().OpenCL` to enable > this check for all modes. > > @Anastasia, do you know if it's safe to do? If I look at embedded C (ISO/IEC TR 18037) s5.3 rules that we are following largely in Clang I believe this is a universal rule! Especially looking at the followong statement: > Clause 6.5.6 - Additive operators, add another constraint paragraph: > For subtraction, if the two operands are pointers into different address > spaces, the address spaces must overlap. So I think that it should apply to at least OpenCL, C and C++. I am surprised though that this has not been fixed yet. I am CCing @rjmccall and @jeroen.dobbelaere in case they have any more insights on this. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80317/new/ https://reviews.llvm.org/D80317 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits