• Tom Lane's avatar
    Suppress warning about stack_base_ptr with late-model GCC. · 2e30d77a
    Tom Lane authored
    GCC 12 complains that set_stack_base is storing the address of
    a local variable in a long-lived pointer.  This is an entirely
    reasonable warning (indeed, it just helped us find a bug);
    but that behavior is intentional here.  We can work around it
    by using __builtin_frame_address(0) instead of a specific local
    variable; that produces an address a dozen or so bytes different,
    in my testing, but we don't care about such a small difference.
    Maybe someday a compiler lacking that function will start to issue
    a similar warning, but we'll worry about that when it happens.
    
    Patch by me, per a suggestion from Andres Freund.  Back-patch to
    v12, which is as far back as the patch will go without some pain.
    (Recently-established project policy would permit a back-patch as
    far as 9.2, but I'm disinclined to expend the work until GCC 12
    is much more widespread.)
    
    Discussion: https://postgr.es/m/3773792.1645141467@sss.pgh.pa.us
    2e30d77a
Solution.pm 42.7 KB