sidorovd marked an inline comment as done.
sidorovd added inline comments.

================
Comment at: test/SemaOpenCL/extension-begin.cl:26
+
 #ifndef IMPLICIT_INCLUDE
 #include "extension-begin.h"
----------------
Anastasia wrote:
> sidorovd wrote:
> > Anastasia wrote:
> > > sidorovd wrote:
> > > > Anastasia wrote:
> > > > > Can we also test that macro `my_ext` is not defined here but defined 
> > > > > above?
> > > > > 
> > > > > It seems we are not testing anything like this...
> > > > #pragma OPENCL EXTENSION my_ext : begin doesn't define an appropriate 
> > > > macro. And so cl-ext=+my_ext.
> > > But don't you need to expose the definition of it?
> > Certainly I need, but now the only proper way to do so is by adding an 
> > extension via adding it in OpenCLExtensions.def. Previously we decided to 
> > avoid adding an extension directly into clang, so with a new approach I'd 
> > prefer not to add a definition of the macro in the header but define it 
> > somewhere else, otherwise the macro becomes defined  where it's not 
> > supposed to be (even for ARM and AMD =) ). 
> However, my understanding is that you should define the macro when you define 
> the extension itself.
> 
> 
> ```
> #pragma OPENCL EXTENSION my_ext : begin
> #define my_ext
> ...
> #pragma OPENCL EXTENSION my_ext : end
> ```
> 
> does it not work for you?
```
#pragma OPENCL EXTENSION my_ext : begin
#define my_ext
...
#pragma OPENCL EXTENSION my_ext : end
```
 ^
 I
 It defines the macro regardless begin : end range, so one can consider that 
it's the same code as:

```
#define my_ext
#pragma OPENCL EXTENSION my_ext : begin
...
#pragma OPENCL EXTENSION my_ext : end
```

I agree, that it's a better way to define a macro with defining an appropriate 
extension itself, but it makes it be defined where it's not supposed to be (at 
least from my perspective).

To sum up:
1. #pragma OPENCL EXTENSION my_ext : begin ... end  - makes an extension known 
for clang if the header included and if the extension enabled; doesn't affect a 
macro definition anyhow;
2.  OPENCLEXT_INTERNAL(my_ext, *version*, ~0U) -  makes an extension known for 
clang and defines an appropriate macro if the extension enabled.

I believe we are okay not to define cl_intel_planar_yuv macro in the header - 
just make the extension known for clang. 


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58666/new/

https://reviews.llvm.org/D58666



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

Reply via email to