forked from OSchip/llvm-project
5b6dda33d1
The semantics for converting nested pointers between address spaces are not very well defined. Some conversions which do not really carry any meaning only produce warnings, and in some cases warnings hide invalid conversions, such as 'global int*' to 'local float*'! This patch changes the logic in checkPointerTypesForAssignment and checkAddressSpaceCast to fail properly on implicit conversions that should definitely not be permitted. We also dig deeper into the pointer types and warn on explicit conversions where the address space in a nested pointer changes, regardless of whether the address space is compatible with the corresponding pointer nesting level on the destination type. Fixes PR39674! Patch by ebevhan (Bevin Hansson)! Differential Revision: https://reviews.llvm.org/D58236 llvm-svn: 360258 |
||
---|---|---|
.. | ||
access-qualifier.cl | ||
address-spaces-conversions-cl2.0.cl | ||
address-spaces.cl | ||
amdgpu-attrs.cl | ||
arithmetic-conversions.cl | ||
array-init.cl | ||
array-parameters.cl | ||
as_type.cl | ||
atomic-init.cl | ||
atomic-ops.cl | ||
block-array-capturing.cl | ||
bool-vectors.cl | ||
builtin.cl | ||
builtins-amdgcn-error-ci.cl | ||
builtins-amdgcn-error-f16.cl | ||
builtins-amdgcn-error-gfx9.cl | ||
builtins-amdgcn-error-vi.cl | ||
builtins-amdgcn-error.cl | ||
cl20-device-side-enqueue.cl | ||
clang-builtin-version.cl | ||
clk_event_t.cl | ||
cond.cl | ||
convergent.cl | ||
endian-attr.cl | ||
event_t.cl | ||
event_t_overload.cl | ||
ext_vectors.cl | ||
extension-begin.cl | ||
extension-begin.h | ||
extension-version.cl | ||
extensions.cl | ||
format-strings-fixit.cl | ||
func.cl | ||
half.cl | ||
images.cl | ||
init.cl | ||
intel-subgroup-avc-ext-types.cl | ||
invalid-assignment-constant-address-space.cl | ||
invalid-block.cl | ||
invalid-constant.cl | ||
invalid-image.cl | ||
invalid-kernel-attrs.cl | ||
invalid-kernel-parameters.cl | ||
invalid-kernel.cl | ||
invalid-pipe-builtin-cl2.0.cl | ||
invalid-pipes-cl2.0.cl | ||
lit.local.cfg | ||
logical-ops.cl | ||
multistep-explicit-cast.cl | ||
nosvm.cl | ||
null_literal.cl | ||
null_queue.cl | ||
numbered-address-space.cl | ||
pipes-1.2-negative.cl | ||
predefined-expr.cl | ||
printf-format-string-warnings.cl | ||
printf-format-strings.cl | ||
queue_t_overload.cl | ||
sampler_t.cl | ||
sampler_t_overload.cl | ||
shifts.cl | ||
sizeof.cl | ||
storageclass-cl20.cl | ||
storageclass.cl | ||
str_literals.cl | ||
to_addr_builtin.cl | ||
types.cl | ||
unroll-hint.cl | ||
unsupported.cl | ||
vec_compare.cl | ||
vec_step.cl | ||
vector_conv_invalid.cl | ||
vector_inc_dec_ops.cl | ||
vector_literals_const.cl | ||
vector_literals_invalid.cl | ||
vector_swizzle_length.cl | ||
warn-missing-prototypes.cl |