This patch fixes two things
- If any section within comdat group is marked Live an entire group is marked live.
- On some occasions GC may crash if symbol references section which is a member of comdat group. This happens in case compiler creates section relocation, i.e:
leaq .text._Z3fooIiEvv(%rip), %rax
I don't think this is correct because the last forEachSuccessor could mark a section in a comdat group live, so you want to repeat this process until converge.