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/CGDecl.cpp | |
parent | a1493b3b4d75f73be81423eb3e1dafc47f37ed3f (diff) | |
download | bcm5719-llvm-34a2209177d7c137d2fde410e2a27de4d5c5e78a.tar.gz bcm5719-llvm-34a2209177d7c137d2fde410e2a27de4d5c5e78a.zip |
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/CGDecl.cpp')
0 files changed, 0 insertions, 0 deletions