------- Comment #4 from hjl dot tools at gmail dot com 2009-05-06 17:39 ------- (In reply to comment #3) > The code generated for SMALL is correct, any caller that passes argument not > aligned on 8 byte boundary (you are mistaken that it requires 16 byte > alignment, > try calling it with c(3) which is 8 byte aligned, but not 16 byte aligned and > it will work too) is invalid. All DOUBLE PRECISION variables/arrays must be > properly aligned on 8 byte boundaries. >
I believe x86-64 psABI requires that all arrays >= 16byte must be aligned at 16byte. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40037