History log of /external/clang/test/SemaTemplate/exception-spec-crash.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
08235661cf457978ba4645ec8e22697aebabe4fa 18-Oct-2013 Alp Toker <alp@nuanti.com> Fix missed exception spec checks and crashes

Delayed exception specification checking for defaulted members and virtual
destructors are both susceptible to mutation during iteration so we need to
swap and process the worklists.

This resolves both accepts-invalid and rejects-valid issues and moreover fixes
potential invalid memory access as the contents of the vectors change during
iteration and recursive template instantiation.

Checking can be further delayed where parent classes aren't yet fully defined.
This patch adds two assertions at end of TU to ensure no specs are left
unchecked as was happenning before the fix, plus a test case from Marshall Clow
for the defaulted member crash extracted from the libcxx headers.

Reviewed by Richard Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/exception-spec-crash.cpp
682a56b15ae01cc8154d4800d29498da93911981 17-Oct-2013 Alp Toker <alp@nuanti.com> Revert "Fix missed exception spec checks and crashes"

The changes caused the sanitizer bot to hang:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/2311

Needs investigation.

This reverts commit r192914.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/exception-spec-crash.cpp
bb81f880aa77cfd09dedfc72a9b87262889ae75c 17-Oct-2013 Alp Toker <alp@nuanti.com> Fix missed exception spec checks and crashes

Delayed exception specification checking for defaulted members and virtual
destructors are both susceptible to mutation during iteration so we need to
process the worklists fully.

This resolves both accepts-invalid and rejects-valid issues and moreover fixes
potential invalid memory access as the contents of the vectors change during
iteration and recursive template instantiation.

This patch also adds two assertions at end of TU to ensure no specs are left
unchecked as was happenning before the fix, plus a test case from Marshall Clow
for the defaulted member crash extracted from the libcxx headers.

Reviewed by Richard Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/exception-spec-crash.cpp