------- Comment #4 from jakub at gcc dot gnu dot org 2010-03-15 11:19 ------- As for the arbitrary expressions, can't you just add an artificial, nameless, DW_TAG_variable (not sure if DW_TAG_dwarf_procedure would be tollerable instead), probably as child of the DW_TAG_subprogram whose DW_TAG_formal_parameter it is, and set its DW_AT_location? See add_bounds_info how it creates similar artificial variable if the bound is an arbitrary expression for which we have a location or location list.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42959