[PATCH] D62152: [ARM][AArch64] Fix incorrect handling of alignment in va_arg code generation

2019-05-22 Thread John Brawn via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rC361372: [ARM][AArch64] Fix incorrect handling of alignment in va_arg code generation (authored by john.brawn, committed by ). Repository: rC Clang CHANGES SINCE LAST ACTION

[PATCH] D62152: [ARM][AArch64] Fix incorrect handling of alignment in va_arg code generation

2019-05-21 Thread Eli Friedman via Phabricator via cfe-commits
efriedma accepted this revision. efriedma added a comment. This revision is now accepted and ready to land. Oh, I see, ABIInfo::computeInfo() uses the canonical type to compute the calling convention, and that throws away alignment attributes because alignment attributes on non-struct are

[PATCH] D62152: [ARM][AArch64] Fix incorrect handling of alignment in va_arg code generation

2019-05-21 Thread John Brawn via Phabricator via cfe-commits
john.brawn added a comment. In D62152#1508979 , @efriedma wrote: > Please verify my understanding of the following is correct: > > 1. getTypeUnadjustedAlign() is currently only used to compute calling > convention alignment for ARM and AArch64. Yes,

[PATCH] D62152: [ARM][AArch64] Fix incorrect handling of alignment in va_arg code generation

2019-05-20 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. Please verify my understanding of the following is correct: 1. getTypeUnadjustedAlign() is currently only used to compute calling convention alignment for ARM and AArch64. 2. Without this patch, we use the unadjusted alignment to pass arguments, but the adjusted

[PATCH] D62152: [ARM][AArch64] Fix incorrect handling of alignment in va_arg code generation

2019-05-20 Thread John Brawn via Phabricator via cfe-commits
john.brawn created this revision. john.brawn added reviewers: chill, efriedma, t.p.northover, rjmccall. Herald added subscribers: kristof.beyls, javed.absar. Herald added a project: clang. Overaligned and underaligned types (i.e. types where the alignment has been increased or decreased using