Ping.

  Also, I looked at all of the Microsoft pragams and 6 of them use a labeled 
stack data_seg, bss_seg, const_seg, code_seg, pack and conform.  If we choose 
to template MSSegmentStack, we can reasonably pull in pack (a value of 0 isn't 
a ligitimate argument and can be used, like nullptr, to indicate that we're 
pushing or poping w/o changing the setting). Putting in conform is much 
trickier because conform takes multiple extra arguments.  There is 
significantly more error checking code in the pragma pack handler than in the 
ms one (for example #pragma_bss(pop) with no stack or after a reset is a no-op 
not an error).  Fusing the logic for stack with the others would either involve 
a bunch of special-casing or we'd end up having much stricter rules about how 
some of these pragmas work than msvc does.

  Pragmas float_control, managed, unmanaged, strict_gs_check, warning and 
vtordisp use an unlabeled stack.  the first 4 push booleans, as does vtordisp, 
although in a slightly different way.  warning pushes a small integer.

http://llvm-reviews.chandlerc.com/D3065
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to