MSVC on WoA64 includes isCXX14Aggregate in its definition. This is de-facto
specification on that platform, so match msvc's behaviour.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=47611
Co-authored-by: Peter Waller <peter.waller@arm.com>
|  Differential  D92751  
[clang][aarch64] Precondition isHomogeneousAggregate on isCXX14Aggregate Authored by DavidTruby on Dec 7 2020, 3:17 AM. 
Details MSVC on WoA64 includes isCXX14Aggregate in its definition. This is de-facto Fixes: https://bugs.llvm.org/show_bug.cgi?id=47611 Co-authored-by: Peter Waller <peter.waller@arm.com> 
Diff Detail 
 Event TimelineComment Actions Thanks for the fix. At first, misunderstood, I expected that an aggregate containing non-aggregates should be returned indirectly, and that the fix would be in the C++ ABI codepath. However, I see that is not the case. An aggregate may contain non-aggregates, and MSVC will in fact return such a type directly in X0/X1. 
 
 
 Comment Actions Thank for the update, apologies for not providing these suggestions the first time. 
 
 Comment Actions Suggesting a few small tweaks. Otherwise LGTM when @rnk is happy. 
 
 Comment Actions lgtm, thanks 
 
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nit: I would group the new virtual method declaration after these two, since it also has to do with argument classification.