Not much to add on the title. It seems that adding a call __builtin_frame_address inside a function also triggers the pushq/popq preamble even if -fomit-frame-pointer is passed, which means that pushq is pushing garbage values on the stack.
repro: https://godbolt.org/z/zsa5Mnsa9