Make sure that we emit a label for the MBB if its address is taken.
Details
Diff Detail
- Repository
- rL LLVM
- Build Status
Buildable 35347 Build 35346: arc lint + arc unit
Event Timeline
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp | ||
---|---|---|
438 | Make MBB a non-const MachineBasicBlock&, then you can drop the ugly const_cast and then also the & then -> and just use .. for (MachineBasicBlock& MBB : *MF) { ... MBB.setLabelMustBeEmitted(); |
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp | ||
---|---|---|
438 | The MF is coming from MI which itself is const. There's probably going to be a const_cast somewhere along the line. :-( |
Sounds like this may address: https://bugs.llvm.org/show_bug.cgi?id=42309#c1?
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp | ||
---|---|---|
438 | Ok, is the &+-> still really necessary? const_cast<MachineBasicBlock>(MBB).setLabelMustBeEmitted(); (I still feel like const_cast is a code smell; if we modify something, then our function signature should really not accept a const param. const parameters are meant to be an agreement between caller and callee that callee doesn't modify the param). |
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp | ||
---|---|---|
438 | I can cast it to a reference. I don't like const_casts either. We would need to calculate that it should be set long before getting here. |
Make MBB a non-const MachineBasicBlock&, then you can drop the ugly const_cast and then also the & then -> and just use ..