From: Johannes Doerfert Date: Tue, 4 Jun 2019 20:21:46 +0000 (+0000) Subject: Introduce Value::stripPointerCastsSameRepresentation X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4b311772fde6bcf366683dbf7e08750b8b611ead;p=clang Introduce Value::stripPointerCastsSameRepresentation This patch allows current users of Value::stripPointerCasts() to force the result of the function to have the same representation as the value it was called on. This is useful in various cases, e.g., (non-)null checks. In this patch only a single call site was adjusted to fix an existing misuse that would cause nonnull where they may be wrong. Uses in attribute deduction and other areas, e.g., D60047, are to be expected. For a discussion on this topic, please see [0]. [0] http://lists.llvm.org/pipermail/llvm-dev/2018-December/128423.html Reviewers: hfinkel, arsenm, reames Subscribers: wdng, hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61607 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362545 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGenOpenCLCXX/addrspace-references.cl b/test/CodeGenOpenCLCXX/addrspace-references.cl index b17e701426..19aeebe5df 100644 --- a/test/CodeGenOpenCLCXX/addrspace-references.cl +++ b/test/CodeGenOpenCLCXX/addrspace-references.cl @@ -9,6 +9,6 @@ void foo() { // CHECK: [[REF:%.*]] = alloca i32 // CHECK: store i32 1, i32* [[REF]] // CHECK: [[REG:%[0-9]+]] = addrspacecast i32* [[REF]] to i32 addrspace(4)* - // CHECK: call spir_func i32 @_Z3barRU3AS4Kj(i32 addrspace(4)* nonnull dereferenceable(4) [[REG]]) + // CHECK: call spir_func i32 @_Z3barRU3AS4Kj(i32 addrspace(4)* dereferenceable(4) [[REG]]) bar(1); }