• rth's avatar
    PR c/7054 · 6b5553e5
    rth authored
            * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
            * tree.h (initial_max_fld_align): Declare
            * stor-layout.c (initial_max_fld_align): Define and initialize.
            (maximum_field_alignment): Initialize to the same value.
            * common.opt: Add -fpack-struct= variant of switch.
            * opts.c: Handle -fpack-struct= variant of switch.
            * c-pragma.c: Change #pragma pack() handling so that it becomes
            compatible to other compilers: accept individual 'push' argument,
            make final pop restore (command line) default, correct interaction
            of push/pop and sole specification of a new alignment (so that the
            sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
            to #pragma pack(push, <n>).
            * doc/extend.texi: New node "Structure-Packing Pragmas" under
            "Pragmas", describing #pragma pack.
            * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
            * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
            Document new TARGET_DEFAULT_PACK_STRUCT.
    testsuite:
            * gcc.dg/pack-test-2.c: Adjust to permit and check #pragma pack(push).
            * gcc.dg/c99-flex-array-4.c: Add -fpack-struct=8 to provide a
            deterministic starting point for the alignment of structure fields.
            * gcc.dg/Wpadded.c: Dito.
            * g++.dg/abi/vbase10.C: Dito.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87037 138bc75d-0d04-0410-961f-82ee72b054a4
    6b5553e5
opts.c 35.1 KB