Linker warnings for missing function declaration

Technical Note 95495

ARM, RH850, RX, SH, STM8, RL78


10/30/2015 12:39 PM


From a user : I had missed to declare some functions. So, by mistake, I had different parameters in the definition of the function and the call(s) to the same function. My application ended up with a difficult-to-find-run-time error.

My question is:

Why didn't the IAR ILINK Linker linker warn me?


  • The problem/risk occur when implicit declarations (no declaration in the compiling unit) are used.
  • Compared to the UBROF output format (used in some IAR Embedded Workbench products), this is a limitation with the ELF format that the compiler and linker are using.
  • IAR is aware of this limitation in ELF.
  • There are no plans for the moment to create this kind of type check in IAR ILINK Linker.


Let the compiler find these problems, by enabling:

 Project > Options > C/C++ Compiler > Language > C dialect > Require prototypes.

On the compiler command line, the option to use is:


Then, create a header file with the declarations and use that wherever functions are defined or called.


All product names are trademarks or registered trademarks of their respective owners.

Related Tech Notes

© IAR Systems 1995-2020 - All rights reserved.

We use cookies on this website to provide you with a better experience. You need to accept cookies to continue using this site. Cookies