Allow recursive (undecidable) superclasses
[ghc.git] / compiler / NOTES
1 Note [Subsections Via Symbols]
2
3 If we are using the .subsections_via_symbols directive
4 (available on recent versions of Darwin),
5 we have to make sure that there is some kind of reference
6 from the entry code to a label on the _top_ of of the info table,
7 so that the linker will not think it is unreferenced and dead-strip
8 it. That's why the label is called a DeadStripPreventer (_dsp).
9
10 The LLVM code gen already creates `iTableSuf` symbols, where
11 the X86 would generate the DeadStripPreventer (_dsp) symbol.
12 Therefore all that is left for llvm code gen, is to ensure
13 that all the `iTableSuf` symbols are marked as used.
14 As of this writing the documentation regarding the
15 .subsections_via_symbols and -dead_stip can be found at
16 <https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/Assembler/040-Assembler_Directives/asm_directives.html#//apple_ref/doc/uid/TP30000823-TPXREF101>