HomePhabricator

Fix a corner case with the handling of noreturn functions.

Description

Fix a corner case with the handling of noreturn functions.
If a noreturn function was the last function in a section,
we wouldn't correctly back up the saved-pc value into the
correct section leading to us showing the wrong function in
the backtrace.

Also add a backtrace test with an attempt to elicit this
particular layout. It happens to work out with clang -Os
but other compilers may not quite get the same layout I'm
getting at that opt setting. We'll still be exercising the
basic noreturn handling in the unwinder even if we don't get
one function at the very end of a section.

rdar://problem/16051613

Details

Committed
jmolendaNov 7 2014, 9:38 PM
Parents
rL221574: [c++1z] Implement nested-namespace-definitions.
Branches
Unknown
Tags
Unknown

Event Timeline