[LLVMdev] Reporting errors when applying fixups

103 views
Skip to first unread message

Matheus Almeida

unread,
Dec 3, 2013, 8:36:57 AM12/3/13
to llv...@cs.uiuc.edu

For a target that hasn’t implemented branch relaxation (yet),  does anyone know what is the preferred way to report an error if a fixup cannot be applied because, for example, the destination of a branch is out of range?

I suppose I could use asserts just like AArch64 is doing but that won’t stop the assembler of emitting a branch to an undesired location in release builds.

Does anyone see any problem in using report_fatal_error to report errors in the target Asm backend ?

 

Regards,

Matheus

 

Matheus Almeida

MIPS processor IP

www.imgtec.com

 

David Peixotto

unread,
Dec 3, 2013, 12:51:40 PM12/3/13
to Matheus Almeida, llv...@cs.uiuc.edu

Matheus,

 

The ARM backend reports these kinds of errors using FatalError method of MCContext. You can see some examples in ARMAsmBackend.cpp (search for "out of range pc-relative fixup value").

 

-David

Jim Grosbach

unread,
Dec 3, 2013, 2:11:14 PM12/3/13
to David Peixotto, llv...@cs.uiuc.edu
Yup, that’s the best option available right now. There’s limited support for adding a source location to the fixups so the diagnostic isn’t completely useless when coming from the assembler. There’s a proposal ongoing about improved diagnostics from the backend that Quentin is working on that will help here when it’s completed.

-Jim

_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

Reply all
Reply to author
Forward
0 new messages