diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-03-04 04:23:07 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-03-04 04:23:07 +0000 |
| commit | 34a2209177d7c137d2fde410e2a27de4d5c5e78a (patch) | |
| tree | 35085412d93f237f91d5299d33afef039280a12e /clang/lib/CodeGen/CGExprComplex.cpp | |
| parent | a1493b3b4d75f73be81423eb3e1dafc47f37ed3f (diff) | |
| download | llvm-34a2209177d7c137d2fde410e2a27de4d5c5e78a.zip llvm-34a2209177d7c137d2fde410e2a27de4d5c5e78a.tar.gz llvm-34a2209177d7c137d2fde410e2a27de4d5c5e78a.tar.bz2 | |
Change Parser::ParseCaseStatement to use an iterative approach to parsing
multiple sequential case statements instead of doing it with recursion. This
fixes a problem where we run out of stack space parsing 100K directly nested
cases.
There are a couple other problems that prevent this from being useful in
practice (right now the example only parses correctly with -disable-free and
doesn't work with -emit-llvm), but this is a start.
I'm not including a testcase because it is large and uninteresting for
regtesting.
Sebastian, I would appreciate it if you could scrutinize the smart pointer
gymnastics I do.
llvm-svn: 66011
Diffstat (limited to 'clang/lib/CodeGen/CGExprComplex.cpp')
0 files changed, 0 insertions, 0 deletions
