llvm-project/clang/test/SemaOpenCL
Richard Smith f041e9ad70 CWG2352: Allow qualification conversions during reference binding.
The language wording change forgot to update overload resolution to rank
implicit conversion sequences based on qualification conversions in
reference bindings. The anticipated resolution for that oversight is
implemented here -- we order candidates based on qualification
conversion, not only on top-level cv-qualifiers, including ranking
reference bindings against non-reference bindings if they differ in
non-top-level qualification conversions.

For OpenCL/C++, this allows reference binding between pointers with
differing (nested) address spaces. This makes the behavior of reference
binding consistent with that of implicit pointer conversions, as is the
purpose of this change, but that pre-existing behavior for pointer
conversions is itself probably not correct. In any case, it's now
consistently the same behavior and implemented in only one place.

This reinstates commit de21704ba9,
reverted in commit d8018233d1, with
workarounds for some overload resolution ordering problems introduced by
CWG2352.
2020-01-09 18:24:06 -08:00
..
access-qualifier.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
address-spaces-conversions-cl2.0.cl CWG2352: Allow qualification conversions during reference binding. 2020-01-09 18:24:06 -08:00
address-spaces.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
amdgpu-attrs.cl [AMDGPU] Allow using integral non-type template parameters 2019-02-26 18:49:36 +00:00
arithmetic-conversions.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
arm-integer-dot-product.cl [OpenCL] Add support for the cl_arm_integer_dot_product extensions 2019-05-24 14:53:52 +00:00
array-init.cl [NFC] Fix line endings in OpenCL tests 2019-05-17 09:25:38 +00:00
array-parameters.cl
as_type.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
atomic-init.cl
atomic-ops.cl [OpenCL] Fix inconsistency between opencl and c11 atomic fetch max/min 2019-12-27 11:29:04 -05:00
block-array-capturing.cl Revert r326937 "[OpenCL] Remove block invoke function from emitted block literal struct" 2018-10-02 13:02:24 +00:00
bool-vectors.cl
builtin.cl [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
builtins-amdgcn-error-ci.cl AMDGPU: Add DS GWS sema builtins 2019-06-20 21:33:57 +00:00
builtins-amdgcn-error-f16.cl
builtins-amdgcn-error-flat-address-space.cl AMDGPU: Add builtins for is_shared/is_private 2019-09-05 03:00:43 +00:00
builtins-amdgcn-error-gfx9.cl
builtins-amdgcn-error-gfx10-param.cl AMDGPU: Add some missing builtins 2019-07-17 00:01:03 +00:00
builtins-amdgcn-error-gfx10.cl AMDGPU: Add some missing builtins 2019-07-17 00:01:03 +00:00
builtins-amdgcn-error-vi.cl [AMDGPU] rename vi-insts into gfx8-insts 2019-04-05 18:25:00 +00:00
builtins-amdgcn-error.cl AMDGPU: add __builtin_amdgcn_update_dpp 2018-10-17 02:32:26 +00:00
cl20-device-side-enqueue.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
clang-builtin-version.cl Revert "We allow implicit function declarations as an extension in all C dialects. Remove OpenCL special case." 2018-09-24 14:21:56 +00:00
clk_event_t.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
cond.cl
convergent.cl
endian-attr.cl
event_t.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
event_t_overload.cl [Sema][OpenCL] Make address space conversions a bit stricter. 2019-05-08 14:23:49 +00:00
ext_vectors.cl
extension-begin.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
extension-begin.h [OpenCL] Fix serialization of OpenCLExtensionDecls 2018-10-29 11:14:01 +00:00
extension-version.cl [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
extensions.cl [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
fdeclare-opencl-builtins.cl [OpenCL] Add atomic builtin functions 2019-12-23 12:29:01 +00:00
format-strings-fixit.cl [OpenGL] Fix test on PPC after r352540 2019-01-30 11:24:04 +00:00
func.cl
half.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
images.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
init.cl
intel-subgroup-avc-ext-types.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
invalid-assignment-constant-address-space.cl
invalid-block.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
invalid-constant.cl
invalid-image.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
invalid-kernel-attrs.cl Add lifetime categories attributes 2019-07-25 17:50:51 +00:00
invalid-kernel-parameters.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
invalid-kernel.cl
invalid-pipe-builtin-cl2.0.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
invalid-pipes-cl2.0.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
lit.local.cfg
logical-ops.cl
multistep-explicit-cast.cl
nosvm.cl
null_literal.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
null_queue.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
numbered-address-space.cl [OpenCL] Fixed printing of __private in AMDGPU test 2019-12-27 17:08:42 +00:00
pipes-1.2-negative.cl
predefined-expr.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
printf-format-string-warnings.cl OpenCL: Use length modifier for warning on vector printf arguments 2019-01-29 20:49:54 +00:00
printf-format-strings.cl OpenCL: Use length modifier for warning on vector printf arguments 2019-01-29 20:49:54 +00:00
queue_t_overload.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
sampler_t.cl [OpenCL] Move addr space deduction to Sema. 2019-11-27 12:44:42 +00:00
sampler_t_overload.cl
shifts.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
sizeof.cl
storageclass-cl20.cl
storageclass.cl
str_literals.cl
to_addr_builtin.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
types.cl
unroll-hint.cl
unsupported.cl
vec_compare.cl
vec_step.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
vector_conv_invalid.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
vector_inc_dec_ops.cl
vector_literals_invalid.cl
vector_swizzle_length.cl
warn-missing-prototypes.cl Suggestions to fix -Wmissing-{prototypes,variable-declarations} 2019-06-18 22:57:08 +00:00