[PATCH] Segfault in AArch64 backend with -g and -mbig-endian
Oliver Stannard
oliver.stannard at arm.com
Thu Aug 14 01:38:22 PDT 2014
================
Comment at: lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:538
@@ -537,3 +537,3 @@
const MCSection *Sec = Fixup.getValue()->FindAssociatedSection();
- const MCSectionELF *SecELF = static_cast<const MCSectionELF *>(Sec);
- if (SecELF->getSectionName() == ".eh_frame")
+ const MCSectionELF *SecELF = dyn_cast_or_null<const MCSectionELF>(Sec);
+ if (SecELF && SecELF->getSectionName() == ".eh_frame")
----------------
Eric Christopher wrote:
> Fixup to a null section? How's that happen?
This is the section associated with the value to put into the fixup location, not the section containing the fixup location. This can be null if:
* It is a symbol which is not defined by this translation unit
* It is the difference between two temporary symbols, for example to find the length of a debug data structure.
http://reviews.llvm.org/D4870
More information about the llvm-commits
mailing list