summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/default2.cpp
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2016-06-14 02:55:56 +0000
committerSerge Pavlov <sepavloff@gmail.com>2016-06-14 02:55:56 +0000
commitb82a9401dfb76131c83f9bb441bf624c1ae7cc7f (patch)
tree57f94c31620c257045a351f953125b3fbda6c52e /clang/test/SemaCXX/default2.cpp
parent84685fc8310e89136409a43846dc1018e5a88489 (diff)
downloadbcm5719-llvm-b82a9401dfb76131c83f9bb441bf624c1ae7cc7f.tar.gz
bcm5719-llvm-b82a9401dfb76131c83f9bb441bf624c1ae7cc7f.zip
Detect recursive default argument definition
If definition of default function argument uses itself, clang crashed, because corresponding function parameter is not associated with the default argument yet. With this fix clang emits appropriate error message. This change fixes PR28105. Differential Revision: http://reviews.llvm.org/D21301 llvm-svn: 272623
Diffstat (limited to 'clang/test/SemaCXX/default2.cpp')
-rw-r--r--clang/test/SemaCXX/default2.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/default2.cpp b/clang/test/SemaCXX/default2.cpp
index c4d40b4280e..8f77f300572 100644
--- a/clang/test/SemaCXX/default2.cpp
+++ b/clang/test/SemaCXX/default2.cpp
@@ -128,3 +128,7 @@ S<1> s;
template <int I1 = I2, int I2 = 1> struct T {}; // expected-error-re {{use of undeclared identifier 'I2'{{$}}}}
T<0, 1> t;
+
+struct PR28105 {
+ PR28105 (int = 0, int = 0, PR28105 = 0); // expected-error{{recursive evaluation of default argument}}
+};
OpenPOWER on IntegriCloud