+ Favor 'weak' parameter in a_call_name of both thlcgmips and TCGMIPS.
* make_simple_ref and a_loadaddr_ref_reg: require input references to be 'raw' (no refaddr=addr_pic, etc) and do not use GP as base/index. If it's not true, raise an internal error. When addr_pic_call16 or so needs to be generated, it must be done without calling the mentioned methods.
* thlcgmips.a_call_name: generate PIC sequence for procedures declared as 'external', instead of 'cdecl', this is more correct because ABI has only one calling convention.
- make_simple_ref_fpu removed, there's no reason to handle references to floating-point data in different way.
- a_loadaddr_ref_cgpara override also removed, generic method does the job just well.
- thlcgmips.a_call_ref and a_call_reg overrides removed because indirect calls are now always done using $t9.
git-svn-id: trunk@23698 -
symconst.pas:
+ add "sto_has_operator" to "tsymtableoption"
pdecsub.pas:
+ include the flag "sto_has_operator" for all operator declarations and their owning symtables
htypechk.pas, tcallcandidates:
* create_candidate_list: only check for operator overloads if the record does indeed declare some
* collect_overloads_in_units: only check for operator overloads if the unit does indeed declare some
utils/ppudump.pp:
+ respect the new "sto_has_operator" flag
git-svn-id: trunk@23688 -
* Build unixcp for all unix-like systems.
* Use the unixcp unit in cwstring instead of winiconv.inc.
- Deleted winiconv.inc
- Reverted r22410,r22411,r22428. The compiler will use the unixcp unit to get a default code page for ansistrings.
git-svn-id: trunk@23670 -
In trunk TBookmark is of type array of bytes (TBytes), prior this it was Pointer (to memory block of BookmarkSize where is stored "bookmark data").
BufDatset uses GotoBookmark and passes address of bookmark, which is okay when TBookmark was pointer, but when it is dynamic array then on entry into method FPC_DYNARRAY_INCR_REF is called, where is accessed "array header" in unallocated memory, which leads to invalid pointer operation.
Making parameter as const will avoid invoking reference counting mechanism. Bug #23381. Discussed also in DB-Core ML.
git-svn-id: trunk@23665 -
* Reorganize ifdef GDB_VXYZ part
+ Add code for LIBGDB_HAS_GET_STDIN (possibly set in gen-gdblib-inc.sh script).
+ Use GDB_USE_XSTRVPRINTF conditional.
git-svn-id: trunk@23660 -
gvector.pp:
* more consistent formatting
- remove "inline" directives in implementation section
* use "Move" instead of a for-loop in Erase and Insert (while also respecting managed types) for performance improvement
* set the removed entry in PopBack to Default(T) (also for managed types)
* fix a bug in Erase which checked for "<= Size" instead of "< Size"
git-svn-id: trunk@23647 -
gvector.pp, TVector.TVectorEnumerator:
* the size of a vector is of type SizeUInt which is LongWord on 32 bit systems and QWord on 64 bit systems and which is in both cases not the same as Integer which is LongInt
+ add a boolean property to detect whether the first call to MoveNext was done
* check in MoveNext whether the first call was done and return approbiate results
gvector.pp, TVector:
+ declare GetEnumerator as inline as well
git-svn-id: trunk@23645 -
* Abort if attempting to emit a call without pi_do_call flag set, because the outgoing parameter area determines layout of temps and therefore cannot be created/changed during pass 2.
* Bypass g_concatcopy_move if procedure is a leaf one, due to the restriction mentioned above.
git-svn-id: trunk@23644 -