https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78197
Bug ID: 78197 Summary: Stack layout strangeness on AIX and Power Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: vogt at linux dot vnet.ibm.com CC: dje at gcc dot gnu.org Target Milestone: --- Target: AIX, Power The file rs6000.h contains the macros -- #define STACK_BOUNDARY \ ((TARGET_32BIT && !TARGET_ALTIVEC && !TARGET_ALTIVEC_ABI && !TARGET_VSX) \ ? 64 : 128) #define STARTING_FRAME_OFFSET \ (FRAME_GROWS_DOWNWARD \ ? 0 \ : (RS6000_ALIGN (crtl->outgoing_args_size, \ (TARGET_ALTIVEC || TARGET_VSX) ? 16 : 8) \ + RS6000_SAVE_AREA)) #define STACK_DYNAMIC_OFFSET(FUNDECL) \ (RS6000_ALIGN (crtl->outgoing_args_size, \ (TARGET_ALTIVEC || TARGET_VSX) ? 16 : 8) \ + (STACK_POINTER_OFFSET)) -- Does STACK_BOUNDARY use a different conditions to decide betweeen 8 and 16 byte alignment than the other two macros? In aix.h, STACK_BOUNDARY is hard coded to 128, so at least on AIX these conditions seem to be broken.