diff options
Diffstat (limited to 'clang/test/Analysis/misc-ps-region-store.cpp')
| -rw-r--r-- | clang/test/Analysis/misc-ps-region-store.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/clang/test/Analysis/misc-ps-region-store.cpp b/clang/test/Analysis/misc-ps-region-store.cpp index bfa5e5cbb9b..dbdfa772a6b 100644 --- a/clang/test/Analysis/misc-ps-region-store.cpp +++ b/clang/test/Analysis/misc-ps-region-store.cpp @@ -159,3 +159,50 @@ int r8375510(R8375510 x, R8375510 y) { for (; ; x++) { } } +// PR8426 -- this used to crash. + +void Use(void* to); + +template <class T> class Foo { + ~Foo(); + struct Bar; + Bar* bar_; +}; + +template <class T> Foo<T>::~Foo() { + Use(bar_); + T::DoSomething(); + bar_->Work(); +} + +// PR8427 -- this used to crash. + +class Dummy {}; + +bool operator==(Dummy, int); + +template <typename T> +class Foo2 { + bool Bar(); +}; + +template <typename T> +bool Foo2<T>::Bar() { + return 0 == T(); +} + +// PR8433 -- this used to crash. + +template <typename T> +class Foo3 { + public: + void Bar(); + void Baz(); + T value_; +}; + +template <typename T> +void Foo3<T>::Bar() { + Baz(); + value_(); +} |

