mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-12 07:37:34 +00:00
Temporarily relax a check in the debug info verifier.
The clang frontend helps out GDB by emitting the members of local anonymous unions as artificial local variables with shared storage. When SROA splits the storage for artificial local variables that are smaller than the entire union, the overhang piece will be outside of the allotted space for the variable and this check fails. rdar://problem/20730771 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
86b699c278
commit
b3b655c5a3
@ -3478,6 +3478,15 @@ void Verifier::verifyBitPieceExpression(const DbgInfoIntrinsic &I,
|
||||
if (!E->isBitPiece())
|
||||
return;
|
||||
|
||||
// The frontend helps out GDB by emitting the members of local anonymous
|
||||
// unions as artificial local variables with shared storage. When SROA splits
|
||||
// the storage for artificial local variables that are smaller than the entire
|
||||
// union, the overhang piece will be outside of the allotted space for the
|
||||
// variable and this check fails.
|
||||
// FIXME: Remove this check as soon as clang stops doing this; it hides bugs.
|
||||
if (V->isArtificial())
|
||||
return;
|
||||
|
||||
// If there's no size, the type is broken, but that should be checked
|
||||
// elsewhere.
|
||||
uint64_t VarSize = getVariableSize(*V, TypeRefs);
|
||||
|
Loading…
x
Reference in New Issue
Block a user