Issue 95345
Summary [BOLT] BinaryEmitter.cpp calls emitLabel twice on the same symbol
Labels BOLT
Assignees
Reporter MaskRay
    `MCObjectStreamer::emitLabel` is not expected to be called more than once on the same symbol.
However, bolt/lib/Core/BinaryEmitter.cpp:emitFunctionBody may do so for two/three runtime tests

* runtime/X86/exceptions-pic.test
* runtime/X86/pie-exceptions-failed-split.test

Reproduce:

`git revert -n 90a23d3a5a843086124c4b9315ee6a7617965623` then run `ninja check-bolt`.

```
first: BF = (llvm::bolt::BinaryFunction *) 0x5594035c9aa8; FF= (llvm::bolt::FunctionFragment *) 0x7f0d4801c340
 BinaryContext.cpp:2405 (in calculateEmittedSize)
  BinaryEmitter.cpp:1217 (in emitFunctionBody)
  BinaryEmitter.cpp:450 (in emitFunctionBody)
 MCELFStreamer.cpp:103 (in emitLabel)

second: BF = (llvm::bolt::BinaryFunction *) 0x5594035c9aa8; FF= (llvm::bolt::FunctionFragment *) 0x7f0d4801c340
  BinaryEmitter.cpp:266 (in emitFunctions)
  BinaryEmitter.cpp:386 (in emitFunction)
 BinaryEmitter.cpp:450 (in emitFunctionBody)
  MCELFStreamer.cpp:103 (in emitLabel)
```

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to