Re: r368561 - [OpenCL] Ignore parentheses for sampler initialization

2019-08-14 Thread Hans Wennborg via cfe-commits
Yes, merged in r368843.

Thanks,
Hans

On Tue, Aug 13, 2019 at 6:20 PM Anastasia Stulova
 wrote:
>
> Hi Hans,
>
>
> Can this be merged into the release 9.0 branch please?
>
>
> Thank you!
> Anastasia
>
> 
> From: cfe-commits  on behalf of Sven van 
> Haastregt via cfe-commits 
> Sent: 12 August 2019 13:44
> To: cfe-commits@lists.llvm.org 
> Subject: r368561 - [OpenCL] Ignore parentheses for sampler initialization
>
> Author: svenvh
> Date: Mon Aug 12 05:44:26 2019
> New Revision: 368561
>
> URL: http://llvm.org/viewvc/llvm-project?rev=368561=rev
> Log:
> [OpenCL] Ignore parentheses for sampler initialization
>
> The sampler handling logic in SemaInit.cpp would inadvertently treat
> parentheses around sampler arguments as an implicit cast, leading to
> an unreachable "can't implicitly cast lvalue to rvalue with
> this cast kind".  Fix by ignoring parentheses once we are in the
> sampler initializer case.
>
> Differential Revision: https://reviews.llvm.org/D66080
>
> Modified:
> cfe/trunk/lib/Sema/SemaInit.cpp
> cfe/trunk/test/SemaOpenCL/sampler_t.cl
>
> Modified: cfe/trunk/lib/Sema/SemaInit.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=368561=368560=368561=diff
> ==
> --- cfe/trunk/lib/Sema/SemaInit.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaInit.cpp Mon Aug 12 05:44:26 2019
> @@ -8248,7 +8248,7 @@ ExprResult InitializationSequence::Perfo
>// argument passing.
>assert(Step->Type->isSamplerT() &&
>   "Sampler initialization on non-sampler type.");
> -  Expr *Init = CurInit.get();
> +  Expr *Init = CurInit.get()->IgnoreParens();
>QualType SourceType = Init->getType();
>// Case 1
>if (Entity.isParameterKind()) {
>
> Modified: cfe/trunk/test/SemaOpenCL/sampler_t.cl
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/sampler_t.cl?rev=368561=368560=368561=diff
> ==
> --- cfe/trunk/test/SemaOpenCL/sampler_t.cl (original)
> +++ cfe/trunk/test/SemaOpenCL/sampler_t.cl Mon Aug 12 05:44:26 2019
> @@ -10,6 +10,9 @@
>  #define CLK_FILTER_NEAREST  0x10
>  #define CLK_FILTER_LINEAR   0x20
>
> +typedef float float4 __attribute__((ext_vector_type(4)));
> +float4 read_imagef(read_only image1d_t, sampler_t, float);
> +
>  constant sampler_t glb_smp = CLK_ADDRESS_CLAMP_TO_EDGE | 
> CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_LINEAR;
>  constant sampler_t glb_smp2; // expected-error{{variable in constant address 
> space must be initialized}}
>  global sampler_t glb_smp3 = CLK_ADDRESS_CLAMP_TO_EDGE | 
> CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_NEAREST; // expected-error{{sampler 
> type cannot be used with the __local and __global address space qualifiers}} 
> expected-error {{global sampler requires a const or constant address space 
> qualifier}}
> @@ -74,3 +77,7 @@ void bar() {
>foo(smp1+1); //expected-error{{invalid operands to binary expression 
> ('sampler_t' and 'int')}}
>  }
>
> +void smp_args(read_only image1d_t image) {
> +  // Test that parentheses around sampler arguments are ignored.
> +  float4 res = read_imagef(image, (glb_smp10), 0.0f);
> +}
>
>
> ___
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
> IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose the 
> contents to any other person, use it for any purpose, or store or copy the 
> information in any medium. Thank you.
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r368561 - [OpenCL] Ignore parentheses for sampler initialization

2019-08-13 Thread Anastasia Stulova via cfe-commits
Hi Hans,


Can this be merged into the release 9.0 branch please?

Thank you!
Anastasia


From: cfe-commits  on behalf of Sven van 
Haastregt via cfe-commits 
Sent: 12 August 2019 13:44
To: cfe-commits@lists.llvm.org 
Subject: r368561 - [OpenCL] Ignore parentheses for sampler initialization

Author: svenvh
Date: Mon Aug 12 05:44:26 2019
New Revision: 368561

URL: http://llvm.org/viewvc/llvm-project?rev=368561=rev
Log:
[OpenCL] Ignore parentheses for sampler initialization

The sampler handling logic in SemaInit.cpp would inadvertently treat
parentheses around sampler arguments as an implicit cast, leading to
an unreachable "can't implicitly cast lvalue to rvalue with
this cast kind".  Fix by ignoring parentheses once we are in the
sampler initializer case.

Differential Revision: https://reviews.llvm.org/D66080

Modified:
cfe/trunk/lib/Sema/SemaInit.cpp
cfe/trunk/test/SemaOpenCL/sampler_t.cl

Modified: cfe/trunk/lib/Sema/SemaInit.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=368561=368560=368561=diff
==
--- cfe/trunk/lib/Sema/SemaInit.cpp (original)
+++ cfe/trunk/lib/Sema/SemaInit.cpp Mon Aug 12 05:44:26 2019
@@ -8248,7 +8248,7 @@ ExprResult InitializationSequence::Perfo
   // argument passing.
   assert(Step->Type->isSamplerT() &&
  "Sampler initialization on non-sampler type.");
-  Expr *Init = CurInit.get();
+  Expr *Init = CurInit.get()->IgnoreParens();
   QualType SourceType = Init->getType();
   // Case 1
   if (Entity.isParameterKind()) {

Modified: cfe/trunk/test/SemaOpenCL/sampler_t.cl
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/sampler_t.cl?rev=368561=368560=368561=diff
==
--- cfe/trunk/test/SemaOpenCL/sampler_t.cl (original)
+++ cfe/trunk/test/SemaOpenCL/sampler_t.cl Mon Aug 12 05:44:26 2019
@@ -10,6 +10,9 @@
 #define CLK_FILTER_NEAREST  0x10
 #define CLK_FILTER_LINEAR   0x20

+typedef float float4 __attribute__((ext_vector_type(4)));
+float4 read_imagef(read_only image1d_t, sampler_t, float);
+
 constant sampler_t glb_smp = CLK_ADDRESS_CLAMP_TO_EDGE | 
CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_LINEAR;
 constant sampler_t glb_smp2; // expected-error{{variable in constant address 
space must be initialized}}
 global sampler_t glb_smp3 = CLK_ADDRESS_CLAMP_TO_EDGE | 
CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_NEAREST; // expected-error{{sampler 
type cannot be used with the __local and __global address space qualifiers}} 
expected-error {{global sampler requires a const or constant address space 
qualifier}}
@@ -74,3 +77,7 @@ void bar() {
   foo(smp1+1); //expected-error{{invalid operands to binary expression 
('sampler_t' and 'int')}}
 }

+void smp_args(read_only image1d_t image) {
+  // Test that parentheses around sampler arguments are ignored.
+  float4 res = read_imagef(image, (glb_smp10), 0.0f);
+}


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r368561 - [OpenCL] Ignore parentheses for sampler initialization

2019-08-12 Thread Sven van Haastregt via cfe-commits
Author: svenvh
Date: Mon Aug 12 05:44:26 2019
New Revision: 368561

URL: http://llvm.org/viewvc/llvm-project?rev=368561=rev
Log:
[OpenCL] Ignore parentheses for sampler initialization

The sampler handling logic in SemaInit.cpp would inadvertently treat
parentheses around sampler arguments as an implicit cast, leading to
an unreachable "can't implicitly cast lvalue to rvalue with
this cast kind".  Fix by ignoring parentheses once we are in the
sampler initializer case.

Differential Revision: https://reviews.llvm.org/D66080

Modified:
cfe/trunk/lib/Sema/SemaInit.cpp
cfe/trunk/test/SemaOpenCL/sampler_t.cl

Modified: cfe/trunk/lib/Sema/SemaInit.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=368561=368560=368561=diff
==
--- cfe/trunk/lib/Sema/SemaInit.cpp (original)
+++ cfe/trunk/lib/Sema/SemaInit.cpp Mon Aug 12 05:44:26 2019
@@ -8248,7 +8248,7 @@ ExprResult InitializationSequence::Perfo
   // argument passing.
   assert(Step->Type->isSamplerT() &&
  "Sampler initialization on non-sampler type.");
-  Expr *Init = CurInit.get();
+  Expr *Init = CurInit.get()->IgnoreParens();
   QualType SourceType = Init->getType();
   // Case 1
   if (Entity.isParameterKind()) {

Modified: cfe/trunk/test/SemaOpenCL/sampler_t.cl
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/sampler_t.cl?rev=368561=368560=368561=diff
==
--- cfe/trunk/test/SemaOpenCL/sampler_t.cl (original)
+++ cfe/trunk/test/SemaOpenCL/sampler_t.cl Mon Aug 12 05:44:26 2019
@@ -10,6 +10,9 @@
 #define CLK_FILTER_NEAREST  0x10
 #define CLK_FILTER_LINEAR   0x20
 
+typedef float float4 __attribute__((ext_vector_type(4)));
+float4 read_imagef(read_only image1d_t, sampler_t, float);
+
 constant sampler_t glb_smp = CLK_ADDRESS_CLAMP_TO_EDGE | 
CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_LINEAR;
 constant sampler_t glb_smp2; // expected-error{{variable in constant address 
space must be initialized}}
 global sampler_t glb_smp3 = CLK_ADDRESS_CLAMP_TO_EDGE | 
CLK_NORMALIZED_COORDS_TRUE | CLK_FILTER_NEAREST; // expected-error{{sampler 
type cannot be used with the __local and __global address space qualifiers}} 
expected-error {{global sampler requires a const or constant address space 
qualifier}}
@@ -74,3 +77,7 @@ void bar() {
   foo(smp1+1); //expected-error{{invalid operands to binary expression 
('sampler_t' and 'int')}}
 }
 
+void smp_args(read_only image1d_t image) {
+  // Test that parentheses around sampler arguments are ignored.
+  float4 res = read_imagef(image, (glb_smp10), 0.0f);
+}


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits