diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-02-01 15:24:58 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-02-01 15:24:58 +0000 |
| commit | 1732850158f30aa929f90dc88d49c98042b273b3 (patch) | |
| tree | f5de3a606070402a60386c0f88612e83162228f9 /clang/test | |
| parent | dbe39270269daa6dc9cba699c1de9de309a7d4fb (diff) | |
| download | bcm5719-llvm-1732850158f30aa929f90dc88d49c98042b273b3.tar.gz bcm5719-llvm-1732850158f30aa929f90dc88d49c98042b273b3.zip | |
Fix a thinko where I didn't update a consistency check for
PackExpansionType in the AST reader. We need more testing for variadic
templates + PCH, but this fixes PR9073.
llvm-svn: 124662
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/PCH/cxx-variadic-templates.cpp | 11 | ||||
| -rw-r--r-- | clang/test/PCH/cxx-variadic-templates.h | 18 |
2 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/PCH/cxx-variadic-templates.cpp b/clang/test/PCH/cxx-variadic-templates.cpp new file mode 100644 index 00000000000..9b1df9a737f --- /dev/null +++ b/clang/test/PCH/cxx-variadic-templates.cpp @@ -0,0 +1,11 @@ +// Test this without pch. +// RUN: %clang_cc1 -std=c++0x -include %S/cxx-variadic-templates.h -verify %s -ast-dump -o - +// RUN: %clang_cc1 -std=c++0x -include %S/cxx-variadic-templates.h %s -emit-llvm -o - | FileCheck %s + +// Test with pch. +// RUN: %clang_cc1 -std=c++0x -x c++-header -emit-pch -o %t %S/cxx-variadic-templates.h +// RUN: %clang_cc1 -std=c++0x -include-pch %t -verify %s -ast-dump -o - +// RUN: %clang_cc1 -std=c++0x -include-pch %t %s -emit-llvm -o - | FileCheck %s + +// CHECK: allocate_shared +shared_ptr<int> spi = shared_ptr<int>::allocate_shared(1, 2); diff --git a/clang/test/PCH/cxx-variadic-templates.h b/clang/test/PCH/cxx-variadic-templates.h new file mode 100644 index 00000000000..f6ee7876c2c --- /dev/null +++ b/clang/test/PCH/cxx-variadic-templates.h @@ -0,0 +1,18 @@ +// PR9073 +template<typename _Tp> +class shared_ptr{ +public: + template<class _Alloc, class ..._Args> + static + shared_ptr<_Tp> + allocate_shared(const _Alloc& __a, _Args&& ...__args); +}; + +template<class _Tp> +template<class _Alloc, class ..._Args> +shared_ptr<_Tp> +shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args) +{ + shared_ptr<_Tp> __r; + return __r; +} |

