[PATCH] Microsoft 64-bit Record Layout
David Majnemer
david.majnemer at gmail.com
Wed Oct 23 14:49:49 PDT 2013
================
Comment at: lib/AST/RecordLayoutBuilder.cpp:2591
@@ -2908,2 +2590,3 @@
+ // vtordisps are always 4 bytes (even in 64-bit mode)
if (HasVtordisp)
----------------
Reid Kleckner wrote:
> Yep, this is true throughout the ABI. It seems objects cannot be larger than 2**32.
This is a hard limit for arrays: http://msdn.microsoft.com/en-us/library/vstudio/s0z0bbfe.aspx
However, I can pass this limit with structs:
#include <stdio.h>
struct S {
char C1, C2;
char CArray[2147483647LL];
};
int main() {
printf("sizeof(S): %llu", (unsigned long long)sizeof(S));
}
This gives me 2147483649 on x86_32 and x86_64
http://llvm-reviews.chandlerc.com/D2003
More information about the cfe-commits
mailing list