// Determines which register a given DWARF expression is being assigned to.
// If the expression is defining the CFA, return std::nullopt.
-Optional<uint8_t> readDWARFExpressionTargetReg(StringRef ExprBytes);
+std::optional<uint8_t> readDWARFExpressionTargetReg(StringRef ExprBytes);
} // namespace bolt
CFARule = UNKNOWN;
break;
case MCCFIInstruction::OpEscape: {
- Optional<uint8_t> Reg = readDWARFExpressionTargetReg(Instr.getValues());
+ std::optional<uint8_t> Reg =
+ readDWARFExpressionTargetReg(Instr.getValues());
// Handle DW_CFA_def_cfa_expression
if (!Reg) {
CFARule = RuleNumber;
if (Instr.getOperation() != MCCFIInstruction::OpEscape) {
Reg = Instr.getRegister();
} else {
- Optional<uint8_t> R = readDWARFExpressionTargetReg(Instr.getValues());
+ std::optional<uint8_t> R =
+ readDWARFExpressionTargetReg(Instr.getValues());
// Handle DW_CFA_def_cfa_expression
if (!R) {
if (RestoredCFAReg && RestoredCFAOffset)
if (Instr.getOperation() != MCCFIInstruction::OpEscape) {
Reg = Instr.getRegister();
} else {
- Optional<uint8_t> R = readDWARFExpressionTargetReg(Instr.getValues());
+ std::optional<uint8_t> R =
+ readDWARFExpressionTargetReg(Instr.getValues());
// Handle DW_CFA_def_cfa_expression
if (!R) {
undoStateDefCfa();
if (CFI->getOperation() != MCCFIInstruction::OpEscape) {
CFIReg = CFI->getRegister();
} else {
- Optional<uint8_t> Reg =
+ std::optional<uint8_t> Reg =
readDWARFExpressionTargetReg(CFI->getValues());
// Handle DW_CFA_def_cfa_expression
if (!Reg)
return Output;
}
-Optional<uint8_t> readDWARFExpressionTargetReg(StringRef ExprBytes) {
+std::optional<uint8_t> readDWARFExpressionTargetReg(StringRef ExprBytes) {
uint8_t Opcode = ExprBytes[0];
if (Opcode == dwarf::DW_CFA_def_cfa_expression)
return std::nullopt;