From c1538c08d70cd0733554b122f80eac108822606c Mon Sep 17 00:00:00 2001 From: John McCall Date: Wed, 30 Sep 2009 01:01:30 +0000 Subject: Detect operator-> chains of arbitrary length. Use a terrible data structure to strike fear into the hearts of CPUs everywhere. llvm-svn: 83133 --- clang/test/SemaCXX/overloaded-operator.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'clang/test/SemaCXX/overloaded-operator.cpp') diff --git a/clang/test/SemaCXX/overloaded-operator.cpp b/clang/test/SemaCXX/overloaded-operator.cpp index c849a145e2c..31da58dfcd4 100644 --- a/clang/test/SemaCXX/overloaded-operator.cpp +++ b/clang/test/SemaCXX/overloaded-operator.cpp @@ -224,3 +224,19 @@ void m() { AX a; a->b = 0; // expected-error {{circular pointer delegation detected}} } + +struct CircA { + struct CircB& operator->(); + int val; +}; +struct CircB { + struct CircC& operator->(); +}; +struct CircC { + struct CircA& operator->(); +}; + +void circ() { + CircA a; + a->val = 0; // expected-error {{circular pointer delegation detected}} +} -- cgit v1.2.3