mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-01 21:50:18 +02:00
* only mark abstract varsyms as externally visible if they
are not kept in a register and either a) are in a globalsymtable b) are marked as static object/class member c) are marked as "public" git-svn-id: trunk@6302 -
This commit is contained in:
parent
bf38367b69
commit
ea6204cc56
@ -1708,16 +1708,31 @@ implementation
|
|||||||
else
|
else
|
||||||
tag:=DW_TAG_variable;
|
tag:=DW_TAG_variable;
|
||||||
|
|
||||||
append_entry(tag,false,[
|
if not(sym.localloc.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_MMREGISTER,
|
||||||
DW_AT_name,DW_FORM_string,symname(sym)+#0,
|
LOC_CMMREGISTER,LOC_FPUREGISTER,LOC_CFPUREGISTER]) and
|
||||||
{
|
((sym.owner.symtabletype = globalsymtable) or
|
||||||
DW_AT_decl_file,DW_FORM_data1,0,
|
(sp_static in sym.symoptions) or
|
||||||
DW_AT_decl_line,DW_FORM_data1,
|
(vo_is_public in sym.varoptions)) then
|
||||||
}
|
append_entry(tag,false,[
|
||||||
DW_AT_external,DW_FORM_flag,true,
|
DW_AT_name,DW_FORM_string,symname(sym)+#0,
|
||||||
{ data continues below }
|
{
|
||||||
DW_AT_location,DW_FORM_block1,blocksize
|
DW_AT_decl_file,DW_FORM_data1,0,
|
||||||
]);
|
DW_AT_decl_line,DW_FORM_data1,
|
||||||
|
}
|
||||||
|
DW_AT_external,DW_FORM_flag,true,
|
||||||
|
{ data continues below }
|
||||||
|
DW_AT_location,DW_FORM_block1,blocksize
|
||||||
|
])
|
||||||
|
else
|
||||||
|
append_entry(tag,false,[
|
||||||
|
DW_AT_name,DW_FORM_string,symname(sym)+#0,
|
||||||
|
{
|
||||||
|
DW_AT_decl_file,DW_FORM_data1,0,
|
||||||
|
DW_AT_decl_line,DW_FORM_data1,
|
||||||
|
}
|
||||||
|
{ data continues below }
|
||||||
|
DW_AT_location,DW_FORM_block1,blocksize
|
||||||
|
]);
|
||||||
{ append block data }
|
{ append block data }
|
||||||
current_asmdata.asmlists[al_dwarf_info].concatlist(templist);
|
current_asmdata.asmlists[al_dwarf_info].concatlist(templist);
|
||||||
append_labelentry_ref(DW_AT_type,def_dwarf_lab(sym.vardef));
|
append_labelentry_ref(DW_AT_type,def_dwarf_lab(sym.vardef));
|
||||||
|
Loading…
Reference in New Issue
Block a user