http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57553
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- "13.7.160 STORAGE SIZE (A [, KIND]) Description. Storage size in bits. Class. Inquiry function. Arguments. A shall be a scalar or array of any type. If it is polymorphic it shall not be an undefined pointer. If it has any deferred type parameters it shall not be an unallocated allocatable variable or a disassociated or undefined pointer." My impression is that the current code assumes that the argument is a variable and not an expression (including literal constants).