From 55c879f90ce7d41e6ab345b9ed75b414f3a57e4e Mon Sep 17 00:00:00 2001 From: Dylan McKay Date: Sun, 5 Feb 2017 10:42:49 +0000 Subject: [PATCH] [AVR] Fix a bug where asm operands are printed twice We would unconditionally call printOperand, even if PrintAsmOperand already printed the immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294121 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/AVR/AVRAsmPrinter.cpp | 3 ++- test/CodeGen/AVR/no-print-operand-twice.ll | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 test/CodeGen/AVR/no-print-operand-twice.ll diff --git a/lib/Target/AVR/AVRAsmPrinter.cpp b/lib/Target/AVR/AVRAsmPrinter.cpp index 4afdd3a0ec0..50bb50b44f2 100644 --- a/lib/Target/AVR/AVRAsmPrinter.cpp +++ b/lib/Target/AVR/AVRAsmPrinter.cpp @@ -130,7 +130,8 @@ bool AVRAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum, } } - printOperand(MI, OpNum, O); + if (Error) + printOperand(MI, OpNum, O); return false; } diff --git a/test/CodeGen/AVR/no-print-operand-twice.ll b/test/CodeGen/AVR/no-print-operand-twice.ll new file mode 100644 index 00000000000..8326507768b --- /dev/null +++ b/test/CodeGen/AVR/no-print-operand-twice.ll @@ -0,0 +1,8 @@ +; RUN: llc -no-integrated-as -march=avr < %s | FileCheck %s + +define void @test() { +entry: +; CHECK: /* result: 68719476738 */ + tail call void asm sideeffect "/* result: ${0:c} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 ) + ret void +} -- 2.50.1