This prevents the compiler from rejecting a constant passed as memory operand to an Asm statement. While this may seem to be a questionable construct, it can be generated by the front-end in specific cases. Tested on i586-suse-linux, applied on the mainline. 2011-06-18 Eric Botcazou * einfo.ads (Address_Taken): Document use for the second argument of Asm_Input and Asm_Output attributes. * sem_attr.adb (Analyze_Attribute) : If the second argument is an entity name, then set Address_Taken on it. : Likewise. * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the Attr_Asm_Input and Attr_Asm_Output attributes explicitly. (gnat_to_gnu) : If an operand is going to end up in memory and is a CONST_DECL, retrieve its corresponding VAR_DECL. 2011-06-18 Eric Botcazou * gnat.dg/constant3.adb: New test. -- Eric Botcazou