diff options
Diffstat (limited to 'lld/lib/Core/Resolver.cpp')
| -rw-r--r-- | lld/lib/Core/Resolver.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp index b73d80adc70..ba4b61bb886 100644 --- a/lld/lib/Core/Resolver.cpp +++ b/lld/lib/Core/Resolver.cpp @@ -321,8 +321,10 @@ void Resolver::markLive(const Atom *atom) { } static bool isBackref(const Reference *ref) { - return ref->kindNamespace() == lld::Reference::KindNamespace::all && - ref->kindValue() == lld::Reference::kindLayoutBefore; + if (ref->kindNamespace() != lld::Reference::KindNamespace::all) + return false; + return (ref->kindValue() == lld::Reference::kindLayoutBefore || + ref->kindValue() == lld::Reference::kindGroupChild); } // remove all atoms not actually used |

