use the alignment of these elements rather than their size (fixes
alignment of arrays of int64/qword/double on darwin/i386 and darwin/arm)
git-svn-id: trunk@13068 -
mode (mantis #11859)
* cleaned up some superfluous "eq=te_incompatible" checks (probably from
copy/pasting conditions from elsewhere)
git-svn-id: trunk@13050 -
initialization code of units/programs, because they are already
zero and initializing them explicitly is Delphi-incompatible
(mantis #13345)
git-svn-id: trunk@13042 -
* test now tests both ansistring and widestring constants, instead of only
ansistring
* fixed writing of widestring constants to ppu file
* fixed setting length of read widestring constants (don't only set maxlen)
* handle cross-endian reading of widestring constants
git-svn-id: trunk@13034 -
of a bitpacked record in assembler code
* convert the offsets of byte-aligned fields of bitpacked records from bits
to bytes (mantis #13563)
git-svn-id: trunk@13027 -
physical registers
* free the physical return registers at the caller side for 64 bit
systems
* make sure that we do not double-free registers in case a return
value is not used (mantis #13536)
git-svn-id: trunk@13023 -
attribute is available via the new append_attribute() method
(to enable easily adding extra attributes)
* write the definitions of methods as child entries of the
objectdef, instead of in the global scope
* only write DW_AT_calling_convention and DW_AT_external attributes
if their value is different from the DWARF default one
+ write DW_AT_virtuality and DW_AT_vtable_elem_location attributes
for virtual methods
* write the debug info for the hidden "self" parameter before all
other parameters and mark it as "artificial", because that is
how GDB distinguishes regular methods from static methods
git-svn-id: trunk@13003 -
Borland's i386 calling convention (its value may still change)
* specify the calling convention of each procedure in the DWARF info
* don't add the function result twice or even thrice to the debug
info, and don't add it at all to the parameter lists (even if it's
a hidden parameter, gdb will automatically add it according to the
ABI rules when calling the function)
-> calling "register" functions/procedures works with my experimental
gdb patch (methods not yet tested, and probably won't work yet)
git-svn-id: trunk@12995 -
when they are not used in the unit where they are defined (since they
may be used elsewhere, discovered while analyzing mantis #13345)
git-svn-id: trunk@12954 -
(and hence those directories were interpreted as source files themselves)
+ added -gostabsabsincludes option to make the compiler store absolute
paths to include files in Stabs debugging information (since no
search paths are used). This is not the default because it breaks
when only the base path of an entire source tree changes (relative
paths, which are the previous behaviour and the current default,
work fine, but the absolute paths don't anymore; this can happen
with shared network drives, and possibly with distros shipping
external .dbg files)
git-svn-id: trunk@12933 -
work correctly with DWARF)
* only force the internal linker for STABS when generating relocatable
output (rather than for all debugging formats)
git-svn-id: trunk@12917 -
inlining, because that results in alignment settings of "0"
(voidtype.savesize = 0 -> size2align(0) = 0), which is interpreted
by the code generators as unaligned (and is actually even invalid
nowadays). This caused errors on NDS when writing to memory mapped
I/O devices (mantis #13343)
git-svn-id: trunk@12916 -
* renamed al_dwarf enum to al_dwarf_frame since this enum only enables frame generation
* renamed create_dwarf procedure for the same reason
* skipped check for dwarf support in assember, since we generate all dwarf info ourselves
git-svn-id: trunk@12906 -
of in the DWARF, as it's more efficient and avoids a gdb bug which
occurs on some platforms (thanks to Jan Kratochvil for the tip,
http://sourceware.org/ml/gdb/2009-03/msg00094.html )
git-svn-id: trunk@12905 -