diff options
author | Stephen Wilson <wilsons@start.ca> | 2011-05-20 04:27:12 +0000 |
---|---|---|
committer | Stephen Wilson <wilsons@start.ca> | 2011-05-20 04:27:12 +0000 |
commit | 8063a4a47a5ace1fc01c3bf843fd2bdfb504481a (patch) | |
tree | 76e388d02b39c8ab1e164d86ac20257c5f5871da /clang/lib/Sema/SemaExceptionSpec.cpp | |
parent | f663741db009e4bdfd569e4ba1df7bba95e826db (diff) | |
download | bcm5719-llvm-8063a4a47a5ace1fc01c3bf843fd2bdfb504481a.tar.gz bcm5719-llvm-8063a4a47a5ace1fc01c3bf843fd2bdfb504481a.zip |
Do not parse DIE's outside a compilation units range.
In DWARFCompileUnit::ExtractDIEsIfNeeded we are relying on a compilation units
DIEs to be terminated by a null entry. I think the standard is fairly clear
that all sibling chains are to be terminated by null, but at least gcc 4.5.2
disagrees -- the top level chain drops the final entry. This results in us
interpreting the next compilation unit header as a DIE.
Regardless of whether gcc is right or wrong, we should not overstep a
compilation units extent. This patch ensures that we do not attempt to extract
a DIE beyond the length specified for a given DWARFCompileUnit by ensuring our
current offset is strictly less than the start of the next CU.
llvm-svn: 131721
Diffstat (limited to 'clang/lib/Sema/SemaExceptionSpec.cpp')
0 files changed, 0 insertions, 0 deletions