diff --git a/compiler/ncal.pas b/compiler/ncal.pas index a3dfe6b858..1b838b35ff 100644 --- a/compiler/ncal.pas +++ b/compiler/ncal.pas @@ -1367,6 +1367,16 @@ implementation if parasym.varspez in [vs_var,vs_out,vs_constref] then set_unique(left); + if (parasym.varspez=vs_const) and (parasym.vardef.typ=formaldef) then + begin + { compilerprocs never capture the address of their + parameters } + if not(po_compilerproc in aktcallnode.procdefinition.procoptions) then + make_not_regable(left,[ra_addr_regable,ra_addr_taken]) + else + make_not_regable(left,[ra_addr_regable]) + end + else case parasym.varspez of vs_out : begin @@ -1392,16 +1402,6 @@ implementation else make_not_regable(left,[ra_addr_regable]) end; - vs_const: - if parasym.vardef.typ=formaldef then - begin - { compilerprocs never capture the address of their - parameters } - if not(po_compilerproc in aktcallnode.procdefinition.procoptions) then - make_not_regable(left,[ra_addr_regable,ra_addr_taken]) - else - make_not_regable(left,[ra_addr_regable]) - end; else set_varstate(left,vs_read,[vsf_must_be_valid]); end; diff --git a/compiler/systems/t_embed.pas b/compiler/systems/t_embed.pas index 899a2ab1a1..7fc743d720 100644 --- a/compiler/systems/t_embed.pas +++ b/compiler/systems/t_embed.pas @@ -1088,6 +1088,12 @@ begin Add(' .debug_str 0 : { *(.debug_str) }'); Add(' .debug_loc 0 : { *(.debug_loc) }'); Add(' .debug_macinfo 0 : { *(.debug_macinfo) }'); + Add(' /* DWARF 3 */'); + Add(' .debug_pubtypes 0 : { *(.debug_pubtypes) }'); + Add(' .debug_ranges 0 : { *(.debug_ranges) }'); + Add(' /* DWARF Extension. */'); + Add(' .debug_macro 0 : { *(.debug_macro) }'); + Add('}'); end; {$endif AVR}