diff options
author | Xiuli Pan <xiulipan@outlook.com> | 2016-05-03 05:37:07 +0000 |
---|---|---|
committer | Xiuli Pan <xiulipan@outlook.com> | 2016-05-03 05:37:07 +0000 |
commit | 2d12e65b6b48c03b47c9cace73f5e6b840e84f30 (patch) | |
tree | da5da3f13afdbaf597f065de26bdb23136ee9e33 | |
parent | 59e9748cb533daa29a24c360ea30a94425e2eb77 (diff) | |
download | bcm5719-llvm-2d12e65b6b48c03b47c9cace73f5e6b840e84f30.tar.gz bcm5719-llvm-2d12e65b6b48c03b47c9cace73f5e6b840e84f30.zip |
[OpenCL] Fix pipe type dump.
Summary:
Fix the dump of PipeType.
Now we will have "pipe int" and element type.
Reviewers: yaxunl, Anastasia
Subscribers: cfe-commits, bader
Differential Revision: http://reviews.llvm.org/D19524
llvm-svn: 268364
-rw-r--r-- | clang/lib/AST/ASTDumper.cpp | 3 | ||||
-rw-r--r-- | clang/lib/AST/TypePrinter.cpp | 3 | ||||
-rw-r--r-- | clang/test/Misc/ast-dump-pipe.cl | 4 | ||||
-rw-r--r-- | clang/test/SemaOpenCL/invalid-access-qualifier.cl | 2 | ||||
-rw-r--r-- | clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl | 2 |
5 files changed, 11 insertions, 3 deletions
diff --git a/clang/lib/AST/ASTDumper.cpp b/clang/lib/AST/ASTDumper.cpp index 027889747e3..05d8da298cd 100644 --- a/clang/lib/AST/ASTDumper.cpp +++ b/clang/lib/AST/ASTDumper.cpp @@ -404,6 +404,9 @@ namespace { void VisitAtomicType(const AtomicType *T) { dumpTypeAsChild(T->getValueType()); } + void VisitPipeType(const PipeType *T) { + dumpTypeAsChild(T->getElementType()); + } void VisitAdjustedType(const AdjustedType *T) { dumpTypeAsChild(T->getOriginalType()); } diff --git a/clang/lib/AST/TypePrinter.cpp b/clang/lib/AST/TypePrinter.cpp index 263a24f4ae6..0356dc515f4 100644 --- a/clang/lib/AST/TypePrinter.cpp +++ b/clang/lib/AST/TypePrinter.cpp @@ -895,7 +895,8 @@ void TypePrinter::printAtomicAfter(const AtomicType *T, raw_ostream &OS) { } void TypePrinter::printPipeBefore(const PipeType *T, raw_ostream &OS) { IncludeStrongLifetimeRAII Strong(Policy); - OS << "pipe"; + OS << "pipe "; + print(T->getElementType(), OS, StringRef()); spaceBeforePlaceHolder(OS); } diff --git a/clang/test/Misc/ast-dump-pipe.cl b/clang/test/Misc/ast-dump-pipe.cl new file mode 100644 index 00000000000..1690e5c17a0 --- /dev/null +++ b/clang/test/Misc/ast-dump-pipe.cl @@ -0,0 +1,4 @@ +// RUN: %clang_cc1 -triple spir64 -cl-std=CL2.0 -ast-dump -ast-dump-filter pipetype %s | FileCheck -strict-whitespace %s +typedef pipe int pipetype; +// CHECK: PipeType {{.*}} 'pipe int' +// CHECK-NEXT: BuiltinType {{.*}} 'int' diff --git a/clang/test/SemaOpenCL/invalid-access-qualifier.cl b/clang/test/SemaOpenCL/invalid-access-qualifier.cl index 5af3c4c959c..8dc7002e1b4 100644 --- a/clang/test/SemaOpenCL/invalid-access-qualifier.cl +++ b/clang/test/SemaOpenCL/invalid-access-qualifier.cl @@ -8,7 +8,7 @@ void test2(read_only write_only image1d_t i){} // expected-error{{multiple acces void test3(read_only read_only image1d_t i){} // expected-error{{multiple access qualifiers}} #ifdef CL20 -void test4(read_write pipe int i){} // expected-error{{access qualifier 'read_write' can not be used for 'pipe'}} +void test4(read_write pipe int i){} // expected-error{{access qualifier 'read_write' can not be used for 'pipe int'}} #else void test4(__read_write image1d_t i) {} // expected-error{{access qualifier '__read_write' can not be used for '__read_write image1d_t' earlier than OpenCL2.0 version}} #endif diff --git a/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl b/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl index 0e44855fb02..c8e582e6e87 100644 --- a/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl +++ b/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl @@ -7,5 +7,5 @@ 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 'pipe' can only be used as a function parameter}} + pipe int p; // expected-error {{type 'pipe int' can only be used as a function parameter}} } |