[clang] 869d17d - [OpenCL] Pretty print __private addr space

Anastasia Stulova via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 27 05:42:39 PST 2019


Author: Anastasia Stulova
Date: 2019-12-27T13:42:07Z
New Revision: 869d17d851ba08fc35ade3d1077b4986de401e89

URL: https://github.com/llvm/llvm-project/commit/869d17d851ba08fc35ade3d1077b4986de401e89
DIFF: https://github.com/llvm/llvm-project/commit/869d17d851ba08fc35ade3d1077b4986de401e89.diff

LOG: [OpenCL] Pretty print __private addr space

Add printing of __private address space to TypePrinter to allow
it appears in diagnostics and AST dumps as all other language
addr spaces.

Tags: #clang

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

Added: 
    

Modified: 
    clang/lib/AST/TypePrinter.cpp
    clang/lib/Sema/SemaDecl.cpp
    clang/test/AST/language_address_space_attribute.cpp
    clang/test/Index/opencl-types.cl
    clang/test/Parser/opencl-astype.cl
    clang/test/Parser/opencl-atomics-cl20.cl
    clang/test/SemaOpenCL/access-qualifier.cl
    clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
    clang/test/SemaOpenCL/address-spaces.cl
    clang/test/SemaOpenCL/arithmetic-conversions.cl
    clang/test/SemaOpenCL/as_type.cl
    clang/test/SemaOpenCL/atomic-ops.cl
    clang/test/SemaOpenCL/cl20-device-side-enqueue.cl
    clang/test/SemaOpenCL/clk_event_t.cl
    clang/test/SemaOpenCL/event_t.cl
    clang/test/SemaOpenCL/extension-begin.cl
    clang/test/SemaOpenCL/half.cl
    clang/test/SemaOpenCL/images.cl
    clang/test/SemaOpenCL/intel-subgroup-avc-ext-types.cl
    clang/test/SemaOpenCL/invalid-block.cl
    clang/test/SemaOpenCL/invalid-image.cl
    clang/test/SemaOpenCL/invalid-kernel-parameters.cl
    clang/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
    clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl
    clang/test/SemaOpenCL/null_literal.cl
    clang/test/SemaOpenCL/null_queue.cl
    clang/test/SemaOpenCL/predefined-expr.cl
    clang/test/SemaOpenCL/queue_t_overload.cl
    clang/test/SemaOpenCL/shifts.cl
    clang/test/SemaOpenCL/to_addr_builtin.cl
    clang/test/SemaOpenCL/vec_step.cl
    clang/test/SemaOpenCL/vector_conv_invalid.cl
    clang/test/SemaOpenCLCXX/address-space-deduction.cl
    clang/test/SemaOpenCLCXX/address-space-lambda.cl
    clang/test/SemaOpenCLCXX/address-space-templates.cl
    clang/test/SemaOpenCLCXX/addrspace-auto.cl

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/TypePrinter.cpp b/clang/lib/AST/TypePrinter.cpp
index be23a497577e..c2f4baec989e 100644
--- a/clang/lib/AST/TypePrinter.cpp
+++ b/clang/lib/AST/TypePrinter.cpp
@@ -1784,7 +1784,7 @@ std::string Qualifiers::getAddrSpaceAsString(LangAS AS) {
   case LangAS::opencl_local:
     return "__local";
   case LangAS::opencl_private:
-    return "";
+    return "__private";
   case LangAS::opencl_constant:
     return "__constant";
   case LangAS::opencl_generic:

diff  --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 8f68be716bd3..9ca7a80d3ada 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -8381,7 +8381,7 @@ static bool isOpenCLSizeDependentType(ASTContext &C, QualType Ty) {
   QualType DesugaredTy = Ty;
   do {
     ArrayRef<StringRef> Names(SizeTypeNames);
-    auto Match = llvm::find(Names, DesugaredTy.getAsString());
+    auto Match = llvm::find(Names, DesugaredTy.getUnqualifiedType().getAsString());
     if (Names.end() != Match)
       return true;
 

diff  --git a/clang/test/AST/language_address_space_attribute.cpp b/clang/test/AST/language_address_space_attribute.cpp
index 7c6bdca06c06..f9ab4612320b 100644
--- a/clang/test/AST/language_address_space_attribute.cpp
+++ b/clang/test/AST/language_address_space_attribute.cpp
@@ -22,10 +22,10 @@ void langas() {
   // CHECK: VarDecl {{.*}} z_constant '__constant int *'
   [[clang::opencl_constant]] int *z_constant;
 
-  // CHECK: VarDecl {{.*}} x_private 'int *'
+  // CHECK: VarDecl {{.*}} x_private '__private int *'
   __attribute__((opencl_private)) int *x_private;
 
-  // CHECK: VarDecl {{.*}} z_private 'int *'
+  // CHECK: VarDecl {{.*}} z_private '__private int *'
   [[clang::opencl_private]] int *z_private;
 
   // CHECK: VarDecl {{.*}} x_generic '__generic int *'

diff  --git a/clang/test/Index/opencl-types.cl b/clang/test/Index/opencl-types.cl
index e132c9d05ac8..496f38752fa2 100644
--- a/clang/test/Index/opencl-types.cl
+++ b/clang/test/Index/opencl-types.cl
@@ -16,12 +16,12 @@ void kernel testFloatTypes() {
   double4 vectorDouble;
 }
 
-// CHECK: VarDecl=scalarHalf:11:8 (Definition){{( \(invalid\))?}} [type=half] [typekind=Half] [isPOD=1]
-// CHECK: VarDecl=vectorHalf:12:9 (Definition) [type=half4] [typekind=Typedef] [canonicaltype=half __attribute__((ext_vector_type(4)))] [canonicaltypekind=ExtVector] [isPOD=1]
-// CHECK: VarDecl=scalarFloat:13:9 (Definition) [type=float] [typekind=Float] [isPOD=1]
-// CHECK: VarDecl=vectorFloat:14:10 (Definition) [type=float4] [typekind=Typedef] [canonicaltype=float __attribute__((ext_vector_type(4)))] [canonicaltypekind=ExtVector] [isPOD=1]
-// CHECK: VarDecl=scalarDouble:15:10 (Definition){{( \(invalid\))?}} [type=double] [typekind=Double] [isPOD=1]
-// CHECK: VarDecl=vectorDouble:16:11 (Definition){{( \(invalid\))?}} [type=double4] [typekind=Typedef] [canonicaltype=double __attribute__((ext_vector_type(4)))] [canonicaltypekind=ExtVector] [isPOD=1]
+// CHECK: VarDecl=scalarHalf:11:8 (Definition){{( \(invalid\))?}} [type=__private half] [typekind=Half] [isPOD=1]
+// CHECK: VarDecl=vectorHalf:12:9 (Definition) [type=__private half4] [typekind=Typedef] [canonicaltype=half __private __attribute__((ext_vector_type(4)))] [canonicaltypekind=ExtVector] [isPOD=1]
+// CHECK: VarDecl=scalarFloat:13:9 (Definition) [type=__private float] [typekind=Float] [isPOD=1]
+// CHECK: VarDecl=vectorFloat:14:10 (Definition) [type=__private float4] [typekind=Typedef] [canonicaltype=float __private __attribute__((ext_vector_type(4)))] [canonicaltypekind=ExtVector] [isPOD=1]
+// CHECK: VarDecl=scalarDouble:15:10 (Definition){{( \(invalid\))?}} [type=__private double] [typekind=Double] [isPOD=1]
+// CHECK: VarDecl=vectorDouble:16:11 (Definition){{( \(invalid\))?}} [type=__private double4] [typekind=Typedef] [canonicaltype=double __private __attribute__((ext_vector_type(4)))] [canonicaltypekind=ExtVector] [isPOD=1]
 
 #pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
 
@@ -38,18 +38,18 @@ void kernel OCLImage2dMSAADepthROTest(read_only image2d_msaa_depth_t scalarOCLIm
 void kernel OCLImage2dArrayMSAADepthROTest(read_only image2d_array_msaa_depth_t scalarOCLImage2dArrayMSAADepthRO);
 void kernel OCLImage3dROTest(read_only image3d_t scalarOCLImage3dRO);
 
-// CHECK: ParmDecl=scalarOCLImage1dRO:28:50 (Definition) [type=__read_only image1d_t] [typekind=OCLImage1dRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage1dArrayRO:29:61 (Definition) [type=__read_only image1d_array_t] [typekind=OCLImage1dArrayRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage1dBufferRO:30:63 (Definition) [type=__read_only image1d_buffer_t] [typekind=OCLImage1dBufferRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dRO:31:50 (Definition) [type=__read_only image2d_t] [typekind=OCLImage2dRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayRO:32:61 (Definition) [type=__read_only image2d_array_t] [typekind=OCLImage2dArrayRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dDepthRO:33:61 (Definition) [type=__read_only image2d_depth_t] [typekind=OCLImage2dDepthRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayDepthRO:34:72 (Definition) [type=__read_only image2d_array_depth_t] [typekind=OCLImage2dArrayDepthRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dMSAARO:35:59 (Definition){{( \(invalid\))?}} [type=__read_only image2d_msaa_t] [typekind=OCLImage2dMSAARO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayMSAARO:36:70 (Definition){{( \(invalid\))?}} [type=__read_only image2d_array_msaa_t] [typekind=OCLImage2dArrayMSAARO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dMSAADepthRO:37:70 (Definition){{( \(invalid\))?}} [type=__read_only image2d_msaa_depth_t] [typekind=OCLImage2dMSAADepthRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayMSAADepthRO:38:81 (Definition){{( \(invalid\))?}} [type=__read_only image2d_array_msaa_depth_t] [typekind=OCLImage2dArrayMSAADepthRO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage3dRO:39:50 (Definition) [type=__read_only image3d_t] [typekind=OCLImage3dRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dRO:28:50 (Definition) [type=__private __read_only image1d_t] [typekind=OCLImage1dRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dArrayRO:29:61 (Definition) [type=__private __read_only image1d_array_t] [typekind=OCLImage1dArrayRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dBufferRO:30:63 (Definition) [type=__private __read_only image1d_buffer_t] [typekind=OCLImage1dBufferRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dRO:31:50 (Definition) [type=__private __read_only image2d_t] [typekind=OCLImage2dRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayRO:32:61 (Definition) [type=__private __read_only image2d_array_t] [typekind=OCLImage2dArrayRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dDepthRO:33:61 (Definition) [type=__private __read_only image2d_depth_t] [typekind=OCLImage2dDepthRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayDepthRO:34:72 (Definition) [type=__private __read_only image2d_array_depth_t] [typekind=OCLImage2dArrayDepthRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dMSAARO:35:59 (Definition){{( \(invalid\))?}} [type=__private __read_only image2d_msaa_t] [typekind=OCLImage2dMSAARO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayMSAARO:36:70 (Definition){{( \(invalid\))?}} [type=__private __read_only image2d_array_msaa_t] [typekind=OCLImage2dArrayMSAARO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dMSAADepthRO:37:70 (Definition){{( \(invalid\))?}} [type=__private __read_only image2d_msaa_depth_t] [typekind=OCLImage2dMSAADepthRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayMSAADepthRO:38:81 (Definition){{( \(invalid\))?}} [type=__private __read_only image2d_array_msaa_depth_t] [typekind=OCLImage2dArrayMSAADepthRO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage3dRO:39:50 (Definition) [type=__private __read_only image3d_t] [typekind=OCLImage3dRO] [isPOD=1]
 
 void kernel OCLImage1dWOTest(write_only image1d_t scalarOCLImage1dWO);
 void kernel OCLImage1dArrayWOTest(write_only image1d_array_t scalarOCLImage1dArrayWO);
@@ -64,18 +64,18 @@ void kernel OCLImage2dMSAADepthWOTest(write_only image2d_msaa_depth_t scalarOCLI
 void kernel OCLImage2dArrayMSAADepthWOTest(write_only image2d_array_msaa_depth_t scalarOCLImage2dArrayMSAADepthWO);
 void kernel OCLImage3dWOTest(write_only image3d_t scalarOCLImage3dWO);
 
-// CHECK: ParmDecl=scalarOCLImage1dWO:54:51 (Definition) [type=__write_only image1d_t] [typekind=OCLImage1dWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage1dArrayWO:55:62 (Definition) [type=__write_only image1d_array_t] [typekind=OCLImage1dArrayWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage1dBufferWO:56:64 (Definition) [type=__write_only image1d_buffer_t] [typekind=OCLImage1dBufferWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dWO:57:51 (Definition) [type=__write_only image2d_t] [typekind=OCLImage2dWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayWO:58:62 (Definition) [type=__write_only image2d_array_t] [typekind=OCLImage2dArrayWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dDepthWO:59:62 (Definition) [type=__write_only image2d_depth_t] [typekind=OCLImage2dDepthWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayDepthWO:60:73 (Definition) [type=__write_only image2d_array_depth_t] [typekind=OCLImage2dArrayDepthWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dMSAAWO:61:60 (Definition){{( \(invalid\))?}} [type=__write_only image2d_msaa_t] [typekind=OCLImage2dMSAAWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayMSAAWO:62:71 (Definition){{( \(invalid\))?}} [type=__write_only image2d_array_msaa_t] [typekind=OCLImage2dArrayMSAAWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dMSAADepthWO:63:71 (Definition){{( \(invalid\))?}} [type=__write_only image2d_msaa_depth_t] [typekind=OCLImage2dMSAADepthWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayMSAADepthWO:64:82 (Definition){{( \(invalid\))?}} [type=__write_only image2d_array_msaa_depth_t] [typekind=OCLImage2dArrayMSAADepthWO] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage3dWO:65:51 (Definition){{( \(invalid\))?}} [type=__write_only image3d_t] [typekind=OCLImage3dWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dWO:54:51 (Definition) [type=__private __write_only image1d_t] [typekind=OCLImage1dWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dArrayWO:55:62 (Definition) [type=__private __write_only image1d_array_t] [typekind=OCLImage1dArrayWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dBufferWO:56:64 (Definition) [type=__private __write_only image1d_buffer_t] [typekind=OCLImage1dBufferWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dWO:57:51 (Definition) [type=__private __write_only image2d_t] [typekind=OCLImage2dWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayWO:58:62 (Definition) [type=__private __write_only image2d_array_t] [typekind=OCLImage2dArrayWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dDepthWO:59:62 (Definition) [type=__private __write_only image2d_depth_t] [typekind=OCLImage2dDepthWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayDepthWO:60:73 (Definition) [type=__private __write_only image2d_array_depth_t] [typekind=OCLImage2dArrayDepthWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dMSAAWO:61:60 (Definition){{( \(invalid\))?}} [type=__private __write_only image2d_msaa_t] [typekind=OCLImage2dMSAAWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayMSAAWO:62:71 (Definition){{( \(invalid\))?}} [type=__private __write_only image2d_array_msaa_t] [typekind=OCLImage2dArrayMSAAWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dMSAADepthWO:63:71 (Definition){{( \(invalid\))?}} [type=__private __write_only image2d_msaa_depth_t] [typekind=OCLImage2dMSAADepthWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayMSAADepthWO:64:82 (Definition){{( \(invalid\))?}} [type=__private __write_only image2d_array_msaa_depth_t] [typekind=OCLImage2dArrayMSAADepthWO] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage3dWO:65:51 (Definition){{( \(invalid\))?}} [type=__private __write_only image3d_t] [typekind=OCLImage3dWO] [isPOD=1]
 
 void kernel OCLImage1dRWTest(read_write image1d_t scalarOCLImage1dRW);
 void kernel OCLImage1dArrayRWTest(read_write image1d_array_t scalarOCLImage1dArrayRW);
@@ -90,24 +90,24 @@ void kernel OCLImage2dMSAADepthRWTest(read_write image2d_msaa_depth_t scalarOCLI
 void kernel OCLImage2dArrayMSAADepthRWTest(read_write image2d_array_msaa_depth_t scalarOCLImage2dArrayMSAADepthRW);
 void kernel OCLImage3dRWTest(read_write image3d_t scalarOCLImage3dRW);
 
-// CHECK: ParmDecl=scalarOCLImage1dRW:80:51 (Definition) [type=__read_write image1d_t] [typekind=OCLImage1dRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage1dArrayRW:81:62 (Definition) [type=__read_write image1d_array_t] [typekind=OCLImage1dArrayRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage1dBufferRW:82:64 (Definition) [type=__read_write image1d_buffer_t] [typekind=OCLImage1dBufferRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dRW:83:51 (Definition) [type=__read_write image2d_t] [typekind=OCLImage2dRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayRW:84:62 (Definition) [type=__read_write image2d_array_t] [typekind=OCLImage2dArrayRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dDepthRW:85:62 (Definition) [type=__read_write image2d_depth_t] [typekind=OCLImage2dDepthRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayDepthRW:86:73 (Definition) [type=__read_write image2d_array_depth_t] [typekind=OCLImage2dArrayDepthRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dMSAARW:87:60 (Definition){{( \(invalid\))?}} [type=__read_write image2d_msaa_t] [typekind=OCLImage2dMSAARW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayMSAARW:88:71 (Definition){{( \(invalid\))?}} [type=__read_write image2d_array_msaa_t] [typekind=OCLImage2dArrayMSAARW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dMSAADepthRW:89:71 (Definition){{( \(invalid\))?}} [type=__read_write image2d_msaa_depth_t] [typekind=OCLImage2dMSAADepthRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage2dArrayMSAADepthRW:90:82 (Definition){{( \(invalid\))?}} [type=__read_write image2d_array_msaa_depth_t] [typekind=OCLImage2dArrayMSAADepthRW] [isPOD=1]
-// CHECK: ParmDecl=scalarOCLImage3dRW:91:51 (Definition) [type=__read_write image3d_t] [typekind=OCLImage3dRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dRW:80:51 (Definition) [type=__private __read_write image1d_t] [typekind=OCLImage1dRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dArrayRW:81:62 (Definition) [type=__private __read_write image1d_array_t] [typekind=OCLImage1dArrayRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage1dBufferRW:82:64 (Definition) [type=__private __read_write image1d_buffer_t] [typekind=OCLImage1dBufferRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dRW:83:51 (Definition) [type=__private __read_write image2d_t] [typekind=OCLImage2dRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayRW:84:62 (Definition) [type=__private __read_write image2d_array_t] [typekind=OCLImage2dArrayRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dDepthRW:85:62 (Definition) [type=__private __read_write image2d_depth_t] [typekind=OCLImage2dDepthRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayDepthRW:86:73 (Definition) [type=__private __read_write image2d_array_depth_t] [typekind=OCLImage2dArrayDepthRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dMSAARW:87:60 (Definition){{( \(invalid\))?}} [type=__private __read_write image2d_msaa_t] [typekind=OCLImage2dMSAARW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayMSAARW:88:71 (Definition){{( \(invalid\))?}} [type=__private __read_write image2d_array_msaa_t] [typekind=OCLImage2dArrayMSAARW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dMSAADepthRW:89:71 (Definition){{( \(invalid\))?}} [type=__private __read_write image2d_msaa_depth_t] [typekind=OCLImage2dMSAADepthRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage2dArrayMSAADepthRW:90:82 (Definition){{( \(invalid\))?}} [type=__private __read_write image2d_array_msaa_depth_t] [typekind=OCLImage2dArrayMSAADepthRW] [isPOD=1]
+// CHECK: ParmDecl=scalarOCLImage3dRW:91:51 (Definition) [type=__private __read_write image3d_t] [typekind=OCLImage3dRW] [isPOD=1]
 
 void kernel intPipeTestRO(read_only pipe int scalarPipe);
 void kernel intPipeTestWO(write_only pipe int scalarPipe);
 
-// CHECK: ParmDecl=scalarPipe:106:46 (Definition) [type=read_only pipe int] [typekind=Pipe] [isPOD=0]
-// CHECK: ParmDecl=scalarPipe:107:47 (Definition) [type=write_only pipe int] [typekind=Pipe] [isPOD=0]
+// CHECK: ParmDecl=scalarPipe:106:46 (Definition) [type=__private read_only pipe int] [typekind=Pipe] [isPOD=0]
+// CHECK: ParmDecl=scalarPipe:107:47 (Definition) [type=__private write_only pipe int] [typekind=Pipe] [isPOD=0]
 
 #define CLK_ADDRESS_CLAMP_TO_EDGE       2
 #define CLK_NORMALIZED_COORDS_TRUE      1
@@ -121,9 +121,9 @@ void kernel testMiscOpenCLTypes() {
 }
 
 // CHECK: VarDecl=scalarOCLSampler:117:19 (Definition) [type=const sampler_t] [typekind=Typedef] const [canonicaltype=const sampler_t] [canonicaltypekind=OCLSampler] [isPOD=1]
-// CHECK: VarDecl=scalarOCLEvent:118:15 (Definition) [type=clk_event_t] [typekind=Typedef] [canonicaltype=clk_event_t] [canonicaltypekind=Unexposed] [isPOD=1]
-// CHECK: VarDecl=scalarOCLQueue:119:11 (Definition) [type=queue_t] [typekind=Typedef] [canonicaltype=queue_t] [canonicaltypekind=OCLQueue] [isPOD=1]
-// CHECK: VarDecl=scalarOCLReserveID:120:16 (Definition) [type=reserve_id_t] [typekind=Typedef] [canonicaltype=reserve_id_t] [canonicaltypekind=OCLReserveID] [isPOD=1]
+// CHECK: VarDecl=scalarOCLEvent:118:15 (Definition) [type=__private clk_event_t] [typekind=Typedef] [canonicaltype=__private clk_event_t] [canonicaltypekind=Unexposed] [isPOD=1]
+// CHECK: VarDecl=scalarOCLQueue:119:11 (Definition) [type=__private queue_t] [typekind=Typedef] [canonicaltype=__private queue_t] [canonicaltypekind=OCLQueue] [isPOD=1]
+// CHECK: VarDecl=scalarOCLReserveID:120:16 (Definition) [type=__private reserve_id_t] [typekind=Typedef] [canonicaltype=__private reserve_id_t] [canonicaltypekind=OCLReserveID] [isPOD=1]
 
 #pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : enable
 
@@ -131,4 +131,4 @@ void kernel testExtOpenCLTypes() {
   intel_sub_group_avc_mce_payload_t mce_payload;
 }
 
-// CHECK: VarDecl=mce_payload:131:37 (Definition){{( \(invalid\))?}} [type=intel_sub_group_avc_mce_payload_t] [typekind=Typedef] [canonicaltype=intel_sub_group_avc_mce_payload_t] [canonicaltypekind=OCLIntelSubgroupAVCMcePayload] [isPOD=1]
+// CHECK: VarDecl=mce_payload:131:37 (Definition){{( \(invalid\))?}} [type=__private intel_sub_group_avc_mce_payload_t] [typekind=Typedef] [canonicaltype=__private intel_sub_group_avc_mce_payload_t] [canonicaltypekind=OCLIntelSubgroupAVCMcePayload] [isPOD=1]

diff  --git a/clang/test/Parser/opencl-astype.cl b/clang/test/Parser/opencl-astype.cl
index 903c42ee8c14..4a26fb635ddf 100644
--- a/clang/test/Parser/opencl-astype.cl
+++ b/clang/test/Parser/opencl-astype.cl
@@ -11,7 +11,7 @@ void test_astype() {
   typedef __attribute__(( ext_vector_type(4) ))  double double4;
   
   float4 f4;
-  double4 d4 = __builtin_astype(f4, double4); // expected-error{{invalid reinterpretation: sizes of 'double4' (vector of 4 'double' values) and 'float4' (vector of 4 'float' values) must match}}
+  double4 d4 = __builtin_astype(f4, double4); // expected-error{{invalid reinterpretation: sizes of 'double4' (vector of 4 'double' values) and '__private float4' (vector of 4 'float' values) must match}}
   
   // Verify int4->float3, float3->int4 works.
   int4 i4;

diff  --git a/clang/test/Parser/opencl-atomics-cl20.cl b/clang/test/Parser/opencl-atomics-cl20.cl
index ad67db0bab8a..844902e847f7 100644
--- a/clang/test/Parser/opencl-atomics-cl20.cl
+++ b/clang/test/Parser/opencl-atomics-cl20.cl
@@ -66,9 +66,9 @@ void atomic_ops_test() {
   atomic_int i;
   foo(&i);
 // OpenCL v2.0 s6.13.11.8, arithemtic operations are not permitted on atomic types.
-  i++; // expected-error {{invalid argument type 'atomic_int' (aka '_Atomic(int)') to unary expression}}
+  i++; // expected-error {{invalid argument type '__private atomic_int' (aka '__private _Atomic(int)') to unary expression}}
   i = 1; // expected-error {{atomic variable can be assigned to a variable only in global address space}}
-  i += 1; // expected-error {{invalid operands to binary expression ('atomic_int' (aka '_Atomic(int)') and 'int')}}
-  i = i + i; // expected-error {{invalid operands to binary expression ('atomic_int' (aka '_Atomic(int)') and 'atomic_int')}}
+  i += 1; // expected-error {{invalid operands to binary expression ('__private atomic_int' (aka '__private _Atomic(int)') and 'int')}}
+  i = i + i; // expected-error {{invalid operands to binary expression ('__private atomic_int' (aka '__private _Atomic(int)') and '__private atomic_int')}}
 }
 #endif

diff  --git a/clang/test/SemaOpenCL/access-qualifier.cl b/clang/test/SemaOpenCL/access-qualifier.cl
index 1753a1dbefdd..a5e1b65daf70 100644
--- a/clang/test/SemaOpenCL/access-qualifier.cl
+++ b/clang/test/SemaOpenCL/access-qualifier.cl
@@ -25,11 +25,11 @@ void myReadWrite(read_write image1d_t); // expected-error {{access qualifier 're
 
 
 kernel void k1(img1d_wo img) {
-  myRead(img); // expected-error {{passing 'img1d_wo' (aka '__write_only image1d_t') to parameter of incompatible type '__read_only image1d_t'}}
+  myRead(img); // expected-error {{passing '__private img1d_wo' (aka '__private __write_only image1d_t') to parameter of incompatible type '__read_only image1d_t'}}
 }
 
 kernel void k2(img1d_ro img) {
-  myWrite(img); // expected-error {{passing 'img1d_ro' (aka '__read_only image1d_t') to parameter of incompatible type '__write_only image1d_t'}}
+  myWrite(img); // expected-error {{passing '__private img1d_ro' (aka '__private __read_only image1d_t') to parameter of incompatible type '__write_only image1d_t'}}
 }
 
 kernel void k3(img1d_wo img) {
@@ -43,7 +43,7 @@ kernel void k4(img1d_rw img) {
 #endif
 
 kernel void k5(img1d_ro_default img) {
-  myWrite(img); // expected-error {{passing 'img1d_ro_default' (aka '__read_only image1d_t') to parameter of incompatible type '__write_only image1d_t'}}
+  myWrite(img); // expected-error {{passing '__private img1d_ro_default' (aka '__private __read_only image1d_t') to parameter of incompatible type '__write_only image1d_t'}}
 }
 
 kernel void k6(img1d_ro img) {
@@ -71,7 +71,7 @@ kernel void k13(__read_write image1d_t i){} // expected-error{{access qualifier
 #if __OPENCL_C_VERSION__ >= 200
 void myPipeWrite(write_only pipe int); // expected-note {{passing argument to parameter here}}
 kernel void k14(read_only pipe int p) {
-  myPipeWrite(p); // expected-error {{passing 'read_only pipe int' to parameter of incompatible type 'write_only pipe int'}}
+  myPipeWrite(p); // expected-error {{passing '__private read_only pipe int' to parameter of incompatible type 'write_only pipe int'}}
 }
 #endif
 
@@ -93,7 +93,7 @@ kernel void pipe_ro_twice_typedef(read_only ROPipeInt i){} // expected-warning{{
 // expected-note at -2 {{previously declared 'read_only' here}}
 
 kernel void pass_ro_typedef_to_wo(ROPipeInt p) {
-  myPipeWrite(p); // expected-error {{passing 'ROPipeInt' (aka 'read_only pipe int') to parameter of incompatible type 'write_only pipe int'}}
+  myPipeWrite(p); // expected-error {{passing '__private ROPipeInt' (aka '__private read_only pipe int') to parameter of incompatible type 'write_only pipe int'}}
   // expected-note at -25 {{passing argument to parameter here}}
 }
 #endif

diff  --git a/clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl b/clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
index 0209e1ea24de..14f7cf3a0e7e 100644
--- a/clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
+++ b/clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
@@ -66,7 +66,7 @@ void f_priv(__private int *arg_priv) {}
 #if !__OPENCL_CPP_VERSION__
 // expected-note at -2{{passing argument to parameter 'arg_priv' here}}
 #else
-// expected-note-re at -4{{candidate function not viable: cannot pass pointer to address space '__{{global|generic|constant}}' as a pointer to default address space in 1st argument}}
+// expected-note-re at -4{{candidate function not viable: cannot pass pointer to address space '__{{global|generic|constant}}' as a pointer to address space '__private' in 1st argument}}
 #endif
 
 void f_gen(__generic int *arg_gen) {}
@@ -85,45 +85,45 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   AS int *var_init1 = arg_glob;
 #ifdef CONSTANT
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -3{{initializing '__constant int *' with an expression of type '__global int *' changes address space of pointer}}
+// expected-error at -3{{initializing '__constant int *__private' with an expression of type '__global int *__private' changes address space of pointer}}
 #else
-// expected-error at -5{{cannot initialize a variable of type '__constant int *' with an lvalue of type '__global int *'}}
+// expected-error at -5{{cannot initialize a variable of type '__constant int *__private' with an lvalue of type '__global int *__private'}}
 #endif
 #endif
 
   AS int *var_init2 = arg_loc;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{initializing '__{{global|constant}} int *' with an expression of type '__local int *' changes address space of pointer}}
+// expected-error-re at -3{{initializing '__{{global|constant}} int *__private' with an expression of type '__local int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{cannot initialize a variable of type '__{{global|constant}} int *' with an lvalue of type '__local int *'}}
+// expected-error-re at -5{{cannot initialize a variable of type '__{{global|constant}} int *__private' with an lvalue of type '__local int *__private'}}
 #endif
 #endif
 
   AS int *var_init3 = arg_const;
 #ifndef CONSTANT
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{initializing '__{{global|generic}} int *' with an expression of type '__constant int *' changes address space of pointer}}
+// expected-error-re at -3{{initializing '__{{global|generic}} int *__private' with an expression of type '__constant int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{cannot initialize a variable of type '__{{global|generic}} int *' with an lvalue of type '__constant int *'}}
+// expected-error-re at -5{{cannot initialize a variable of type '__{{global|generic}} int *__private' with an lvalue of type '__constant int *__private'}}
 #endif
 #endif
 
   AS int *var_init4 = arg_priv;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{initializing '__{{global|constant}} int *' with an expression of type 'int *' changes address space of pointer}}
+// expected-error-re at -3{{initializing '__{{global|constant}} int *__private' with an expression of type '__private int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{cannot initialize a variable of type '__{{global|constant}} int *' with an lvalue of type 'int *'}}
+// expected-error-re at -5{{cannot initialize a variable of type '__{{global|constant}} int *__private' with an lvalue of type '__private int *__private'}}
 #endif
 #endif
 
   AS int *var_init5 = arg_gen;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{initializing '__{{global|constant}} int *' with an expression of type '__generic int *' changes address space of pointer}}
+// expected-error-re at -3{{initializing '__{{global|constant}} int *__private' with an expression of type '__generic int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{cannot initialize a variable of type '__{{global|constant}} int *' with an lvalue of type '__generic int *'}}
+// expected-error-re at -5{{cannot initialize a variable of type '__{{global|constant}} int *__private' with an lvalue of type '__generic int *__private'}}
 #endif
 #endif
 
@@ -157,9 +157,9 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   AS int *var_cast4 = (AS int *)arg_priv;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{casting 'int *' to type '__{{global|constant}} int *' changes address space of pointer}}
+// expected-error-re at -3{{casting '__private int *' to type '__{{global|constant}} int *' changes address space of pointer}}
 #else
-// expected-error-re at -5{{C-style cast from 'int *' to '__{{global|constant}} int *' converts between mismatching address spaces}}
+// expected-error-re at -5{{C-style cast from '__private int *' to '__{{global|constant}} int *' converts between mismatching address spaces}}
 #endif
 #endif
 
@@ -176,45 +176,45 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   var_impl = arg_glob;
 #ifdef CONSTANT
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -3{{assigning '__global int *' to '__constant int *' changes address space of pointer}}
+// expected-error at -3{{assigning '__global int *__private' to '__constant int *__private' changes address space of pointer}}
 #else
-// expected-error at -5{{assigning to '__constant int *' from incompatible type '__global int *'}}
+// expected-error at -5{{assigning to '__constant int *' from incompatible type '__global int *__private'}}
 #endif
 #endif
 
   var_impl = arg_loc;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{assigning '__local int *' to '__{{global|constant}} int *' changes address space of pointer}}
+// expected-error-re at -3{{assigning '__local int *__private' to '__{{global|constant}} int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{assigning to '__{{global|constant}} int *' from incompatible type '__local int *'}}
+// expected-error-re at -5{{assigning to '__{{global|constant}} int *' from incompatible type '__local int *__private'}}
 #endif
 #endif
 
   var_impl = arg_const;
 #ifndef CONSTANT
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{assigning '__constant int *' to '__{{global|generic}} int *' changes address space of pointer}}
+// expected-error-re at -3{{assigning '__constant int *__private' to '__{{global|generic}} int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{assigning to '__{{global|generic}} int *' from incompatible type '__constant int *'}}
+// expected-error-re at -5{{assigning to '__{{global|generic}} int *' from incompatible type '__constant int *__private'}}
 #endif
 #endif
 
   var_impl = arg_priv;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{assigning 'int *' to '__{{global|constant}} int *' changes address space of pointer}}
+// expected-error-re at -3{{assigning '__private int *__private' to '__{{global|constant}} int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{assigning to '__{{global|constant}} int *' from incompatible type 'int *'}}
+// expected-error-re at -5{{assigning to '__{{global|constant}} int *' from incompatible type '__private int *__private'}}
 #endif
 #endif
 
   var_impl = arg_gen;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{assigning '__generic int *' to '__{{global|constant}} int *' changes address space of pointer}}
+// expected-error-re at -3{{assigning '__generic int *__private' to '__{{global|constant}} int *__private' changes address space of pointer}}
 #else
-// expected-error-re at -5{{assigning to '__{{global|constant}} int *' from incompatible type '__generic int *'}}
+// expected-error-re at -5{{assigning to '__{{global|constant}} int *' from incompatible type '__generic int *__private'}}
 #endif
 #endif
 
@@ -248,9 +248,9 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   var_cast4 = (AS int *)arg_priv;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{casting 'int *' to type '__{{global|constant}} int *' changes address space of pointer}}
+// expected-error-re at -3{{casting '__private int *' to type '__{{global|constant}} int *' changes address space of pointer}}
 #else
-// expected-error-re at -5{{C-style cast from 'int *' to '__{{global|constant}} int *' converts between mismatching address spaces}}
+// expected-error-re at -5{{C-style cast from '__private int *' to '__{{global|constant}} int *' converts between mismatching address spaces}}
 #endif
 #endif
 
@@ -294,9 +294,9 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   b = var_cmp <= arg_priv;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{comparison between  ('__{{global|constant}} int *' and 'int *') which are pointers to non-overlapping address spaces}}
+// expected-error-re at -3{{comparison between  ('__{{global|constant}} int *' and '__private int *') which are pointers to non-overlapping address spaces}}
 #else
-// expected-error-re at -5{{comparison of distinct pointer types ('__{{global|constant}} int *' and 'int *')}}
+// expected-error-re at -5{{comparison of distinct pointer types ('__{{global|constant}} int *' and '__private int *')}}
 #endif
 #endif
 
@@ -327,7 +327,7 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
 
   b = var_sub - arg_priv;
 #ifndef GENERIC
-// expected-error-re at -2{{arithmetic operation with operands of type  ('__{{global|constant}} int *' and 'int *') which are pointers to non-overlapping address spaces}}
+// expected-error-re at -2{{arithmetic operation with operands of type  ('__{{global|constant}} int *' and '__private int *') which are pointers to non-overlapping address spaces}}
 #endif
 
   b = var_sub - arg_gen;
@@ -338,7 +338,7 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   f_glob(var_sub);
 #ifndef GLOBAL
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{passing '__{{constant|generic}} int *' to parameter of type '__global int *' changes address space of pointer}}
+// expected-error-re at -3{{passing '__{{constant|generic}} int *__private' to parameter of type '__global int *' changes address space of pointer}}
 #else
 // expected-error at -5{{no matching function for call to 'f_glob'}}
 #endif
@@ -346,7 +346,7 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
 
   f_loc(var_sub);
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -2{{passing '__{{global|constant|generic}} int *' to parameter of type '__local int *' changes address space of pointer}}
+// expected-error-re at -2{{passing '__{{global|constant|generic}} int *__private' to parameter of type '__local int *' changes address space of pointer}}
 #else
 // expected-error at -4{{no matching function for call to 'f_loc'}}
 #endif
@@ -354,7 +354,7 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   f_const(var_sub);
 #ifndef CONSTANT
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{passing '__{{global|generic}} int *' to parameter of type '__constant int *' changes address space of pointer}}
+// expected-error-re at -3{{passing '__{{global|generic}} int *__private' to parameter of type '__constant int *' changes address space of pointer}}
 #else
 // expected-error at -5{{no matching function for call to 'f_const'}}
 #endif
@@ -362,7 +362,7 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
 
   f_priv(var_sub);
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -2{{passing '__{{global|constant|generic}} int *' to parameter of type 'int *' changes address space of pointer}}
+// expected-error-re at -2{{passing '__{{global|constant|generic}} int *__private' to parameter of type '__private int *' changes address space of pointer}}
 #else
 // expected-error at -4{{no matching function for call to 'f_priv'}}
 #endif
@@ -370,7 +370,7 @@ void test_conversion(__global int *arg_glob, __local int *arg_loc,
   f_gen(var_sub);
 #ifdef CONSTANT
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -3{{passing '__constant int *' to parameter of type '__generic int *' changes address space of pointer}}
+// expected-error at -3{{passing '__constant int *__private' to parameter of type '__generic int *' changes address space of pointer}}
 #else
 // expected-error at -5{{no matching function for call to 'f_gen'}}
 #endif
@@ -414,9 +414,9 @@ void test_ternary() {
   var_gen = 0 ? var_cond : var_priv;
 #ifndef GENERIC
 #if !__OPENCL_CPP_VERSION__
-// expected-error-re at -3{{conditional operator with the second and third operands of type  ('__{{global|constant}} int *' and 'int *') which are pointers to non-overlapping address spaces}}
+// expected-error-re at -3{{conditional operator with the second and third operands of type  ('__{{global|constant}} int *' and '__private int *') which are pointers to non-overlapping address spaces}}
 #else
-// expected-error-re at -5{{incompatible operand types ('__{{global|constant}} int *' and 'int *')}}
+// expected-error-re at -5{{incompatible operand types ('__{{global|constant}} int *' and '__private int *')}}
 #endif
 #endif
 
@@ -470,12 +470,12 @@ void test_ternary() {
   __private char *var_priv_ch;
   var_void_gen = 0 ? var_cond : var_priv_ch;
 #if __OPENCL_CPP_VERSION__
-// expected-error-re at -2{{incompatible operand types ('__{{constant|global|generic}} int *' and 'char *')}}
+// expected-error-re at -2{{incompatible operand types ('__{{constant|global|generic}} int *' and '__private char *')}}
 #else
 #ifndef GENERIC
-// expected-error-re at -5{{conditional operator with the second and third operands of type  ('__{{global|constant}} int *' and 'char *') which are pointers to non-overlapping address spaces}}
+// expected-error-re at -5{{conditional operator with the second and third operands of type  ('__{{global|constant}} int *' and '__private char *') which are pointers to non-overlapping address spaces}}
 #else
-// expected-warning at -7{{pointer type mismatch ('__generic int *' and 'char *')}}
+// expected-warning at -7{{pointer type mismatch ('__generic int *' and '__private char *')}}
 #endif
 #endif
 
@@ -517,7 +517,7 @@ void test_pointer_chains() {
   var_as_as_int = var_asc_asc_int;
 #if !__OPENCL_CPP_VERSION__
 #ifdef GENERIC
-// expected-error at -3 {{assigning '__local int *__local *' to '__generic int *__generic *' changes address space of nested pointer}}
+// expected-error at -3 {{assigning '__local int *__local *__private' to '__generic int *__generic *__private' changes address space of nested pointer}}
 #endif
 #endif
   var_as_as_int = 0 ? var_as_as_int : var_asc_asc_int;

diff  --git a/clang/test/SemaOpenCL/address-spaces.cl b/clang/test/SemaOpenCL/address-spaces.cl
index a28069470177..bc9a07d88704 100644
--- a/clang/test/SemaOpenCL/address-spaces.cl
+++ b/clang/test/SemaOpenCL/address-spaces.cl
@@ -10,15 +10,15 @@ __kernel void foo(__global int *gip) {
 
   int *ip;
 #if ((!__OPENCL_CPP_VERSION__) && (__OPENCL_C_VERSION__ < 200))
-  ip = gip; // expected-error {{assigning '__global int *' to 'int *' changes address space of pointer}}
-  ip = &li; // expected-error {{assigning '__local int *' to 'int *' changes address space of pointer}}
-  ip = &ci; // expected-error {{assigning '__constant int *' to 'int *' changes address space of pointer}}
+  ip = gip; // expected-error {{assigning '__global int *__private' to '__private int *__private' changes address space of pointer}}
+  ip = &li; // expected-error {{assigning '__local int *' to '__private int *__private' changes address space of pointer}}
+  ip = &ci; // expected-error {{assigning '__constant int *' to '__private int *__private' changes address space of pointer}}
 #else
   ip = gip;
   ip = &li;
   ip = &ci;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{assigning '__constant int *' to '__generic int *' changes address space of pointer}}
+// expected-error at -2 {{assigning '__constant int *' to '__generic int *__private' changes address space of pointer}}
 #else
 // expected-error at -4 {{assigning to '__generic int *' from incompatible type '__constant int *'}}
 #endif
@@ -46,9 +46,9 @@ void explicit_cast(__global int *g, __local int *l, __constant int *c, __private
 #endif
   g = (__global int *)p;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting 'int *' to type '__global int *' changes address space of pointer}}
+// expected-error at -2 {{casting '__private int *' to type '__global int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from 'int *' to '__global int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from '__private int *' to '__global int *' converts between mismatching address spaces}}
 #endif
   l = (__local int *)g;
 #if !__OPENCL_CPP_VERSION__
@@ -70,9 +70,9 @@ void explicit_cast(__global int *g, __local int *l, __constant int *c, __private
 #endif
   l = (__local int *)p;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting 'int *' to type '__local int *' changes address space of pointer}}
+// expected-error at -2 {{casting '__private int *' to type '__local int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from 'int *' to '__local int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from '__private int *' to '__local int *' converts between mismatching address spaces}}
 #endif
   c = (__constant int *)g;
 #if !__OPENCL_CPP_VERSION__
@@ -88,33 +88,33 @@ void explicit_cast(__global int *g, __local int *l, __constant int *c, __private
 #endif
   c = (__constant int *)p;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting 'int *' to type '__constant int *' changes address space of pointer}}
+// expected-error at -2 {{casting '__private int *' to type '__constant int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from 'int *' to '__constant int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from '__private int *' to '__constant int *' converts between mismatching address spaces}}
 #endif
   p = (__private int *)g;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting '__global int *' to type 'int *' changes address space of pointer}}
+// expected-error at -2 {{casting '__global int *' to type '__private int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from '__global int *' to 'int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from '__global int *' to '__private int *' converts between mismatching address spaces}}
 #endif
   p = (__private int *)l;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting '__local int *' to type 'int *' changes address space of pointer}}
+// expected-error at -2 {{casting '__local int *' to type '__private int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from '__local int *' to 'int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from '__local int *' to '__private int *' converts between mismatching address spaces}}
 #endif
   p = (__private int *)c;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting '__constant int *' to type 'int *' changes address space of pointer}}
+// expected-error at -2 {{casting '__constant int *' to type '__private int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from '__constant int *' to 'int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from '__constant int *' to '__private int *' converts between mismatching address spaces}}
 #endif
   p = (__private int *)cc;
 #if !__OPENCL_CPP_VERSION__
-// expected-error at -2 {{casting 'const __constant int *' to type 'int *' changes address space of pointer}}
+// expected-error at -2 {{casting 'const __constant int *' to type '__private int *' changes address space of pointer}}
 #else
-// expected-error at -4 {{C-style cast from 'const __constant int *' to 'int *' converts between mismatching address spaces}}
+// expected-error at -4 {{C-style cast from 'const __constant int *' to '__private int *' converts between mismatching address spaces}}
 #endif
 }
 
@@ -126,98 +126,98 @@ void ok_explicit_casts(__global int *g, __global int *g2, __local int *l, __loca
 
 #if !__OPENCL_CPP_VERSION__
 void nested(__global int *g, __global int * __private *gg, __local int *l, __local int * __private *ll, __global float * __private *gg_f) {
-  g = gg;    // expected-error {{assigning '__global int **' to '__global int *' changes address space of pointer}}
-  g = l;     // expected-error {{assigning '__local int *' to '__global int *' changes address space of pointer}}
-  g = ll;    // expected-error {{assigning '__local int **' to '__global int *' changes address space of pointer}}
-  g = gg_f;  // expected-error {{assigning '__global float **' to '__global int *' changes address space of pointer}}
-  g = (__global int *)gg_f; // expected-error {{casting '__global float **' to type '__global int *' changes address space of pointer}}
+  g = gg;    // expected-error {{assigning '__global int *__private *__private' to '__global int *__private' changes address space of pointer}}
+  g = l;     // expected-error {{assigning '__local int *__private' to '__global int *__private' changes address space of pointer}}
+  g = ll;    // expected-error {{assigning '__local int *__private *__private' to '__global int *__private' changes address space of pointer}}
+  g = gg_f;  // expected-error {{assigning '__global float *__private *__private' to '__global int *__private' changes address space of pointer}}
+  g = (__global int *)gg_f; // expected-error {{casting '__global float *__private *' to type '__global int *' changes address space of pointer}}
 
-  gg = g;    // expected-error {{assigning '__global int *' to '__global int **' changes address space of pointer}}
-  gg = l;    // expected-error {{assigning '__local int *' to '__global int **' changes address space of pointer}}
-  gg = ll;   // expected-error {{assigning '__local int **' to '__global int **' changes address space of nested pointer}}
-  gg = gg_f; // expected-warning {{incompatible pointer types assigning to '__global int **' from '__global float **'}}
+  gg = g;    // expected-error {{assigning '__global int *__private' to '__global int *__private *__private' changes address space of pointer}}
+  gg = l;    // expected-error {{assigning '__local int *__private' to '__global int *__private *__private' changes address space of pointer}}
+  gg = ll;   // expected-error {{assigning '__local int *__private *__private' to '__global int *__private *__private' changes address space of nested pointer}}
+  gg = gg_f; // expected-warning {{incompatible pointer types assigning to '__global int *__private *__private' from '__global float *__private *__private'}}
   gg = (__global int * __private *)gg_f;
 
-  l = g;     // expected-error {{assigning '__global int *' to '__local int *' changes address space of pointer}}
-  l = gg;    // expected-error {{assigning '__global int **' to '__local int *' changes address space of pointer}}
-  l = ll;    // expected-error {{assigning '__local int **' to '__local int *' changes address space of pointer}}
-  l = gg_f;  // expected-error {{assigning '__global float **' to '__local int *' changes address space of pointer}}
-  l = (__local int *)gg_f; // expected-error {{casting '__global float **' to type '__local int *' changes address space of pointer}}
+  l = g;     // expected-error {{assigning '__global int *__private' to '__local int *__private' changes address space of pointer}}
+  l = gg;    // expected-error {{assigning '__global int *__private *__private' to '__local int *__private' changes address space of pointer}}
+  l = ll;    // expected-error {{assigning '__local int *__private *__private' to '__local int *__private' changes address space of pointer}}
+  l = gg_f;  // expected-error {{assigning '__global float *__private *__private' to '__local int *__private' changes address space of pointer}}
+  l = (__local int *)gg_f; // expected-error {{casting '__global float *__private *' to type '__local int *' changes address space of pointer}}
 
-  ll = g;    // expected-error {{assigning '__global int *' to '__local int **' changes address space of pointer}}
-  ll = gg;   // expected-error {{assigning '__global int **' to '__local int **' changes address space of nested pointer}}
-  ll = l;    // expected-error {{assigning '__local int *' to '__local int **' changes address space of pointer}}
-  ll = gg_f; // expected-error {{assigning '__global float **' to '__local int **' changes address space of nested pointer}}
-  ll = (__local int * __private *)gg_f; // expected-warning {{casting '__global float **' to type '__local int **' discards qualifiers in nested pointer types}}
+  ll = g;    // expected-error {{assigning '__global int *__private' to '__local int *__private *__private' changes address space of pointer}}
+  ll = gg;   // expected-error {{assigning '__global int *__private *__private' to '__local int *__private *__private' changes address space of nested pointer}}
+  ll = l;    // expected-error {{assigning '__local int *__private' to '__local int *__private *__private' changes address space of pointer}}
+  ll = gg_f; // expected-error {{assigning '__global float *__private *__private' to '__local int *__private *__private' changes address space of nested pointer}}
+  ll = (__local int * __private *)gg_f; // expected-warning {{casting '__global float *__private *' to type '__local int *__private *' discards qualifiers in nested pointer types}}
 
-  gg_f = g;  // expected-error {{assigning '__global int *' to '__global float **' changes address space of pointer}}
-  gg_f = gg; // expected-warning {{incompatible pointer types assigning to '__global float **' from '__global int **'}}
-  gg_f = l;  // expected-error {{assigning '__local int *' to '__global float **' changes address space of pointer}}
-  gg_f = ll; // expected-error {{assigning '__local int **' to '__global float **' changes address space of nested pointer}}
+  gg_f = g;  // expected-error {{assigning '__global int *__private' to '__global float *__private *__private' changes address space of pointer}}
+  gg_f = gg; // expected-warning {{incompatible pointer types assigning to '__global float *__private *__private' from '__global int *__private *__private'}}
+  gg_f = l;  // expected-error {{assigning '__local int *__private' to '__global float *__private *__private' changes address space of pointer}}
+  gg_f = ll; // expected-error {{assigning '__local int *__private *__private' to '__global float *__private *__private' changes address space of nested pointer}}
   gg_f = (__global float * __private *)gg;
 
   // FIXME: This doesn't seem right. This should be an error, not a warning.
   __local int * __global * __private * lll;
-  lll = gg; // expected-warning {{incompatible pointer types assigning to '__local int *__global **' from '__global int **'}}
+  lll = gg; // expected-warning {{incompatible pointer types assigning to '__local int *__global *__private *__private' from '__global int *__private *__private'}}
 
   typedef __local int * l_t;
   typedef __global int * g_t;
   __private l_t * pl;
   __private g_t * pg;
-  gg = pl;  // expected-error {{assigning 'l_t *' (aka '__local int **') to '__global int **' changes address space of nested pointer}}
-  pl = gg;  // expected-error {{assigning '__global int **' to 'l_t *' (aka '__local int **') changes address space of nested pointer}}
+  gg = pl;  // expected-error {{assigning '__private l_t *__private' (aka '__local int *__private *__private') to '__global int *__private *__private' changes address space of nested pointer}}
+  pl = gg;  // expected-error {{assigning '__global int *__private *__private' to '__private l_t *__private' (aka '__local int *__private *__private') changes address space of nested pointer}}
   gg = pg;
   pg = gg;
-  pg = pl;  // expected-error {{assigning 'l_t *' (aka '__local int **') to 'g_t *' (aka '__global int **') changes address space of nested pointer}}
-  pl = pg;  // expected-error {{assigning 'g_t *' (aka '__global int **') to 'l_t *' (aka '__local int **') changes address space of nested pointer}}
+  pg = pl;  // expected-error {{assigning '__private l_t *__private' (aka '__local int *__private *__private') to '__private g_t *__private' (aka '__global int *__private *__private') changes address space of nested pointer}}
+  pl = pg;  // expected-error {{assigning '__private g_t *__private' (aka '__global int *__private *__private') to '__private l_t *__private' (aka '__local int *__private *__private') changes address space of nested pointer}}
 
   ll = (__local int * __private *)(void *)gg;
   void *vp = ll;
 }
 #else
 void nested(__global int *g, __global int * __private *gg, __local int *l, __local int * __private *ll, __global float * __private *gg_f) {
-  g = gg;    // expected-error {{assigning to '__global int *' from incompatible type '__global int **'}}
-  g = l;     // expected-error {{assigning to '__global int *' from incompatible type '__local int *'}}
-  g = ll;    // expected-error {{assigning to '__global int *' from incompatible type '__local int **'}}
-  g = gg_f;  // expected-error {{assigning to '__global int *' from incompatible type '__global float **'}}
-  g = (__global int *)gg_f; // expected-error {{C-style cast from '__global float **' to '__global int *' converts between mismatching address spaces}}
+  g = gg;    // expected-error {{assigning to '__global int *' from incompatible type '__global int *__private *__private'}}
+  g = l;     // expected-error {{assigning to '__global int *' from incompatible type '__local int *__private'}}
+  g = ll;    // expected-error {{assigning to '__global int *' from incompatible type '__local int *__private *__private'}}
+  g = gg_f;  // expected-error {{assigning to '__global int *' from incompatible type '__global float *__private *__private'}}
+  g = (__global int *)gg_f; // expected-error {{C-style cast from '__global float *__private *' to '__global int *' converts between mismatching address spaces}}
 
-  gg = g;    // expected-error {{assigning to '__global int **' from incompatible type '__global int *'; take the address with &}}
-  gg = l;    // expected-error {{assigning to '__global int **' from incompatible type '__local int *'}}
-  gg = ll;   // expected-error {{assigning to '__global int **' from incompatible type '__local int **'}}
-  gg = gg_f; // expected-error {{assigning to '__global int **' from incompatible type '__global float **'}}
+  gg = g;    // expected-error {{assigning to '__global int *__private *' from incompatible type '__global int *__private'; take the address with &}}
+  gg = l;    // expected-error {{assigning to '__global int *__private *' from incompatible type '__local int *__private'}}
+  gg = ll;   // expected-error {{assigning to '__global int *__private *' from incompatible type '__local int *__private *__private'}}
+  gg = gg_f; // expected-error {{assigning to '__global int *__private *' from incompatible type '__global float *__private *__private'}}
   gg = (__global int * __private *)gg_f;
 
-  l = g;     // expected-error {{assigning to '__local int *' from incompatible type '__global int *'}}
-  l = gg;    // expected-error {{assigning to '__local int *' from incompatible type '__global int **'}}
-  l = ll;    // expected-error {{assigning to '__local int *' from incompatible type '__local int **'}}
-  l = gg_f;  // expected-error {{assigning to '__local int *' from incompatible type '__global float **'}}
-  l = (__local int *)gg_f; // expected-error {{C-style cast from '__global float **' to '__local int *' converts between mismatching address spaces}}
+  l = g;     // expected-error {{assigning to '__local int *' from incompatible type '__global int *__private'}}
+  l = gg;    // expected-error {{assigning to '__local int *' from incompatible type '__global int *__private *__private'}}
+  l = ll;    // expected-error {{assigning to '__local int *' from incompatible type '__local int *__private *__private'}}
+  l = gg_f;  // expected-error {{assigning to '__local int *' from incompatible type '__global float *__private *__private'}}
+  l = (__local int *)gg_f; // expected-error {{C-style cast from '__global float *__private *' to '__local int *' converts between mismatching address spaces}}
 
-  ll = g;    // expected-error {{assigning to '__local int **' from incompatible type '__global int *'}}
-  ll = gg;   // expected-error {{assigning to '__local int **' from incompatible type '__global int **'}}
-  ll = l;    // expected-error {{assigning to '__local int **' from incompatible type '__local int *'; take the address with &}}
-  ll = gg_f; // expected-error {{assigning to '__local int **' from incompatible type '__global float **'}}
+  ll = g;    // expected-error {{assigning to '__local int *__private *' from incompatible type '__global int *__private'}}
+  ll = gg;   // expected-error {{assigning to '__local int *__private *' from incompatible type '__global int *__private *__private'}}
+  ll = l;    // expected-error {{assigning to '__local int *__private *' from incompatible type '__local int *__private'; take the address with &}}
+  ll = gg_f; // expected-error {{assigning to '__local int *__private *' from incompatible type '__global float *__private *__private'}}
   // FIXME: The below becomes a reinterpret_cast, and therefore does not emit an error
   // even though the address space mismatches in the nested pointers.
   ll = (__local int * __private *)gg;
 
-  gg_f = g;  // expected-error {{assigning to '__global float **' from incompatible type '__global int *'}}
-  gg_f = gg; // expected-error {{assigning to '__global float **' from incompatible type '__global int **'}}
-  gg_f = l;  // expected-error {{assigning to '__global float **' from incompatible type '__local int *'}}
-  gg_f = ll; // expected-error {{assigning to '__global float **' from incompatible type '__local int **'}}
+  gg_f = g;  // expected-error {{assigning to '__global float *__private *' from incompatible type '__global int *__private'}}
+  gg_f = gg; // expected-error {{assigning to '__global float *__private *' from incompatible type '__global int *__private *__private'}}
+  gg_f = l;  // expected-error {{assigning to '__global float *__private *' from incompatible type '__local int *__private'}}
+  gg_f = ll; // expected-error {{assigning to '__global float *__private *' from incompatible type '__local int *__private *__private'}}
   gg_f = (__global float * __private *)gg;
 
   typedef __local int * l_t;
   typedef __global int * g_t;
   __private l_t * pl;
   __private g_t * pg;
-  gg = pl;  // expected-error {{assigning to '__global int **' from incompatible type 'l_t *' (aka '__local int **')}}
-  pl = gg;  // expected-error {{assigning to 'l_t *' (aka '__local int **') from incompatible type '__global int **'}}
+  gg = pl;  // expected-error {{assigning to '__global int *__private *' from incompatible type '__private l_t *__private' (aka '__local int *__private *__private')}}
+  pl = gg;  // expected-error {{assigning to '__private l_t *' (aka '__local int *__private *') from incompatible type '__global int *__private *__private'}}
   gg = pg;
   pg = gg;
-  pg = pl;  // expected-error {{assigning to 'g_t *' (aka '__global int **') from incompatible type 'l_t *' (aka '__local int **')}}
-  pl = pg;  // expected-error {{assigning to 'l_t *' (aka '__local int **') from incompatible type 'g_t *' (aka '__global int **')}}
+  pg = pl;  // expected-error {{assigning to '__private g_t *' (aka '__global int *__private *') from incompatible type '__private l_t *__private' (aka '__local int *__private *__private')}}
+  pl = pg;  // expected-error {{assigning to '__private l_t *' (aka '__local int *__private *') from incompatible type '__private g_t *__private' (aka '__global int *__private *__private')}}
 
   ll = (__local int * __private *)(void *)gg;
   void *vp = ll;

diff  --git a/clang/test/SemaOpenCL/arithmetic-conversions.cl b/clang/test/SemaOpenCL/arithmetic-conversions.cl
index 23103caf85ef..3d9f34851e90 100644
--- a/clang/test/SemaOpenCL/arithmetic-conversions.cl
+++ b/clang/test/SemaOpenCL/arithmetic-conversions.cl
@@ -14,10 +14,10 @@ kernel void foo4(long2 in, global long2 *out) { *out = 5 + in;}
 
 kernel void foo5(float2 in, global float2 *out) {
     float* f;
-    *out = f + in; // expected-error{{cannot convert between vector and non-scalar values ('float *' and 'float2' (vector of 2 'float' values))}}
+    *out = f + in; // expected-error{{cannot convert between vector and non-scalar values ('__private float *' and 'float2' (vector of 2 'float' values))}}
 }
 
 kernel void foo6(int2 in, global int2 *out) {
     int* f;
-    *out = f + in; // expected-error{{cannot convert between vector and non-scalar values ('int *' and 'int2' (vector of 2 'int' values))}}
+    *out = f + in; // expected-error{{cannot convert between vector and non-scalar values ('__private int *' and 'int2' (vector of 2 'int' values))}}
 }

diff  --git a/clang/test/SemaOpenCL/as_type.cl b/clang/test/SemaOpenCL/as_type.cl
index ad418097d902..e43ec7eb5f06 100644
--- a/clang/test/SemaOpenCL/as_type.cl
+++ b/clang/test/SemaOpenCL/as_type.cl
@@ -1,14 +1,14 @@
 // RUN: %clang_cc1 %s -emit-llvm -triple spir-unknown-unknown -finclude-default-header -o - -verify -fsyntax-only
 
 char3 f1(char16 x) {
-  return  __builtin_astype(x, char3); // expected-error{{invalid reinterpretation: sizes of 'char3' (vector of 3 'char' values) and 'char16' (vector of 16 'char' values) must match}}
+  return  __builtin_astype(x, char3); // expected-error{{invalid reinterpretation: sizes of 'char3' (vector of 3 'char' values) and '__private char16' (vector of 16 'char' values) must match}}
 }
 
 char16 f3(int x) {
-  return __builtin_astype(x, char16); // expected-error{{invalid reinterpretation: sizes of 'char16' (vector of 16 'char' values) and 'int' must match}}
+  return __builtin_astype(x, char16); // expected-error{{invalid reinterpretation: sizes of 'char16' (vector of 16 'char' values) and '__private int' must match}}
 }
 
 void foo() {
     char src = 1;
-    int dst = as_int(src); // expected-error{{invalid reinterpretation: sizes of 'int' and 'char' must match}}
+    int dst = as_int(src); // expected-error{{invalid reinterpretation: sizes of 'int' and '__private char' must match}}
 }

diff  --git a/clang/test/SemaOpenCL/atomic-ops.cl b/clang/test/SemaOpenCL/atomic-ops.cl
index d8021e33af65..c95c73d52e52 100644
--- a/clang/test/SemaOpenCL/atomic-ops.cl
+++ b/clang/test/SemaOpenCL/atomic-ops.cl
@@ -82,13 +82,13 @@ void f(atomic_int *i, const atomic_int *ci,
 
   bool cmpexch_1 = __opencl_atomic_compare_exchange_strong(i, I, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group);
   bool cmpexch_2 = __opencl_atomic_compare_exchange_strong(p, P, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group);
-  bool cmpexch_3 = __opencl_atomic_compare_exchange_strong(d, I, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{incompatible pointer types passing '__generic int *' to parameter of type '__generic float *'}}
-  (void)__opencl_atomic_compare_exchange_strong(i, CI, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{passing 'const __generic int *' to parameter of type '__generic int *' discards qualifiers}}
+  bool cmpexch_3 = __opencl_atomic_compare_exchange_strong(d, I, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{incompatible pointer types passing '__generic int *__private' to parameter of type '__generic float *'}}
+  (void)__opencl_atomic_compare_exchange_strong(i, CI, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{passing 'const __generic int *__private' to parameter of type '__generic int *' discards qualifiers}}
 
   bool cmpexchw_1 = __opencl_atomic_compare_exchange_weak(i, I, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group);
   bool cmpexchw_2 = __opencl_atomic_compare_exchange_weak(p, P, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group);
-  bool cmpexchw_3 = __opencl_atomic_compare_exchange_weak(d, I, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{incompatible pointer types passing '__generic int *' to parameter of type '__generic float *'}}
-  (void)__opencl_atomic_compare_exchange_weak(i, CI, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{passing 'const __generic int *' to parameter of type '__generic int *' discards qualifiers}}
+  bool cmpexchw_3 = __opencl_atomic_compare_exchange_weak(d, I, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{incompatible pointer types passing '__generic int *__private' to parameter of type '__generic float *'}}
+  (void)__opencl_atomic_compare_exchange_weak(i, CI, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group); // expected-warning {{passing 'const __generic int *__private' to parameter of type '__generic int *' discards qualifiers}}
 
   // Pointers to 
diff erent address spaces are allowed.
   bool cmpexch_10 = __opencl_atomic_compare_exchange_strong((global atomic_int *)0x308, (constant int *)0x309, 1, memory_order_seq_cst, memory_order_seq_cst, memory_scope_work_group);
@@ -107,7 +107,7 @@ void memory_checks(atomic_int *Ap, int *p, int val) {
   float forder;
   (void)__opencl_atomic_load(Ap, forder, memory_scope_work_group);
   struct S s;
-  (void)__opencl_atomic_load(Ap, s, memory_scope_work_group); // expected-error {{passing 'struct S' to parameter of incompatible type 'int'}}
+  (void)__opencl_atomic_load(Ap, s, memory_scope_work_group); // expected-error {{passing '__private struct S' to parameter of incompatible type 'int'}}
 
   (void)__opencl_atomic_load(Ap, memory_order_relaxed, memory_scope_work_group);
   (void)__opencl_atomic_load(Ap, memory_order_acquire, memory_scope_work_group);
@@ -187,7 +187,7 @@ void synchscope_checks(atomic_int *Ap, int scope) {
   (void)__opencl_atomic_load(Ap, memory_order_relaxed, 1.0f);
   (void)__opencl_atomic_load(Ap, memory_order_relaxed, fscope);
   struct S s;
-  (void)__opencl_atomic_load(Ap, memory_order_relaxed, s); //expected-error{{passing 'struct S' to parameter of incompatible type 'int'}}
+  (void)__opencl_atomic_load(Ap, memory_order_relaxed, s); //expected-error{{passing '__private struct S' to parameter of incompatible type 'int'}}
 }
 
 void nullPointerWarning(atomic_int *Ap, int *p, int val) {

diff  --git a/clang/test/SemaOpenCL/cl20-device-side-enqueue.cl b/clang/test/SemaOpenCL/cl20-device-side-enqueue.cl
index 7e8ec3d498cc..f63e2913c749 100644
--- a/clang/test/SemaOpenCL/cl20-device-side-enqueue.cl
+++ b/clang/test/SemaOpenCL/cl20-device-side-enqueue.cl
@@ -91,7 +91,7 @@ kernel void enqueue_kernel_tests() {
                  },
                  c, 1024L);
 #ifdef WCONV
-// expected-warning-re at -2{{implicit conversion changes signedness: 'char' to 'unsigned {{int|long}}'}}
+// expected-warning-re at -2{{implicit conversion changes signedness: '__private char' to 'unsigned {{int|long}}'}}
 #endif
 #define UINT_MAX 4294967295
 

diff  --git a/clang/test/SemaOpenCL/clk_event_t.cl b/clang/test/SemaOpenCL/clk_event_t.cl
index 14a9318fa45c..2259359ae3c9 100644
--- a/clang/test/SemaOpenCL/clk_event_t.cl
+++ b/clang/test/SemaOpenCL/clk_event_t.cl
@@ -12,7 +12,7 @@ int clk_event_tests() {
   clk_event_t ce2;
   clk_event_t ce3 = CLK_NULL_EVENT;
 
-  if (e == ce1) { // expected-error {{invalid operands to binary expression ('event_t' and 'clk_event_t')}}
+  if (e == ce1) { // expected-error {{invalid operands to binary expression ('__private event_t' and '__private clk_event_t')}}
     return 9;
   }
 

diff  --git a/clang/test/SemaOpenCL/event_t.cl b/clang/test/SemaOpenCL/event_t.cl
index ab7f09170e9c..80af4013a6cb 100644
--- a/clang/test/SemaOpenCL/event_t.cl
+++ b/clang/test/SemaOpenCL/event_t.cl
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only
 
-event_t glb_evt; // expected-error {{the 'event_t' type cannot be used to declare a program scope variable}} expected-error{{program scope variable must reside in constant address space}}
+event_t glb_evt; // expected-error {{the '__private event_t' type cannot be used to declare a program scope variable}} expected-error{{program scope variable must reside in constant address space}}
 
 constant struct evt_s {
   event_t evt; // expected-error {{the 'event_t' type cannot be used to declare a structure or union field}}
@@ -8,7 +8,7 @@ constant struct evt_s {
 
 void foo(event_t evt); // expected-note {{passing argument to parameter 'evt' here}}
 
-void kernel ker(event_t argevt) { // expected-error {{'event_t' cannot be used as the type of a kernel parameter}}
+void kernel ker(event_t argevt) { // expected-error {{'__private event_t' cannot be used as the type of a kernel parameter}}
   event_t e;
   constant event_t const_evt; // expected-error {{the event_t type can only be used with __private address space qualifier}} expected-error{{variable in constant address space must be initialized}}
   foo(e);

diff  --git a/clang/test/SemaOpenCL/extension-begin.cl b/clang/test/SemaOpenCL/extension-begin.cl
index 367652ccdd22..fdb481f8e092 100644
--- a/clang/test/SemaOpenCL/extension-begin.cl
+++ b/clang/test/SemaOpenCL/extension-begin.cl
@@ -44,7 +44,7 @@ void test_f2(void) {
   struct A test_A2; // expected-error {{use of type 'struct A' requires my_ext extension to be enabled}}
   const struct A test_A_local; // expected-error {{use of type 'struct A' requires my_ext extension to be enabled}}
   TypedefOfA test_typedef_A; // expected-error {{use of type 'TypedefOfA' (aka 'struct A') requires my_ext extension to be enabled}}
-  PointerOfA test_A_pointer; // expected-error {{use of type 'PointerOfA' (aka 'const struct A *') requires my_ext extension to be enabled}}
+  PointerOfA test_A_pointer; // expected-error {{use of type 'PointerOfA' (aka 'const __private struct A *') requires my_ext extension to be enabled}}
   f(); // expected-error {{use of declaration 'f' requires my_ext extension to be enabled}}
   g(0); // expected-error {{no matching function for call to 'g'}}
         // expected-note at extension-begin.h:18 {{candidate unavailable as it requires OpenCL extension 'my_ext' to be enabled}}

diff  --git a/clang/test/SemaOpenCL/half.cl b/clang/test/SemaOpenCL/half.cl
index e8da3a2a2137..2ea971c08510 100644
--- a/clang/test/SemaOpenCL/half.cl
+++ b/clang/test/SemaOpenCL/half.cl
@@ -4,13 +4,13 @@
 constant float f = 1.0h; // expected-error{{half precision constant requires cl_khr_fp16}}
 
 half half_disabled(half *p, // expected-error{{declaring function return value of type 'half' is not allowed}}
-                   half h)  // expected-error{{declaring function parameter of type 'half' is not allowed}}
+                   half h)  // expected-error{{declaring function parameter of type '__private half' is not allowed}}
 {
-  half a[2]; // expected-error{{declaring variable of type 'half [2]' is not allowed}}
-  half b;    // expected-error{{declaring variable of type 'half' is not allowed}}
-  *p; // expected-error{{loading directly from pointer to type 'half' requires cl_khr_fp16. Use vector data load builtin functions instead}}
+  half a[2]; // expected-error{{declaring variable of type '__private half [2]' is not allowed}}
+  half b;    // expected-error{{declaring variable of type '__private half' is not allowed}}
+  *p; // expected-error{{loading directly from pointer to type '__private half' requires cl_khr_fp16. Use vector data load builtin functions instead}}
   *p = 0; // expected-error{{assigning directly to pointer to type 'half' requires cl_khr_fp16. Use vector data store builtin functions instead}}
-  p[1]; // expected-error{{loading directly from pointer to type 'half' requires cl_khr_fp16. Use vector data load builtin functions instead}}
+  p[1]; // expected-error{{loading directly from pointer to type '__private half' requires cl_khr_fp16. Use vector data load builtin functions instead}}
   p[1] = 0; // expected-error{{assigning directly to pointer to type 'half' requires cl_khr_fp16. Use vector data store builtin functions instead}}
 
   float c = 1.0f;
@@ -26,7 +26,7 @@ half half_disabled(half *p, // expected-error{{declaring function return value o
 }
 
 kernel void half_disabled_kernel(global half *p,
-                                 half h);  // expected-error{{declaring function parameter of type 'half' is not allowed; did you forget * ?}}
+                                 half h);  // expected-error{{declaring function parameter of type '__private half' is not allowed; did you forget * ?}}
 
 // Exactly the same as above but with the cl_khr_fp16 extension enabled.
 #pragma OPENCL EXTENSION cl_khr_fp16 : enable

diff  --git a/clang/test/SemaOpenCL/images.cl b/clang/test/SemaOpenCL/images.cl
index 9d6092c8c916..d9305dd389b6 100644
--- a/clang/test/SemaOpenCL/images.cl
+++ b/clang/test/SemaOpenCL/images.cl
@@ -7,26 +7,26 @@ void img2d_default(image2d_t); // expected-note 2{{passing argument to parameter
 
 void imgage_access_test(image2d_t img2dro, image3d_t img3dro) {
   img2d_ro(img2dro); // read_only = read_only
-  img2d_ro(img3dro); // expected-error{{passing '__read_only image3d_t' to parameter of incompatible type '__read_only image2d_t'}}
+  img2d_ro(img3dro); // expected-error{{passing '__private __read_only image3d_t' to parameter of incompatible type '__read_only image2d_t'}}
 }
 
 kernel void read_only_access_test(read_only image2d_t img) {
   img2d_ro(img); // read_only = read_only
-  img2d_wo(img); // expected-error {{passing '__read_only image2d_t' to parameter of incompatible type '__write_only image2d_t'}}
-  img2d_rw(img); // expected-error {{passing '__read_only image2d_t' to parameter of incompatible type '__read_write image2d_t'}}
+  img2d_wo(img); // expected-error {{passing '__private __read_only image2d_t' to parameter of incompatible type '__write_only image2d_t'}}
+  img2d_rw(img); // expected-error {{passing '__private __read_only image2d_t' to parameter of incompatible type '__read_write image2d_t'}}
   img2d_default(img); // read_only = read_only
 }
 
 kernel void write_only_access_test(write_only image2d_t img) {
-  img2d_ro(img); // expected-error {{passing '__write_only image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
+  img2d_ro(img); // expected-error {{passing '__private __write_only image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
   img2d_wo(img); // write_only = write_only
-  img2d_rw(img); // expected-error {{passing '__write_only image2d_t' to parameter of incompatible type '__read_write image2d_t'}}
-  img2d_default(img); // expected-error {{passing '__write_only image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
+  img2d_rw(img); // expected-error {{passing '__private __write_only image2d_t' to parameter of incompatible type '__read_write image2d_t'}}
+  img2d_default(img); // expected-error {{passing '__private __write_only image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
 }
 
 kernel void read_write_access_test(read_write image2d_t img) {
-  img2d_ro(img);  // expected-error {{passing '__read_write image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
-  img2d_wo(img); // expected-error {{passing '__read_write image2d_t' to parameter of incompatible type '__write_only image2d_t'}}
+  img2d_ro(img);  // expected-error {{passing '__private __read_write image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
+  img2d_wo(img); // expected-error {{passing '__private __read_write image2d_t' to parameter of incompatible type '__write_only image2d_t'}}
   img2d_rw(img); //read_write = read_write
-  img2d_default(img); // expected-error {{passing '__read_write image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
+  img2d_default(img); // expected-error {{passing '__private __read_write image2d_t' to parameter of incompatible type '__read_only image2d_t'}}
 }

diff  --git a/clang/test/SemaOpenCL/intel-subgroup-avc-ext-types.cl b/clang/test/SemaOpenCL/intel-subgroup-avc-ext-types.cl
index 3392e80565f1..e76d54763016 100644
--- a/clang/test/SemaOpenCL/intel-subgroup-avc-ext-types.cl
+++ b/clang/test/SemaOpenCL/intel-subgroup-avc-ext-types.cl
@@ -16,34 +16,34 @@ struct st{};
 // negative test cases for initializers
 void foo(char c, float f, void* v, struct st ss) {
   intel_sub_group_avc_mce_payload_t payload_mce = 0; // No zero initializer for mce types
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_mce_payload_t' with an expression of incompatible type 'int'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_mce_payload_t' with an expression of incompatible type 'int'}}
   intel_sub_group_avc_ime_payload_t payload_ime = 1; // No literal initializer for *payload_t types
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ime_payload_t' with an expression of incompatible type 'int'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ime_payload_t' with an expression of incompatible type 'int'}}
   intel_sub_group_avc_ref_payload_t payload_ref = f;
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ref_payload_t' with an expression of incompatible type 'float'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ref_payload_t' with an expression of incompatible type '__private float'}}
   intel_sub_group_avc_sic_payload_t payload_sic = ss;
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_sic_payload_t' with an expression of incompatible type 'struct st'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_sic_payload_t' with an expression of incompatible type '__private struct st'}}
 
   intel_sub_group_avc_mce_result_t result_mce = 0; // No zero initializer for mce types
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_mce_result_t' with an expression of incompatible type 'int'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_mce_result_t' with an expression of incompatible type 'int'}}
   intel_sub_group_avc_ime_result_t result_ime = 1; // No literal initializer for *result_t types
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ime_result_t' with an expression of incompatible type 'int'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ime_result_t' with an expression of incompatible type 'int'}}
   intel_sub_group_avc_ref_result_t result_ref = f;
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ref_result_t' with an expression of incompatible type 'float'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ref_result_t' with an expression of incompatible type '__private float'}}
   intel_sub_group_avc_sic_result_t result_sic = ss;
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_sic_result_t' with an expression of incompatible type 'struct st'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_sic_result_t' with an expression of incompatible type '__private struct st'}}
 
   intel_sub_group_avc_ime_result_single_reference_streamout_t sstreamout = v;
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ime_result_single_reference_streamout_t' with an expression of incompatible type 'void *'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ime_result_single_reference_streamout_t' with an expression of incompatible type '__private void *__private'}}
 
   intel_sub_group_avc_ime_result_dual_reference_streamout_t dstreamin_list = {0x0, 0x1};
   // expected-warning at -1 {{excess elements in struct initializer}}
   intel_sub_group_avc_ime_dual_reference_streamin_t dstreamin_list2 = {};
   // expected-error at -1 {{scalar initializer cannot be empty}}
   intel_sub_group_avc_ime_single_reference_streamin_t dstreamin_list3 = {c};
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ime_single_reference_streamin_t' with an expression of incompatible type 'char'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ime_single_reference_streamin_t' with an expression of incompatible type '__private char'}}
   intel_sub_group_avc_ime_dual_reference_streamin_t dstreamin_list4 = {1};
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ime_dual_reference_streamin_t' with an expression of incompatible type 'int'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ime_dual_reference_streamin_t' with an expression of incompatible type 'int'}}
 }
 
 // negative tests for initializers and assignment
@@ -53,12 +53,12 @@ void far() {
 
   intel_sub_group_avc_ime_payload_t payload_ime;
   intel_sub_group_avc_ref_payload_t payload_ref = payload_ime;
-  // expected-error at -1 {{initializing 'intel_sub_group_avc_ref_payload_t' with an expression of incompatible type 'intel_sub_group_avc_ime_payload_t'}}
+  // expected-error at -1 {{initializing '__private intel_sub_group_avc_ref_payload_t' with an expression of incompatible type '__private intel_sub_group_avc_ime_payload_t'}}
 
   intel_sub_group_avc_sic_result_t result_sic;
   intel_sub_group_avc_ime_result_t result_ime;
   result_sic = result_ime;
-  // expected-error at -1 {{assigning to 'intel_sub_group_avc_sic_result_t' from incompatible type 'intel_sub_group_avc_ime_result_t'}}
+  // expected-error at -1 {{assigning to '__private intel_sub_group_avc_sic_result_t' from incompatible type '__private intel_sub_group_avc_ime_result_t'}}
 }
 
 // Using 0x0 directly allows us not to include opencl-c.h header and not to

diff  --git a/clang/test/SemaOpenCL/invalid-block.cl b/clang/test/SemaOpenCL/invalid-block.cl
index 7cbcea96d0ac..ec74d16cc9b8 100644
--- a/clang/test/SemaOpenCL/invalid-block.cl
+++ b/clang/test/SemaOpenCL/invalid-block.cl
@@ -12,7 +12,7 @@ void f1() {
   };
   f0(bl1);
   f0(bl2);
-  bl1 = bl2;          // expected-error{{invalid operands to binary expression ('int (__generic ^const)(void)' and 'int (__generic ^const)(void)')}}
+  bl1 = bl2;          // expected-error{{invalid operands to binary expression ('int (__generic ^const __private)(void)' and 'int (__generic ^const __private)(void)')}}
   int (^const bl3)(); // expected-error{{invalid block variable declaration - must be initialized}}
 }
 
@@ -53,18 +53,18 @@ void f5(int i) {
   bl2_t bl2 = ^(int i) {
     return 2;
   };
-  bl2_t arr[] = {bl1, bl2}; // expected-error {{array of 'bl2_t' (aka 'int (__generic ^const)(int)') type is invalid in OpenCL}}
+  bl2_t arr[] = {bl1, bl2}; // expected-error {{array of 'bl2_t' (aka 'int (__generic ^const)(__private int)') type is invalid in OpenCL}}
   int tmp = i ? bl1(i)      // expected-error {{block type cannot be used as expression in ternary expression in OpenCL}}
               : bl2(i);     // expected-error {{block type cannot be used as expression in ternary expression in OpenCL}}
 }
 // A block pointer type and all pointer operations are disallowed
-void f6(bl2_t *bl_ptr) { // expected-error{{pointer to type 'bl2_t' (aka 'int (__generic ^const)(int)') is invalid in OpenCL}}
+void f6(bl2_t *bl_ptr) { // expected-error{{pointer to type 'bl2_t' (aka 'int (__generic ^const)(__private int)') is invalid in OpenCL}}
   bl2_t bl = ^(int i) {
     return 1;
   };
-  bl2_t *p; // expected-error {{pointer to type 'bl2_t' (aka 'int (__generic ^const)(int)') is invalid in OpenCL}}
-  *bl;      // expected-error {{invalid argument type 'bl2_t' (aka 'int (__generic ^const)(int)') to unary expression}}
-  &bl;      // expected-error {{invalid argument type 'bl2_t' (aka 'int (__generic ^const)(int)') to unary expression}}
+  bl2_t *p; // expected-error {{pointer to type 'bl2_t' (aka 'int (__generic ^const)(__private int)') is invalid in OpenCL}}
+  *bl;      // expected-error {{invalid argument type '__private bl2_t' (aka 'int (__generic ^const __private)(__private int)') to unary expression}}
+  &bl;      // expected-error {{invalid argument type '__private bl2_t' (aka 'int (__generic ^const __private)(__private int)') to unary expression}}
 }
 // A block can't reference another block
 kernel void f7() {

diff  --git a/clang/test/SemaOpenCL/invalid-image.cl b/clang/test/SemaOpenCL/invalid-image.cl
index 9185cc371ebc..a996a67fdfa8 100644
--- a/clang/test/SemaOpenCL/invalid-image.cl
+++ b/clang/test/SemaOpenCL/invalid-image.cl
@@ -5,12 +5,12 @@
 void test1(image1d_t *i) {} // expected-error-re{{pointer to type '{{__generic __read_only|__read_only}} image1d_t' is invalid in OpenCL}}
 
 void test2(image1d_t i) {
-  image1d_t ti;            // expected-error{{type '__read_only image1d_t' can only be used as a function parameter}}
+  image1d_t ti;            // expected-error{{type '__private __read_only image1d_t' can only be used as a function parameter}}
   image1d_t ai[] = {i, i}; // expected-error{{array of '__read_only image1d_t' type is invalid in OpenCL}}
-  i=i; // expected-error{{invalid operands to binary expression ('__read_only image1d_t' and '__read_only image1d_t')}}
-  i+1; // expected-error{{invalid operands to binary expression ('__read_only image1d_t' and 'int')}}
-  &i; // expected-error{{invalid argument type '__read_only image1d_t' to unary expression}}
-  *i; // expected-error{{invalid argument type '__read_only image1d_t' to unary expression}}
+  i=i; // expected-error{{invalid operands to binary expression ('__private __read_only image1d_t' and '__private __read_only image1d_t')}}
+  i+1; // expected-error{{invalid operands to binary expression ('__private __read_only image1d_t' and 'int')}}
+  &i; // expected-error{{invalid argument type '__private __read_only image1d_t' to unary expression}}
+  *i; // expected-error{{invalid argument type '__private __read_only image1d_t' to unary expression}}
 }
 
 image1d_t test3() {} // expected-error{{declaring function return value of type '__read_only image1d_t' is not allowed}}

diff  --git a/clang/test/SemaOpenCL/invalid-kernel-parameters.cl b/clang/test/SemaOpenCL/invalid-kernel-parameters.cl
index e3372b188877..48de39d0f87e 100644
--- a/clang/test/SemaOpenCL/invalid-kernel-parameters.cl
+++ b/clang/test/SemaOpenCL/invalid-kernel-parameters.cl
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -fsyntax-only -verify %s -triple spir-unknown-unknown
 
-kernel void half_arg(half x) { } // expected-error{{declaring function parameter of type 'half' is not allowed; did you forget * ?}}
+kernel void half_arg(half x) { } // expected-error{{declaring function parameter of type '__private half' is not allowed; did you forget * ?}}
 
 #pragma OPENCL EXTENSION cl_khr_fp16 : enable
 
@@ -9,37 +9,37 @@ kernel void half_arg(half x) { } // expected-error{{declaring function parameter
 // bool, half, size_t, ptr
diff _t, intptr_t, and uintptr_t
 // or a struct / union with any of these types in them
 
-typedef __SIZE_TYPE__ size_t; // expected-note{{'size_t' (aka 'unsigned int') declared here}}
+typedef __SIZE_TYPE__ size_t; // expected-note{{'__private size_t' (aka '__private unsigned int') declared here}}
                               // expected-note at -1{{'size_t' (aka 'unsigned int') declared here}}
-typedef __PTRDIFF_TYPE__ ptr
diff _t; // expected-note{{'ptr
diff _t' (aka 'int') declared here}}
-typedef __INTPTR_TYPE__ intptr_t; // expected-note{{'intptr_t' (aka 'int') declared here}}
-typedef __UINTPTR_TYPE__ uintptr_t; // expected-note{{'uintptr_t' (aka 'unsigned int') declared here}}
+typedef __PTRDIFF_TYPE__ ptr
diff _t; // expected-note{{'__private ptr
diff _t' (aka '__private int') declared here}}
+typedef __INTPTR_TYPE__ intptr_t; // expected-note{{'__private intptr_t' (aka '__private int') declared here}}
+typedef __UINTPTR_TYPE__ uintptr_t; // expected-note{{'__private uintptr_t' (aka '__private unsigned int') declared here}}
 
-kernel void size_t_arg(size_t x) {} // expected-error{{'size_t' (aka 'unsigned int') cannot be used as the type of a kernel parameter}}
+kernel void size_t_arg(size_t x) {} // expected-error{{'__private size_t' (aka '__private unsigned int') cannot be used as the type of a kernel parameter}}
 
-kernel void ptr
diff _t_arg(ptr
diff _t x) {} // expected-error{{'ptr
diff _t' (aka 'int') cannot be used as the type of a kernel parameter}}
+kernel void ptr
diff _t_arg(ptr
diff _t x) {} // expected-error{{'__private ptr
diff _t' (aka '__private int') cannot be used as the type of a kernel parameter}}
 
-kernel void intptr_t_arg(intptr_t x) {} // expected-error{{'intptr_t' (aka 'int') cannot be used as the type of a kernel parameter}}
+kernel void intptr_t_arg(intptr_t x) {} // expected-error{{'__private intptr_t' (aka '__private int') cannot be used as the type of a kernel parameter}}
 
-kernel void uintptr_t_arg(uintptr_t x) {} // expected-error{{'uintptr_t' (aka 'unsigned int') cannot be used as the type of a kernel parameter}}
+kernel void uintptr_t_arg(uintptr_t x) {} // expected-error{{'__private uintptr_t' (aka '__private unsigned int') cannot be used as the type of a kernel parameter}}
 
 typedef size_t size_ty;
 struct SizeTStruct { // expected-note{{within field of type 'SizeTStruct' declared here}}
   size_ty s; // expected-note{{field of illegal type 'size_ty' (aka 'unsigned int') declared here}}
 };
-kernel void size_t_struct_arg(struct SizeTStruct x) {} // expected-error{{'struct SizeTStruct' cannot be used as the type of a kernel parameter}}
+kernel void size_t_struct_arg(struct SizeTStruct x) {} // expected-error{{'__private struct SizeTStruct' cannot be used as the type of a kernel parameter}}
 
 union SizeTUnion { // expected-note{{within field of type 'SizeTUnion' declared here}}
   size_t s; // expected-note{{field of illegal type 'size_t' (aka 'unsigned int') declared here}}
   float f;
 };
-kernel void size_t_union_arg(union SizeTUnion x) {} // expected-error{{'union SizeTUnion' cannot be used as the type of a kernel parameter}}
+kernel void size_t_union_arg(union SizeTUnion x) {} // expected-error{{'__private union SizeTUnion' cannot be used as the type of a kernel parameter}}
 
 typedef size_t s_ty; // expected-note{{'s_ty' (aka 'unsigned int') declared here}}
-typedef s_ty ss_ty; // expected-note{{'ss_ty' (aka 'unsigned int') declared here}}
-kernel void typedef_to_size_t(ss_ty s) {} // expected-error{{'ss_ty' (aka 'unsigned int') cannot be used as the type of a kernel parameter}}
+typedef s_ty ss_ty; // expected-note{{'__private ss_ty' (aka '__private unsigned int') declared here}}
+kernel void typedef_to_size_t(ss_ty s) {} // expected-error{{'__private ss_ty' (aka '__private unsigned int') cannot be used as the type of a kernel parameter}}
 
-kernel void bool_arg(bool x) { } // expected-error{{'bool' cannot be used as the type of a kernel parameter}}
+kernel void bool_arg(bool x) { } // expected-error{{'__private bool' cannot be used as the type of a kernel parameter}}
 
 // half kernel argument is allowed when cl_khr_fp16 is enabled.
 kernel void half_arg(half x) { }
@@ -49,7 +49,7 @@ typedef struct ContainsBool // expected-note{{within field of type 'ContainsBool
   bool x; // expected-note{{field of illegal type 'bool' declared here}}
 } ContainsBool;
 
-kernel void bool_in_struct_arg(ContainsBool x) { } // expected-error{{'ContainsBool' (aka 'struct ContainsBool') cannot be used as the type of a kernel parameter}}
+kernel void bool_in_struct_arg(ContainsBool x) { } // expected-error{{'__private ContainsBool' (aka '__private struct ContainsBool') cannot be used as the type of a kernel parameter}}
 
 
 
@@ -65,14 +65,14 @@ kernel void image_in_struct_arg(FooImage2D arg) { } // expected-error{{struct ke
 
 typedef struct Foo // expected-note{{within field of type 'Foo' declared here}}
 {
-  int* ptrField; // expected-note{{field of illegal pointer type 'int *' declared here}}
+  int* ptrField; // expected-note{{field of illegal pointer type '__private int *' declared here}}
 } Foo;
 
 kernel void pointer_in_struct_arg(Foo arg) { } // expected-error{{struct kernel parameters may not contain pointers}}
 
 typedef union FooUnion // expected-note{{within field of type 'FooUnion' declared here}}
 {
-  int* ptrField; // expected-note{{field of illegal pointer type 'int *' declared here}}
+  int* ptrField; // expected-note{{field of illegal pointer type '__private int *' declared here}}
 } FooUnion;
 
 kernel void pointer_in_union_arg(FooUnion arg) { }// expected-error{{union kernel parameters may not contain pointers}}
@@ -82,7 +82,7 @@ typedef struct NestedPointer // expected-note 2 {{within field of type 'NestedPo
   int x;
   struct InnerNestedPointer
   {
-    int* ptrField; // expected-note 3 {{field of illegal pointer type 'int *' declared here}}
+    int* ptrField; // expected-note 3 {{field of illegal pointer type '__private int *' declared here}}
   } inner; // expected-note 3 {{within field of type 'struct InnerNestedPointer' declared here}}
 } NestedPointer;
 
@@ -96,7 +96,7 @@ struct NestedPointerComplex // expected-note{{within field of type 'NestedPointe
   struct InnerNestedPointerComplex
   {
     int innerFoo;
-    int* innerPtrField; // expected-note{{field of illegal pointer type 'int *' declared here}}
+    int* innerPtrField; // expected-note{{field of illegal pointer type '__private int *' declared here}}
   } inner; // expected-note{{within field of type 'struct InnerNestedPointerComplex' declared here}}
 
   float y;
@@ -114,10 +114,10 @@ typedef struct NestedBool // expected-note 2 {{within field of type 'NestedBool'
   } inner; // expected-note 2 {{within field of type 'struct InnerNestedBool' declared here}}
 } NestedBool;
 
-kernel void bool_in_nested_struct_arg(NestedBool arg) { } // expected-error{{'NestedBool' (aka 'struct NestedBool') cannot be used as the type of a kernel parameter}}
+kernel void bool_in_nested_struct_arg(NestedBool arg) { } // expected-error{{'__private NestedBool' (aka '__private struct NestedBool') cannot be used as the type of a kernel parameter}}
 
 // Warning emitted again for argument used in other kernel
-kernel void bool_in_nested_struct_arg_again(NestedBool arg) { } // expected-error{{'NestedBool' (aka 'struct NestedBool') cannot be used as the type of a kernel parameter}}
+kernel void bool_in_nested_struct_arg_again(NestedBool arg) { } // expected-error{{'__private NestedBool' (aka '__private struct NestedBool') cannot be used as the type of a kernel parameter}}
 
 
 // Check for note with a struct not defined inside the struct
@@ -132,7 +132,7 @@ typedef struct NestedBool2 // expected-note{{within field of type 'NestedBool2'
   NestedBool2Inner inner; // expected-note{{within field of type 'NestedBool2Inner' (aka 'struct NestedBool2Inner') declared here}}
 } NestedBool2;
 
-kernel void bool_in_nested_struct_2_arg(NestedBool2 arg) { } // expected-error{{'NestedBool2' (aka 'struct NestedBool2') cannot be used as the type of a kernel parameter}}
+kernel void bool_in_nested_struct_2_arg(NestedBool2 arg) { } // expected-error{{'__private NestedBool2' (aka '__private struct NestedBool2') cannot be used as the type of a kernel parameter}}
 
 
 struct InnerInner
@@ -167,8 +167,8 @@ kernel void pointer_in_nested_struct_arg_2(struct Valid valid, struct NestedPoin
 
 struct ArrayOfPtr // expected-note{{within field of type 'ArrayOfPtr' declared here}}
 {
-  float *arr[3]; // expected-note{{field of illegal type 'float *[3]' declared here}}
-                 // expected-note at -1{{field of illegal type 'float *[3]' declared here}}
+  float *arr[3]; // expected-note{{field of illegal type '__private float *[3]' declared here}}
+                 // expected-note at -1{{field of illegal type '__private float *[3]' declared here}}
 };
 kernel void array_of_ptr(struct ArrayOfPtr arr) {} // expected-error{{struct kernel parameters may not contain pointers}}
 

diff  --git a/clang/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl b/clang/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
index 619b359c7af9..36e76621d24a 100644
--- a/clang/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
+++ b/clang/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
@@ -12,22 +12,22 @@ void test1(read_only pipe int p, global int* ptr){
   read_pipe(tmp, p);    // expected-error {{first argument to 'read_pipe' must be a pipe type}}
   read_pipe(p);   // expected-error {{invalid number of arguments to function: 'read_pipe'}}
   read_pipe(p, rid, tmp, ptr);
-  read_pipe(p, tmp, tmp, ptr);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'reserve_id_t' having 'int')}}
-  read_pipe(p, rid, rid, ptr);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'unsigned int' having 'reserve_id_t')}}
-  read_pipe(p, tmp);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'int *' having 'int')}}
+  read_pipe(p, tmp, tmp, ptr);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'reserve_id_t' having '__private int')}}
+  read_pipe(p, rid, rid, ptr);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'unsigned int' having '__private reserve_id_t')}}
+  read_pipe(p, tmp);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'int *' having '__private int')}}
   write_pipe(p, ptr);    // expected-error {{invalid pipe access modifier (expecting write_only)}}
   write_pipe(p, rid, tmp, ptr);    // expected-error {{invalid pipe access modifier (expecting write_only)}}
 
   // reserve_read/write_pipe
   reserve_read_pipe(p, tmp);
-  reserve_read_pipe(p, ptr);    // expected-error{{invalid argument type to function 'reserve_read_pipe' (expecting 'unsigned int' having '__global int *')}}
+  reserve_read_pipe(p, ptr);    // expected-error{{invalid argument type to function 'reserve_read_pipe' (expecting 'unsigned int' having '__global int *__private')}}
   work_group_reserve_read_pipe(tmp, tmp);    // expected-error{{first argument to 'work_group_reserve_read_pipe' must be a pipe type}}
   sub_group_reserve_write_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting write_only)}}
 
   // commit_read/write_pipe
   commit_read_pipe(p, rid);
   commit_read_pipe(tmp, rid);    // expected-error{{first argument to 'commit_read_pipe' must be a pipe type}}
-  work_group_commit_read_pipe(p, tmp);    // expected-error{{invalid argument type to function 'work_group_commit_read_pipe' (expecting 'reserve_id_t' having 'int')}}
+  work_group_commit_read_pipe(p, tmp);    // expected-error{{invalid argument type to function 'work_group_commit_read_pipe' (expecting 'reserve_id_t' having '__private int')}}
   sub_group_commit_write_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting write_only)}}
 }
 
@@ -41,22 +41,22 @@ void test2(write_only pipe int p, global int* ptr){
   write_pipe(tmp, p);    // expected-error {{first argument to 'write_pipe' must be a pipe type}}
   write_pipe(p);   // expected-error {{invalid number of arguments to function: 'write_pipe'}}
   write_pipe(p, rid, tmp, ptr);
-  write_pipe(p, tmp, tmp, ptr);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'reserve_id_t' having 'int')}}
-  write_pipe(p, rid, rid, ptr);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'unsigned int' having 'reserve_id_t')}}
-  write_pipe(p, tmp);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'int *' having 'int')}}
+  write_pipe(p, tmp, tmp, ptr);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'reserve_id_t' having '__private int')}}
+  write_pipe(p, rid, rid, ptr);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'unsigned int' having '__private reserve_id_t')}}
+  write_pipe(p, tmp);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'int *' having '__private int')}}
   read_pipe(p, ptr);    // expected-error {{invalid pipe access modifier (expecting read_only)}}
   read_pipe(p, rid, tmp, ptr);    // expected-error {{invalid pipe access modifier (expecting read_only)}}
 
   // reserve_read/write_pipe
   reserve_write_pipe(p, tmp);
-  reserve_write_pipe(p, ptr);    // expected-error{{invalid argument type to function 'reserve_write_pipe' (expecting 'unsigned int' having '__global int *')}}
+  reserve_write_pipe(p, ptr);    // expected-error{{invalid argument type to function 'reserve_write_pipe' (expecting 'unsigned int' having '__global int *__private')}}
   work_group_reserve_write_pipe(tmp, tmp);    // expected-error{{first argument to 'work_group_reserve_write_pipe' must be a pipe type}}
   sub_group_reserve_read_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting read_only)}}
 
   // commit_read/write_pipe
   commit_write_pipe(p, rid);
   commit_write_pipe(tmp, rid);    // expected-error{{first argument to 'commit_write_pipe' must be a pipe type}}
-  work_group_commit_write_pipe(p, tmp);    // expected-error{{invalid argument type to function 'work_group_commit_write_pipe' (expecting 'reserve_id_t' having 'int')}}
+  work_group_commit_write_pipe(p, tmp);    // expected-error{{invalid argument type to function 'work_group_commit_write_pipe' (expecting 'reserve_id_t' having '__private int')}}
   sub_group_commit_read_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting read_only)}}
 }
 

diff  --git a/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl b/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl
index de1b4f8858fa..2bcefe2f192b 100644
--- a/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl
+++ b/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl
@@ -6,7 +6,7 @@ global reserve_id_t rid;          // expected-error {{the '__global reserve_id_t
 
 extern pipe write_only int get_pipe(); // expected-error-re{{type '__global write_only pipe int ({{(void)?}})' can only be used as a function parameter in OpenCL}} expected-error{{'write_only' attribute only applies to parameters and typedefs}}
 
-kernel void test_invalid_reserved_id(reserve_id_t ID) { // expected-error {{'reserve_id_t' cannot be used as the type of a kernel parameter}}
+kernel void test_invalid_reserved_id(reserve_id_t ID) { // expected-error {{'__private reserve_id_t' cannot be used as the type of a kernel parameter}}
 }
 
 void test1(pipe int *p) {// expected-error {{pipes packet types cannot be of reference type}}
@@ -16,15 +16,15 @@ void test2(pipe p) {// expected-error {{missing actual type specifier for pipe}}
 void test3(int pipe p) {// expected-error {{cannot combine with previous 'int' declaration specifier}}
 }
 void test4() {
-  pipe int p; // expected-error {{type 'read_only pipe int' can only be used as a function parameter}}
+  pipe int p; // expected-error {{type '__private read_only pipe int' can only be used as a function parameter}}
   //TODO: fix parsing of this pipe int (*p);
 }
 
 void test5(pipe int p) {
-  p+p; // expected-error{{invalid operands to binary expression ('read_only pipe int' and 'read_only pipe int')}}
-  p=p; // expected-error{{invalid operands to binary expression ('read_only pipe int' and 'read_only pipe int')}}
-  &p; // expected-error{{invalid argument type 'read_only pipe int' to unary expression}}
-  *p; // expected-error{{invalid argument type 'read_only pipe int' to unary expression}}
+  p+p; // expected-error{{invalid operands to binary expression ('__private read_only pipe int' and '__private read_only pipe int')}}
+  p=p; // expected-error{{invalid operands to binary expression ('__private read_only pipe int' and '__private read_only pipe int')}}
+  &p; // expected-error{{invalid argument type '__private read_only pipe int' to unary expression}}
+  *p; // expected-error{{invalid argument type '__private read_only pipe int' to unary expression}}
 }
 
 typedef pipe int pipe_int_t;
@@ -32,7 +32,7 @@ pipe_int_t test6() {} // expected-error{{declaring function return value of type
 
 bool test_id_comprision(void) {
   reserve_id_t id1, id2;
-  return (id1 == id2);          // expected-error {{invalid operands to binary expression ('reserve_id_t' and 'reserve_id_t')}}
+  return (id1 == id2);          // expected-error {{invalid operands to binary expression ('__private reserve_id_t' and '__private reserve_id_t')}}
 }
 
 // Tests ASTContext::mergeTypes rejects this.

diff  --git a/clang/test/SemaOpenCL/null_literal.cl b/clang/test/SemaOpenCL/null_literal.cl
index 2fb287270f46..fb0f938d5952 100644
--- a/clang/test/SemaOpenCL/null_literal.cl
+++ b/clang/test/SemaOpenCL/null_literal.cl
@@ -11,14 +11,14 @@ global int* ptr2 = (global void*)0;
 
 constant int* ptr3 = NULL;
 
-constant int* ptr4 = (global void*)0; // expected-error{{initializing '__constant int *' with an expression of type '__global void *' changes address space of pointer}}
+constant int* ptr4 = (global void*)0; // expected-error{{initializing '__constant int *__private' with an expression of type '__global void *' changes address space of pointer}}
 
 #ifdef CL20
 // Accept explicitly pointer to generic address space in OpenCL v2.0.
 global int* ptr5 = (generic void*)0;
 #endif
 
-global int* ptr6 = (local void*)0; // expected-error{{initializing '__global int *' with an expression of type '__local void *' changes address space of pointer}}
+global int* ptr6 = (local void*)0; // expected-error{{initializing '__global int *__private' with an expression of type '__local void *' changes address space of pointer}}
 
 bool cmp = ptr1 == NULL;
 

diff  --git a/clang/test/SemaOpenCL/null_queue.cl b/clang/test/SemaOpenCL/null_queue.cl
index 34d1a621f4a8..a0b33d48dbf7 100644
--- a/clang/test/SemaOpenCL/null_queue.cl
+++ b/clang/test/SemaOpenCL/null_queue.cl
@@ -4,13 +4,13 @@ extern queue_t get_default_queue();
 void queue_arg(queue_t); // expected-note {{passing argument to parameter here}}
 
 void init() {
-  queue_t q1 = 1; // expected-error{{initializing 'queue_t' with an expression of incompatible type 'int'}}
+  queue_t q1 = 1; // expected-error{{initializing '__private queue_t' with an expression of incompatible type 'int'}}
   queue_t q = 0;
 }
 
 void assign() {
   queue_t q2, q3;
-  q2 = 5; // expected-error{{assigning to 'queue_t' from incompatible type 'int'}}
+  q2 = 5; // expected-error{{assigning to '__private queue_t' from incompatible type 'int'}}
   q3 = 0;
   q2 = q3 = 0;
 }
@@ -21,7 +21,7 @@ bool compare() {
          get_default_queue() == 1 && // expected-error{{invalid operands to binary expression ('queue_t' and 'int')}}
 	     q4 == q5 &&
 	     q4 != 0 &&
-	     q4 != 0.0f; // expected-error{{invalid operands to binary expression ('queue_t' and 'float')}}
+	     q4 != 0.0f; // expected-error{{invalid operands to binary expression ('__private queue_t' and 'float')}}
 }
 
 void call() {

diff  --git a/clang/test/SemaOpenCL/predefined-expr.cl b/clang/test/SemaOpenCL/predefined-expr.cl
index 419e7a925c5c..182c9bda657f 100644
--- a/clang/test/SemaOpenCL/predefined-expr.cl
+++ b/clang/test/SemaOpenCL/predefined-expr.cl
@@ -2,7 +2,7 @@
 // RUN: %clang_cc1 %s -verify -cl-std=CL2.0
 
 void f() {
-  char *f1 = __func__;          //expected-error-re{{initializing '{{__generic char|char}} *' with an expression of type 'const __constant char *' changes address space of pointer}}
-  constant char *f2 = __func__; //expected-warning{{initializing '__constant char *' with an expression of type 'const __constant char [2]' discards qualifiers}}
+  char *f1 = __func__;          //expected-error-re{{initializing '{{__generic|__private}} char *__private' with an expression of type 'const __constant char *' changes address space of pointer}}
+  constant char *f2 = __func__; //expected-warning{{initializing '__constant char *__private' with an expression of type 'const __constant char [2]' discards qualifiers}}
   constant const char *f3 = __func__;
 }

diff  --git a/clang/test/SemaOpenCL/queue_t_overload.cl b/clang/test/SemaOpenCL/queue_t_overload.cl
index bc3b241bbe11..9f0cb841180c 100644
--- a/clang/test/SemaOpenCL/queue_t_overload.cl
+++ b/clang/test/SemaOpenCL/queue_t_overload.cl
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 %s -cl-std=CL2.0 -verify -pedantic -fsyntax-only
 
-void __attribute__((overloadable)) foo(queue_t, __local char *); // expected-note {{candidate function not viable: no known conversion from 'int' to 'queue_t' for 1st argument}} // expected-note {{candidate function}}
-void __attribute__((overloadable)) foo(queue_t, __local float *); // expected-note {{candidate function not viable: no known conversion from 'int' to 'queue_t' for 1st argument}} // expected-note {{candidate function}}
+void __attribute__((overloadable)) foo(queue_t, __local char *); // expected-note {{candidate function not viable: no known conversion from 'int' to '__private queue_t' for 1st argument}} // expected-note {{candidate function}}
+void __attribute__((overloadable)) foo(queue_t, __local float *); // expected-note {{candidate function not viable: no known conversion from 'int' to '__private queue_t' for 1st argument}} // expected-note {{candidate function}}
 
 void kernel ker(__local char *src1, __local float *src2, __global int *src3) {
   queue_t q;

diff  --git a/clang/test/SemaOpenCL/shifts.cl b/clang/test/SemaOpenCL/shifts.cl
index 26f59a533ff5..257f70a956d5 100644
--- a/clang/test/SemaOpenCL/shifts.cl
+++ b/clang/test/SemaOpenCL/shifts.cl
@@ -45,7 +45,7 @@ void ptest07() {
 // ** Negative tests **
 
 char2 ntest01(char c, char2 s) {
-  return c << s; // expected-error {{requested shift is a vector of type 'char2' (vector of 2 'char' values) but the first operand is not a vector ('char')}}
+  return c << s; // expected-error {{requested shift is a vector of type '__private char2' (vector of 2 'char' values) but the first operand is not a vector ('__private char')}}
 }
 
 char3 ntest02(char3 c, char2 s) {

diff  --git a/clang/test/SemaOpenCL/to_addr_builtin.cl b/clang/test/SemaOpenCL/to_addr_builtin.cl
index 26389d24fce8..ff2d7807356a 100644
--- a/clang/test/SemaOpenCL/to_addr_builtin.cl
+++ b/clang/test/SemaOpenCL/to_addr_builtin.cl
@@ -13,7 +13,7 @@ void test(void) {
   glob = to_global(glob, loc);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
   // expected-error at -2{{implicit declaration of function 'to_global' is invalid in OpenCL}}
-  // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
   // expected-error at -5{{invalid number of arguments to function: 'to_global'}}
 #endif
@@ -21,46 +21,46 @@ void test(void) {
   int x;
   glob = to_global(x);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
   // expected-error at -4{{invalid argument x to function: 'to_global', expecting a generic pointer argument}}
 #endif
 
   glob = to_global(con);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
   // expected-error at -4{{invalid argument con to function: 'to_global', expecting a generic pointer argument}}
 #endif
 
   glob = to_global(con_typedef);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
   // expected-error at -4{{invalid argument con_typedef to function: 'to_global', expecting a generic pointer argument}}
 #endif
 
   loc = to_global(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__local int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__local int *__private' from 'int'}}
 #else
-  // expected-error at -4{{assigning '__global int *' to '__local int *' changes address space of pointer}}
+  // expected-error at -4{{assigning '__global int *' to '__local int *__private' changes address space of pointer}}
   // expected-warning at -5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
 #endif
 
   loc = to_private(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
   // expected-error at -2{{implicit declaration of function 'to_private' is invalid in OpenCL}}
-  // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__local int *' from 'int'}}
+  // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__local int *__private' from 'int'}}
 #else
-  // expected-error at -5{{assigning 'int *' to '__local int *' changes address space of pointer}}
+  // expected-error at -5{{assigning '__private int *' to '__local int *__private' changes address space of pointer}}
   // expected-warning at -6{{passing non-generic address space pointer to to_private may cause dynamic conversion affecting performance}}
 #endif
 
   loc = to_local(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
   // expected-error at -2{{implicit declaration of function 'to_local' is invalid in OpenCL}}
-  // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__local int *' from 'int'}}
+  // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__local int *__private' from 'int'}}
   // expected-note at -4{{did you mean 'to_global'}}
   // expected-note at 13{{'to_global' declared here}}
 #else
@@ -69,15 +69,15 @@ void test(void) {
 
   priv = to_global(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to 'int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__private int *__private' from 'int'}}
 #else
-  // expected-error at -4{{assigning '__global int *' to 'int *' changes address space of pointer}}
+  // expected-error at -4{{assigning '__global int *' to '__private int *__private' changes address space of pointer}}
   // expected-warning at -5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
 #endif
 
   priv = to_private(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to 'int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__private int *__private' from 'int'}}
 #else
   // expected-warning at -4{{passing non-generic address space pointer to to_private may cause dynamic conversion affecting performance}}
 #endif
@@ -85,48 +85,48 @@ void test(void) {
 
   priv = to_local(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to 'int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__private int *__private' from 'int'}}
 #else
-  // expected-error at -4{{assigning '__local int *' to 'int *' changes address space of pointer}}
+  // expected-error at -4{{assigning '__local int *' to '__private int *__private' changes address space of pointer}}
   // expected-warning at -5{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
 #endif
 
   glob = to_global(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
   // expected-warning at -4{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
 #endif
 
   glob = to_private(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
-  // expected-error at -4{{assigning 'int *' to '__global int *' changes address space of pointer}}
+  // expected-error at -4{{assigning '__private int *' to '__global int *__private' changes address space of pointer}}
   // expected-warning at -5{{passing non-generic address space pointer to to_private may cause dynamic conversion affecting performance}}
 #endif
 
   glob = to_local(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global int *__private' from 'int'}}
 #else
-  // expected-error at -4{{assigning '__local int *' to '__global int *' changes address space of pointer}}
+  // expected-error at -4{{assigning '__local int *' to '__global int *__private' changes address space of pointer}}
   // expected-warning at -5{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
 #endif
 
   global char *glob_c = to_global(loc);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion initializing '__global char *' with an expression of type 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion initializing '__global char *__private' with an expression of type 'int'}}
 #else
-  // expected-warning at -4{{incompatible pointer types initializing '__global char *' with an expression of type '__global int *'}}
+  // expected-warning at -4{{incompatible pointer types initializing '__global char *__private' with an expression of type '__global int *'}}
   // expected-warning at -5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
 #endif
 
   glob_wrong_ty = to_global(glob);
 #if __OPENCL_C_VERSION__ < CL_VERSION_2_0
-  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global float *' from 'int'}}
+  // expected-warning at -2{{incompatible integer to pointer conversion assigning to '__global float *__private' from 'int'}}
 #else
-  // expected-warning at -4{{incompatible pointer types assigning to '__global float *' from '__global int *'}}
+  // expected-warning at -4{{incompatible pointer types assigning to '__global float *__private' from '__global int *'}}
   // expected-warning at -5{{passing non-generic address space pointer to to_global may cause dynamic conversion affecting performance}}
 #endif
 

diff  --git a/clang/test/SemaOpenCL/vec_step.cl b/clang/test/SemaOpenCL/vec_step.cl
index d83ebf11fe03..0a2f6ef30e76 100644
--- a/clang/test/SemaOpenCL/vec_step.cl
+++ b/clang/test/SemaOpenCL/vec_step.cl
@@ -26,7 +26,7 @@ void foo(int3 arg1, int8 arg2) {
   int res11[vec_step(int16) == 16 ? 1 : -1];
   int res12[vec_step(void) == 1 ? 1 : -1];
 
-  int res13 = vec_step(*incomplete1); // expected-error {{'vec_step' requires built-in scalar or vector type, 'struct S' invalid}}
-  int res14 = vec_step(int16*); // expected-error {{'vec_step' requires built-in scalar or vector type, 'int16 *' invalid}}
+  int res13 = vec_step(*incomplete1); // expected-error {{'vec_step' requires built-in scalar or vector type, '__private struct S' invalid}}
+  int res14 = vec_step(int16*); // expected-error {{'vec_step' requires built-in scalar or vector type, '__private int16 *' invalid}}
   int res15 = vec_step(void(void)); // expected-error {{'vec_step' requires built-in scalar or vector type, 'void (void)' invalid}}
 }

diff  --git a/clang/test/SemaOpenCL/vector_conv_invalid.cl b/clang/test/SemaOpenCL/vector_conv_invalid.cl
index e32d84fd6a7e..a396809c08c5 100644
--- a/clang/test/SemaOpenCL/vector_conv_invalid.cl
+++ b/clang/test/SemaOpenCL/vector_conv_invalid.cl
@@ -7,7 +7,7 @@ typedef unsigned uint3 __attribute((ext_vector_type(3)));
 
 void vector_conv_invalid(const global int4 *const_global_ptr) {
   uint4 u = (uint4)(1);
-  int4 i = u; // expected-error{{initializing 'int4' (vector of 4 'int' values) with an expression of incompatible type 'uint4' (vector of 4 'unsigned int' values)}}
+  int4 i = u; // expected-error{{initializing '__private int4' (vector of 4 'int' values) with an expression of incompatible type '__private uint4' (vector of 4 'unsigned int' values)}}
   int4 e = (int4)u; // expected-error{{invalid conversion between ext-vector type 'int4' (vector of 4 'int' values) and 'uint4' (vector of 4 'unsigned int' values)}}
 
   uint3 u4 = (uint3)u; // expected-error{{invalid conversion between ext-vector type 'uint3' (vector of 3 'unsigned int' values) and 'uint4' (vector of 4 'unsigned int' values)}}
@@ -16,7 +16,7 @@ void vector_conv_invalid(const global int4 *const_global_ptr) {
   e = (constant int4)i;
   e = (private int4)i;
 
-  private int4 *private_ptr = (const private int4 *)const_global_ptr; // expected-error{{casting 'const __global int4 *' to type 'const int4 *' changes address space of pointer}}
-  global int4 *global_ptr = const_global_ptr;                 // expected-warning {{initializing '__global int4 *' with an expression of type 'const __global int4 *' discards qualifiers}}
+  private int4 *private_ptr = (const private int4 *)const_global_ptr; // expected-error{{casting 'const __global int4 *' to type 'const __private int4 *' changes address space of pointer}}
+  global int4 *global_ptr = const_global_ptr;                 // expected-warning {{initializing '__global int4 *__private' with an expression of type 'const __global int4 *__private' discards qualifiers}}
   global_ptr = (global int4 *)const_global_ptr;
 }

diff  --git a/clang/test/SemaOpenCLCXX/address-space-deduction.cl b/clang/test/SemaOpenCLCXX/address-space-deduction.cl
index 9bffeafb1c2d..0275ae57efe4 100644
--- a/clang/test/SemaOpenCLCXX/address-space-deduction.cl
+++ b/clang/test/SemaOpenCLCXX/address-space-deduction.cl
@@ -30,8 +30,8 @@ struct c2 {
 
 template <class T>
 struct x1 {
-//CHECK: -CXXMethodDecl {{.*}} operator= 'x1<T> &(const x1<T> &){{( __attribute__.*)?}} __generic'
-//CHECK: -CXXMethodDecl {{.*}} operator= '__generic x1<int> &(const __generic x1<int> &){{( __attribute__.*)?}} __generic'
+//CHECK: -CXXMethodDecl {{.*}} operator= 'x1<T> &(const x1<T> &__private){{( __attribute__.*)?}} __generic'
+//CHECK: -CXXMethodDecl {{.*}} operator= '__generic x1<int> &(const __generic x1<int> &__private){{( __attribute__.*)?}} __generic'
   x1<T>& operator=(const x1<T>& xx) {
     y = xx.y;
     return *this;
@@ -41,8 +41,8 @@ struct x1 {
 
 template <class T>
 struct x2 {
-//CHECK: -CXXMethodDecl {{.*}} foo 'void (x1<T> *){{( __attribute__.*)?}} __generic'
-//CHECK: -CXXMethodDecl {{.*}} foo 'void (__generic x1<int> *){{( __attribute__.*)?}} __generic'
+//CHECK: -CXXMethodDecl {{.*}} foo 'void (x1<T> *__private){{( __attribute__.*)?}} __generic'
+//CHECK: -CXXMethodDecl {{.*}} foo 'void (__generic x1<int> *__private){{( __attribute__.*)?}} __generic'
   void foo(x1<T>* xx) {
     m[0] = *xx;
   }
@@ -57,10 +57,10 @@ void bar(__global x1<int> *xx, __global x2<int> *bar) {
 template <typename T>
 class x3 : public T {
 public:
-  //CHECK: -CXXConstructorDecl {{.*}} x3<T> 'void (const x3<T> &){{( __attribute__.*)?}} __generic'
+  //CHECK: -CXXConstructorDecl {{.*}} x3<T> 'void (const x3<T> &__private){{( __attribute__.*)?}} __generic'
   x3(const x3 &t);
 };
-//CHECK: -CXXConstructorDecl {{.*}} x3<T> 'void (const x3<T> &){{( __attribute__.*)?}} __generic'
+//CHECK: -CXXConstructorDecl {{.*}} x3<T> 'void (const x3<T> &__private){{( __attribute__.*)?}} __generic'
 template <typename T>
 x3<T>::x3(const x3<T> &t) {}
 
@@ -68,7 +68,7 @@ template <class T>
 T xxx(T *in1, T in2) {
   // This pointer can't be deduced to generic because addr space
   // will be taken from the template argument.
-  //CHECK: `-VarDecl {{.*}} i 'T *' cinit
+  //CHECK: `-VarDecl {{.*}} '__private T *__private' cinit
   T *i = in1;
   T ii;
   __private T *ptr = ⅈ
@@ -92,15 +92,15 @@ __kernel void test() {
 }
 
 // Addr space for pointer/reference to an array
-//CHECK: FunctionDecl {{.*}} t1 'void (const float (__generic &)[2])'
+//CHECK: FunctionDecl {{.*}} t1 'void (const float (__generic &__private)[2])'
 void t1(const float (&fYZ)[2]);
-//CHECK: FunctionDecl {{.*}} t2 'void (const float (__generic *)[2])'
+//CHECK: FunctionDecl {{.*}} t2 'void (const float (__generic *__private)[2])'
 void t2(const float (*fYZ)[2]);
-//CHECK: FunctionDecl {{.*}} t3 'void (float (((__generic *)))[2])'
+//CHECK: FunctionDecl {{.*}} t3 'void (float (((__generic *__private)))[2])'
 void t3(float(((*fYZ)))[2]);
-//CHECK: FunctionDecl {{.*}} t4 'void (float (((__generic *__generic *)))[2])'
+//CHECK: FunctionDecl {{.*}} t4 'void (float (((__generic *__generic *__private)))[2])'
 void t4(float(((**fYZ)))[2]);
-//CHECK: FunctionDecl {{.*}} t5 'void (float (__generic *(__generic *))[2])'
+//CHECK: FunctionDecl {{.*}} t5 'void (float (__generic *(__generic *__private))[2])'
 void t5(float (*(*fYZ))[2]);
 
 __kernel void k() {

diff  --git a/clang/test/SemaOpenCLCXX/address-space-lambda.cl b/clang/test/SemaOpenCLCXX/address-space-lambda.cl
index 7110afaee1ee..eeea71e6353f 100644
--- a/clang/test/SemaOpenCLCXX/address-space-lambda.cl
+++ b/clang/test/SemaOpenCLCXX/address-space-lambda.cl
@@ -1,6 +1,6 @@
 //RUN: %clang_cc1 %s -cl-std=clc++ -pedantic -ast-dump -verify | FileCheck %s
 
-//CHECK: CXXMethodDecl {{.*}} constexpr operator() 'int (int) const __generic'
+//CHECK: CXXMethodDecl {{.*}} constexpr operator() 'int (__private int) const __generic'
 auto glambda = [](auto a) { return a; };
 
 __kernel void test() {
@@ -25,16 +25,16 @@ __kernel void test() {
 }
 
 __kernel void test_qual() {
-//CHECK: |-CXXMethodDecl {{.*}} constexpr operator() 'void () const'
+//CHECK: |-CXXMethodDecl {{.*}} constexpr operator() 'void () const __private'
   auto priv1 = []() __private {};
   priv1();
 //CHECK: |-CXXMethodDecl {{.*}} constexpr operator() 'void () const __generic'
   auto priv2 = []() __generic {};
   priv2();
-  auto priv3 = []() __global {}; //expected-note{{candidate function not viable: 'this' object is in default address space, but method expects object in address space '__global'}} //expected-note{{conversion candidate of type 'void (*)()'}}
+  auto priv3 = []() __global {}; //expected-note{{candidate function not viable: 'this' object is in address space '__private', but method expects object in address space '__global'}} //expected-note{{conversion candidate of type 'void (*)()'}}
   priv3(); //expected-error{{no matching function for call to object of type}}
 
-  __constant auto const1 = []() __private{}; //expected-note{{candidate function not viable: 'this' object is in address space '__constant', but method expects object in default address space}} //expected-note{{conversion candidate of type 'void (*)()'}}
+  __constant auto const1 = []() __private{}; //expected-note{{candidate function not viable: 'this' object is in address space '__constant', but method expects object in address space '__private'}} //expected-note{{conversion candidate of type 'void (*)()'}}
   const1(); //expected-error{{no matching function for call to object of type '__constant (lambda at}}
   __constant auto const2 = []() __generic{}; //expected-note{{candidate function not viable: 'this' object is in address space '__constant', but method expects object in address space '__generic'}} //expected-note{{conversion candidate of type 'void (*)()'}}
   const2(); //expected-error{{no matching function for call to object of type '__constant (lambda at}}
@@ -43,7 +43,7 @@ __kernel void test_qual() {
   const3();
 
   [&] () __global {} (); //expected-error{{no matching function for call to object of type '(lambda at}} expected-note{{candidate function not viable: 'this' object is in default address space, but method expects object in address space '__global'}}
-  [&] () __private {} (); //expected-error{{no matching function for call to object of type '(lambda at}} expected-note{{candidate function not viable: 'this' object is in default address space, but method expects object in default address space}}
+  [&] () __private {} (); //expected-error{{no matching function for call to object of type '(lambda at}} expected-note{{candidate function not viable: 'this' object is in default address space, but method expects object in address space '__private'}}
 
   [&] __private {} (); //expected-error{{lambda requires '()' before attribute specifier}} expected-error{{expected body of lambda expression}}
 

diff  --git a/clang/test/SemaOpenCLCXX/address-space-templates.cl b/clang/test/SemaOpenCLCXX/address-space-templates.cl
index 0acc5145a632..6b304d2fdda4 100644
--- a/clang/test/SemaOpenCLCXX/address-space-templates.cl
+++ b/clang/test/SemaOpenCLCXX/address-space-templates.cl
@@ -19,7 +19,7 @@ T *foo2(T *i) {
 
 template <typename T>
 void foo3() {
-  __private T ii; // expected-error{{conflicting address space qualifiers are provided between types 'T' and '__global int'}}
+  __private T ii; // expected-error{{conflicting address space qualifiers are provided between types '__private T' and '__global int'}}
 }
 
 void bar() {

diff  --git a/clang/test/SemaOpenCLCXX/addrspace-auto.cl b/clang/test/SemaOpenCLCXX/addrspace-auto.cl
index 56fd9eb58ddc..2860237ddef7 100644
--- a/clang/test/SemaOpenCLCXX/addrspace-auto.cl
+++ b/clang/test/SemaOpenCLCXX/addrspace-auto.cl
@@ -6,30 +6,30 @@ auto ai = i;
 
 kernel void test() {
   int i;
-  //CHECK: VarDecl {{.*}} ai 'int':'int'
+  //CHECK: VarDecl {{.*}} ai '__private int':'__private int'
   auto ai = i;
 
   constexpr int c = 1;
   //CHECK: VarDecl {{.*}} used cai '__constant int':'__constant int'
   __constant auto cai = c;
-  //CHECK: VarDecl {{.*}} aii 'int':'int'
+  //CHECK: VarDecl {{.*}} aii '__private int':'__private int'
   auto aii = cai;
 
-  //CHECK: VarDecl {{.*}} ref 'int &'
+  //CHECK: VarDecl {{.*}} ref '__private int &__private'
   auto &ref = i;
-  //CHECK: VarDecl {{.*}} ptr 'int *'
+  //CHECK: VarDecl {{.*}} ptr '__private int *__private'
   auto *ptr = &i;
-  //CHECK: VarDecl {{.*}} ref_c '__constant int &'
+  //CHECK: VarDecl {{.*}} ref_c '__constant int &__private'
   auto &ref_c = cai;
 
-  //CHECK: VarDecl {{.*}} ptrptr 'int *__generic *'
+  //CHECK: VarDecl {{.*}} ptrptr '__private int *__generic *__private'
   auto **ptrptr = &ptr;
-  //CHECK: VarDecl {{.*}} refptr 'int *__generic &'
+  //CHECK: VarDecl {{.*}} refptr '__private int *__generic &__private'
   auto *&refptr = ptr;
 
-  //CHECK: VarDecl {{.*}} invalid gref '__global auto &'
-  __global auto &gref = i; //expected-error{{variable 'gref' with type '__global auto &' has incompatible initializer of type 'int'}}
+  //CHECK: VarDecl {{.*}} invalid gref '__global auto &__private'
+  __global auto &gref = i; //expected-error{{variable 'gref' with type '__global auto &__private' has incompatible initializer of type '__private int'}}
   __local int *ptr_l;
-  //CHECK: VarDecl {{.*}} invalid gptr '__global auto *'
-  __global auto *gptr = ptr_l; //expected-error{{variable 'gptr' with type '__global auto *' has incompatible initializer of type '__local int *'}}
+  //CHECK: VarDecl {{.*}} invalid gptr '__global auto *__private'
+  __global auto *gptr = ptr_l; //expected-error{{variable 'gptr' with type '__global auto *__private' has incompatible initializer of type '__local int *__private'}}
 }


        


More information about the cfe-commits mailing list