Detection of warning depend on optimisation

Hello arm

I use the arm v9-2019-q4-major toolchain. I compile for the STM32H743 (also seen in the setting)

I compile using the following settings. CFLAG contains compiler settings.

CFLAGS  += -D__FPU_PRESENT
CFLAGS  += -DARM_MATH_CM7
CFLAGS  += -DSTM32
CFLAGS  += -DSTM32H7
CFLAGS  += -DSTM32H743xx
CFLAGS  += -DSTM32H743XIHx
CFLAGS  += -std=c11
CFLAGS  += -mthumb
CFLAGS  += -mcpu=cortex-m7
CFLAGS  += -mfloat-abi=softfp
CFLAGS  += -mfpu=fpv5-d16
CFLAGS  += -g
CFLAGS  += -fmessage-length=0
CFLAGS  += -ffunction-sections
CFLAGS  += -fno-delete-null-pointer-checks

CFLAGS  += -Wstringop-overflow

CFLAGS  += -Werror
CFLAGS  += -Wall
CFLAGS  += -Wextra

CFLAGS  += -Wno-missing-field-initializers
CFLAGS  += -Wdouble-promotion

I wonder why I experience different warnings in my code depending on the optimisation?

I have tried with -O0, -O1, -O2, -O3 and -Os.

I find (relevant) warnings - eg warning of variables that might be used non initialised - with -O1, that is not found when compiling using higher levels?

I experience that the number of warnings found increases with the optimisation level. -O3 finds more warnings that -O1.

Best regards Frank.

Parents Reply Children
More questions in this forum