I am working on a project based on ARM M4 core and using the keil ide and ARM compiler. In the standard “stdio.h” header file there are function signature that has “#pragma __printf_args” and “_ARMABI”. For example
”’
#pragma __printf_args
extern _ARMABI int printf(const char * __restrict /format/, …) attribute((nonnull(1)));
”’
I have searched in “ARM Compiler User Guide”, “ARM Compiler Reference Guide” and “ARM Compiler ARM C and C++ Libraries” for these but no clue.
Can someone explain what this means?
Also, follwing this link https://developer.arm.com/documentation/101754/0622/armclang-Reference/Compiler-specific-Function–Variable–and-Type-Attributes/–attribute—-nonnull—function-attribute?lang=en syntax for the “nonnull” is attribute((nonnull (1, 2))) rather than attribute((nonnull(1)))
why so?