llvm-project/clang/lib
Erich Keane ef65d6c5c4 Replace Const-Member checking with non-recursive version.
As reported in PR39946, these two implementations cause stack overflows
to occur when a type recursively contains itself.  While this only
happens when an incomplete version of itself is used by membership (and
thus an otherwise invalid program), the crashes might be surprising.

The solution here is to replace the recursive implementation with one
that uses a std::vector as a queue.  Old values are kept around to
prevent re-checking already checked types.

Change-Id: I582bb27147104763d7daefcfee39d91f408b9fa8
llvm-svn: 348899
2018-12-11 21:54:52 +00:00
..
ARCMigrate Misc typos fixes in ./lib folder 2018-12-10 12:37:46 +00:00
AST Replace Const-Member checking with non-recursive version. 2018-12-11 21:54:52 +00:00
ASTMatchers Revert rL347462 "[ASTMatchers] Add hasSideEffect() matcher." 2018-11-22 14:26:33 +00:00
Analysis Misc typos fixes in ./lib folder 2018-12-10 12:37:46 +00:00
Basic Move CodeGenOptions from Frontend to Basic 2018-12-11 03:18:39 +00:00
CodeGen Remove CGDebugInfo::getOrCreateFile() and use TheCU->getFile() directly. 2018-12-11 16:58:46 +00:00
CrossTU [CTU] Add triple/lang mismatch handling 2018-12-07 16:32:43 +00:00
Driver Revert "[PowerPC] Make no-PIC default to match GCC - CLANG" 2018-12-11 15:47:57 +00:00
Edit [Fixed Point Arithmetic] Fixed Point to Boolean Cast 2018-10-23 17:55:35 +00:00
Format [clang-format] Do not treat asm clobber [ as ObjCExpr, refined 2018-11-22 14:49:55 +00:00
Frontend Move CodeGenOptions from Frontend to Basic 2018-12-11 03:18:39 +00:00
FrontendTool PTH-- Remove feature entirely- 2018-12-04 14:34:09 +00:00
Headers [X86] Remove the addcarry builtins. Leaving only the addcarryx builtins since that matches gcc. 2018-12-10 06:07:59 +00:00
Index [Index] Expose USR generation for types 2018-11-26 15:24:48 +00:00
Lex Misc typos fixes in ./lib folder 2018-12-10 12:37:46 +00:00
Parse Misc typos fixes in ./lib folder 2018-12-10 12:37:46 +00:00
Rewrite Misc typos fixes in ./lib folder 2018-12-10 12:37:46 +00:00
Sema Replace Const-Member checking with non-recursive version. 2018-12-11 21:54:52 +00:00
Serialization Use zip_longest for iterator range comparisons. NFC. 2018-12-10 15:16:37 +00:00
StaticAnalyzer [analyzer][CStringChecker] evaluate explicit_bzero 2018-12-11 18:57:07 +00:00
Tooling clang::tooling::Diagnostic: Don't store offset in the scratch space. 2018-11-21 01:08:46 +00:00
CMakeLists.txt Add Cross Translation Unit support library 2017-09-22 11:11:01 +00:00