]> granicus.if.org Git - clang/commit
Implement an additional fix for infinite recursion of deleted special
authorSean Hunt <scshunt@csclub.uwaterloo.ca>
Wed, 18 May 2011 03:41:58 +0000 (03:41 +0000)
committerSean Hunt <scshunt@csclub.uwaterloo.ca>
Wed, 18 May 2011 03:41:58 +0000 (03:41 +0000)
commit71a682f98a1e79c84e95e45f94041bcd7a694ef5
tree0315d3fad801fbd641bf21b10f4b6a92a337cde4
parentd02fec890e147a7726410108d4b1d74a842fc9ff
Implement an additional fix for infinite recursion of deleted special
member functions by making sure that they're on the record before
checking for deletion.

Also make sure source locations are valid to avoid crashes.

Unfortunately, the declare-all-implicit-members approach is still
required in order to ensure that dependency loops do not result in
incorrectly deleting functions (since they are to be deleted at the
declaration point per the standard).

Fixes PR9917

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131520 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaDeclCXX.cpp
test/SemaCXX/defaulted-ctor-loop.cpp [new file with mode: 0644]