Hi, This patch deal with the -falign-X=0 options. According to man pages, if zero is specified, a machine-dependent default value should be used. But in fact, zero was used in internal process, it is inconsistent.
Tested on aarch64-linux cross compiler, Is that OK? BTW, the similar problems exists in other target sources. I can submit them all in another patch if needed, but I can test on i386 target only. Regards! Hujp --- gcc/config/aarch64/aarch64.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 17dbe673978..697ac676f4d 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -14221,11 +14221,14 @@ aarch64_override_options_after_change_1 (struct gcc_options *opts) alignment to what the target wants. */ if (!opts->x_optimize_size) { - if (opts->x_flag_align_loops && !opts->x_str_align_loops) + if ((opts->x_flag_align_loops && !opts->x_str_align_loops) + || (opts->x_str_align_loops && strcmp(opts->x_str_align_loops, "0") == 0)) opts->x_str_align_loops = aarch64_tune_params.loop_align; - if (opts->x_flag_align_jumps && !opts->x_str_align_jumps) + if ((opts->x_flag_align_jumps && !opts->x_str_align_jumps) + || (opts->x_str_align_jumps && strcmp(opts->x_str_align_jumps, "0") == 0)) opts->x_str_align_jumps = aarch64_tune_params.jump_align; - if (opts->x_flag_align_functions && !opts->x_str_align_functions) + if ((opts->x_flag_align_functions && !opts->x_str_align_functions) + || (opts->x_str_align_functions && strcmp(opts->x_str_align_functions, "0") == 0)) opts->x_str_align_functions = aarch64_tune_params.function_align; } -- 2.17.1