[PATCH] D141589: [AVR] Fix a bug in AsmPrinter when printing inline-asm operands
Ben Shi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 12 19:06:18 PST 2023
benshi001 added inline comments.
================
Comment at: llvm/lib/Target/AVR/AVRAsmPrinter.cpp:132
+ if (RegIdx >= NumOpRegs)
+ return true;
Reg = MI->getOperand(OpNum + RegIdx).getReg();
----------------
It would be better to `return true` and the upper llvm assembler handle the error.
For example, with the following c code
```
void fooa(void);
int foob(void) {
int result;
fooa();
__asm (";; %C0" : "=d" (result));
fooa();
return result;
}
```
Built it with clang, the clang will give detailed errors.
```
benshi at BJSW-T026:~/llvm-project/build$ ./bin/clang a.c -O3 -Wall --target=avr -mmcu=atmega328 -S
a.c:6:9: error: invalid operand in inline asm: ';; ${0:C}'
__asm (";; %C0" : "=d" (result));
^
1 error generated.
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141589/new/
https://reviews.llvm.org/D141589
More information about the llvm-commits
mailing list