Anastasia added a comment.

After rebase I had to modify the following test:

  Index: test/SemaOpenCLCXX/address_space_overloading.cl
  ===================================================================
  --- test/SemaOpenCLCXX/address_space_overloading.cl   (revision 351746)
  +++ test/SemaOpenCLCXX/address_space_overloading.cl   (working copy)
  @@ -1,12 +1,12 @@
   // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=c++
   
  -// expected-no-diagnostics
  +// FIXME: This test shouldn't trigger any errors.
   
   struct RetGlob {
     int dummy;
   };
   
  -struct RetGen {
  +struct RetGen { //expected-error{{binding value of type '__generic RetGen' 
to reference to type 'RetGen' drops <<ERROR>> qualifiers}}
     char dummy;
   };
   
  @@ -19,5 +19,5 @@
     __local int *ArgLoc;
     RetGlob TestGlob = foo(ArgGlob);
     RetGen TestGen = foo(ArgGen);
  -  TestGen = foo(ArgLoc);
  +  TestGen = foo(ArgLoc); //expected-note{{in implicit copy assignment 
operator for 'RetGen' first required here}}
   }

After looking at it, I realized that there is another un-handled path for 
address spaces in the initialization sequence. That gets hit during the 
creation of a return statement when we define implicit copy assignment. 
assignment. As a result I end up with the following incorrect AST:

  UnaryOperator 0x75a910 '__generic struct RetGen' lvalue prefix '*' cannot 
overflow
  `-CXXThisExpr 0x75a900 '__generic struct RetGen *' this

As I wasn't sure whether I should fix the initialization sequence again by 
splitting the address space conversion to move it to a later step or just fix 
the type of *this expr, I will upload a separate fix for this instead of 
reopening this review.

The overloading resolution seems to work fine at least which is what this test 
is supposed to check.


Repository:
  rC Clang

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

https://reviews.llvm.org/D55850



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

Reply via email to