When code containing "naked" function gets compiled with '-fstack-usage' compiler prints the following warning: ---------------------------------->8----------------------------- board/synopsys/hsdk/hsdk.c: In function 'hsdk_core_init_f': board/synopsys/hsdk/hsdk.c:345:1: warning: stack usage computation not supported for this target } ^ ---------------------------------->8-----------------------------
Even though stack calculation makes no sense for "naked" function we still need to correctly report stack size back to make compiler happy. This problem was caught in U-Boot here: https://lists.denx.de/pipermail/u-boot/2018-March/324325.html The same fix was done earlier for ARM, see: "config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0 " https://github.com/gcc-mirror/gcc/commit/023a7c5dd37 gcc/ 2018-04-06 Alexey Brodkin <abrod...@synopsys.com> * config/arc/arc.c (arc_expand_prologue): Set stack usage info also for naked functions. --- gcc/config/arc/arc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 32fcb81880a2..3cb4ba5b4dd7 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -3149,7 +3149,11 @@ arc_expand_prologue (void) /* Naked functions don't have prologue. */ if (ARC_NAKED_P (fn_type)) - return; + { + if (flag_stack_usage_info) + current_function_static_stack_size = 0; + return; + } /* Compute total frame size. */ size = arc_compute_frame_size (); -- 2.14.3