diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-05-17 22:09:56 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-05-17 22:09:56 +0000 |
| commit | 403de3f932b5d1d3e4e58f69960000911d04dd2a (patch) | |
| tree | 9a6c4fa89a831a217520de692bf9be4a4973911a /lib/CodeGen/CGExprConstant.cpp | |
| parent | 5adc0515aaacb6c4d4f0c9626d86c1e5c177467c (diff) | |
Fix a nasty bug where inside StringLiteralParser:
1. We would assume that the length of the string literal token was at least 2
2. We would allocate a buffer with size length-2
And when the stars aligned (one of which would be an invalid source location due to stale PCH)
The length would be 0 and we would try to allocate a 4GB buffer.
Add checks for this corner case and a bunch of asserts.
(We really really should have had an assert for 1.).
Note that there's no test case since I couldn't get one (it was major PITA to reproduce),
maybe later.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131492 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprConstant.cpp')
0 files changed, 0 insertions, 0 deletions
