diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-12-21 23:03:27 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-12-21 23:03:27 +0000 |
commit | 335153679daf37c13a8c89266056b4be061e34e3 (patch) | |
tree | 23561b31ed9ce97012fd0baec920979621e458fa /test/Misc/diag-template-diffing.cpp | |
parent | 9b3f02c3526e31fcb9c41afef143eae73643e257 (diff) |
Use a safe default width for template-diff'ing integral arguments, in
case we can't find an exact width to use. Fixes crash in
<rdar://problem/12456626>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170951 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Misc/diag-template-diffing.cpp')
-rw-r--r-- | test/Misc/diag-template-diffing.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/Misc/diag-template-diffing.cpp b/test/Misc/diag-template-diffing.cpp index e7a8048870..bb85a45d5d 100644 --- a/test/Misc/diag-template-diffing.cpp +++ b/test/Misc/diag-template-diffing.cpp @@ -812,6 +812,24 @@ namespace PR14489 { // CHECK-ELIDE-NOTREE: non-const lvalue reference to type 'VariableList<>' cannot bind to a temporary of type 'VariableList<>' } +namespace rdar12456626 { + struct IntWrapper { + typedef int type; + }; + + template<typename T, typename T::type V> + struct X { }; + + struct A { + virtual X<IntWrapper, 1> foo(); + }; + + struct B : A { + // CHECK-ELIDE-NOTREE: virtual function 'foo' has a different return type + virtual X<IntWrapper, 2> foo(); + }; +} + // CHECK-ELIDE-NOTREE: {{[0-9]*}} errors generated. // CHECK-NOELIDE-NOTREE: {{[0-9]*}} errors generated. // CHECK-ELIDE-TREE: {{[0-9]*}} errors generated. |