Commit Graph

48219 Commits

Author SHA1 Message Date
michael
505d3f1f0e * Small formatting change
git-svn-id: trunk@33296 -
2016-03-20 14:08:45 +00:00
marco
cc8868c190 * enabled librsvg build on win64 after confirmation that it works. (Mantis #28240)
git-svn-id: trunk@33295 -
2016-03-20 13:15:44 +00:00
michael
0a1a6f075e * Reduce code size by using const for string in setter routines
git-svn-id: trunk@33294 -
2016-03-20 08:59:35 +00:00
michael
998b6665e2 * Fix wrong ref. count for properties that are dynamic arrays (bug ID 29487)
git-svn-id: trunk@33293 -
2016-03-20 08:41:37 +00:00
marcus
b396d34364 Amicommon: Fixed compilation after r33290
git-svn-id: trunk@33292 -
2016-03-20 06:45:00 +00:00
marco
02dbec2085 * X,YPelsPerMeter properties. Kept old (not logical) default of 100 out of compatibility. Bug #29852
git-svn-id: trunk@33291 -
2016-03-19 20:40:55 +00:00
marco
66608fec02 * unicode executeprocess from work during Lazarus convention in IJsselstein
git-svn-id: trunk@33290 -
2016-03-19 17:59:42 +00:00
svenbarth
7845362701 powerpc/agppcmpw.pas:
* getopstr: implement the case that refadr is addr_pic_no_got (we'll have to see whether this really works though...)

git-svn-id: trunk@33289 -
2016-03-19 12:38:53 +00:00
svenbarth
854c67175a powerpc/agppcmpw.pas, TPPCMPWAssembler:
* WriteTree: implement the ait_realconst case by calling WriteRealConstAsBytes
  * WriteTree: remove commented code handling the old constants

git-svn-id: trunk@33288 -
2016-03-19 12:37:17 +00:00
svenbarth
9d4e322cd0 Add AT_FUNCTION or AT_DATA to calls to (Weak)RefAsmSymbol. powerpc-macos needs them.
git-svn-id: trunk@33287 -
2016-03-19 12:29:21 +00:00
svenbarth
464941f039 At least in principle prepare the Mach-O writer for other CPU types.
ogmacho.pas:
  + TMachoObjectOutput: new method current_cpu_type to retrieve the cpu_type_t matching the compiler's target platform
  * TMachoObjectOutput.writedata: initialize cputarget using current_cpu_type and use cputarget instead of CPU_TYPE_I386 in the call to AllocMachoWriter
  * surround the RegisterAssembler call with ifdefs for i386

git-svn-id: trunk@33286 -
2016-03-19 12:22:55 +00:00
svenbarth
e243cc77ea macho.pas:
+ add CPU_TYPE_ARM64 for sake of completeness

git-svn-id: trunk@33285 -
2016-03-19 12:18:16 +00:00
svenbarth
123ef01a7a Forgot to commit this...
systems.pas:
  + add new constant systems_indirect_var_imports to denote all targets that /require/ indirect references for cross-unit variables accesses

git-svn-id: trunk@33284 -
2016-03-18 22:41:51 +00:00
svenbarth
c4449fc5e6 nx86ld.pas, tx86loadnode:
* generate_threadvar_access: pass result of use_indirect_symbol() to RefAsmSymbol() to use an indirect access if necessary

git-svn-id: trunk@33283 -
2016-03-18 22:39:41 +00:00
svenbarth
e4feacf29d Load global variables and typed constants from different units using indirect references if necessary.
ncgld.pas, tcgloadnode:
  + new method use_indirect_symbol to determine whether using an indirect reference is necessary at all
  * generate_threadvar_access & pass_generate_code: pass result of use_indirect_code() to RefAsmSymbol() for using an indirect access if needed

git-svn-id: trunk@33282 -
2016-03-18 22:27:28 +00:00
svenbarth
86b9381673 Add new Delphi compatible switch {$G+/-}, {$IMPORTEDDATA ON/OFF} which handles generation of indirect references for cross unit variable accesses if needed for the target.
globtype.pas:
  + tlocalswitch: extend by cs_imported_data
globals.pas:
  * default_settings: cs_imported_data is set by default (Delphi compatible)
switches.pas:
  * turboSwitchTable: G is used for cs_imported_data
scandir.pas:
  + new directive handler dir_importeddata
  * InitScannerDirectives: handle IMPORTEDDATA with dir_importeddata

git-svn-id: trunk@33281 -
2016-03-18 22:04:57 +00:00
svenbarth
f297b00f5b Extend the x86 targets by the ability to handle indirect symbols.
x86/cgx86.pas, tcgx86:
  + new method make_direct_ref() which is used to convert an indirect reference into a direct one (uses the boolean field in_make_direct_ref to avoid recursive calls)
  * make_simple_ref: call make_direct_ref() before anything else
  * a_loadaddr_ref_ref: call make_direct_ref() (the loading could probably be folded into the loadaddr method, but for now that is sufficent)
i386/cgcpu.pas, tcg386:
  * a_loadaddr_ref_cgpara: call make_direct_ref(); the same remark as for a_loadaddr_ref_ref() applies here

git-svn-id: trunk@33280 -
2016-03-18 21:45:41 +00:00
svenbarth
6722c611cf Generate indirect symbols for global variables and (typed) constants.
Note: It needs to be checked what adjustments will need to be done for JVM and LLVM

Note 2: The indirect symbols will always be generated even if the target won't use them so that assembler code can be consistent among the targets (e.g. i386-win32 needs them while i386-linux does not)

ptconst.pas, read_typed_const:
  * generate the indirect symbol in a read only data section
ngenutil.pas, tnodeutils:
  * insertbsssym: generate the indirect symbol in a read only data section

git-svn-id: trunk@33279 -
2016-03-18 21:40:11 +00:00
svenbarth
3971ba7898 Provide basic facilities to handle indirect symbols that are needed for proper dynamic packages support.
symconst.pas:
  + new constant suffix_indirect which will be used to denote indirect symbols
aasmbase.pas:
  * TAsmsymbind: extend by AB_INDIRECT (which is used to define an indirect symbol) and AB_EXTERNAL_INDIRECT (which is used when an unknown indirect symbol is requested)
  * asmsymbindname: adjust for TAsmsymbind changes
  + new constant asmsymbindindirect which is a set of both indirect asm symbol binds
aasmdata.pas, TAsmData:
  * DefineAsmSymbolByClass: adjust to correctly declare an indirect symbol (with suffix_indirect) if one of the indirect asm symbol binds is used
  * RefAsmSymbol: extend by a boolean parameter which is used to request an indirect symbol (usually AB_EXTERNAL_INDIRECT instead of AB_EXTERNAL)

git-svn-id: trunk@33278 -
2016-03-18 21:34:17 +00:00
svenbarth
77ede2ac9f i386/cgcpu.pas, tcg386:
* a_load_ref_cgpara: call make_simple_ref() before calling the base a_load_ref_cgpara()
x86/cgx86.pas, tcgx86:
  * a_loadfpu_ref_reg, a_loadfpu_reg_ref, g_concatcopy: call make_simple_ref() on the passed references

git-svn-id: trunk@33277 -
2016-03-18 21:22:04 +00:00
nickysn
759a4f8258 * don't try to build lnfodwrf on i8086-msdos, because it causes internal error
200309041 and thus breaks building i8086-msdos snapshots entirely. Added test
  that reproduces the bug in a small program, so it can be fixed eventually.

git-svn-id: trunk@33276 -
2016-03-18 19:56:37 +00:00
svenbarth
e9fab1bfee Fix for Mantis #29080.
psub.pas, tcgprocinfo.parse_body:
  * ensure that parse_generic and current_genericdef are set correctly when parsing a generic routine
pgenutil.pas, generate_specialization_phase2:
  * when we're specializing inside a generic we don't want to have the routine definitions, so let the compiler assume that the routine is no longer a forward definition

+ added test

git-svn-id: trunk@33275 -
2016-03-18 16:31:23 +00:00
svenbarth
570607b1d1 * revert r33273; haven't seen that Florian has already assigned that to himself... Oops
git-svn-id: trunk@33274 -
2016-03-18 14:26:24 +00:00
svenbarth
e4fa7928f9 Fix for Mantis #29527.
i386/popt386.pas, PeepHoleOptPass1:
  * disable the call to RegLoadedWithNewValue() as that method isn't implemented for any of the x86 optimizers (but add a ToDo so that it isn't forgotten)

git-svn-id: trunk@33273 -
2016-03-18 14:24:55 +00:00
marco
e160956abf * removed 10 years deprecated property bytesperpixel
git-svn-id: trunk@33272 -
2016-03-18 14:08:26 +00:00
Jonas Maebe
2b210335a1 * fixed pointer arithmetic errors in WideStrAlloc/StrBufSize/StrDispose
(patch by Iks, mantis #29710)

git-svn-id: trunk@33271 -
2016-03-18 13:12:11 +00:00
Jonas Maebe
697aed738c * replaced test directory names with ones that doesn't contain decomposable
characters, so the test's success doesn't depend on getdir returning a
    string using the same composition as the used name (fixes test on
    OS X 10.11)

git-svn-id: trunk@33270 -
2016-03-18 12:43:47 +00:00
Jonas Maebe
dcedd62049 * regenerated after r33249
git-svn-id: trunk@33269 -
2016-03-18 12:43:44 +00:00
Jonas Maebe
5919ca84bb * fixed string code page after setstring(rawbytestring,..) (mantis #29833)
git-svn-id: trunk@33268 -
2016-03-18 12:43:42 +00:00
Jeppe Johansen
632de58a5e Fixes #29853
git-svn-id: trunk@33267 -
2016-03-18 10:51:46 +00:00
michael
51d22b02a0 * Moved FreeAndNil(FDollarStrings) to correct location
git-svn-id: trunk@33266 -
2016-03-18 10:39:32 +00:00
michael
73792db52b * Patch from Sergey Stepnoy to fix memleak, fix setting term
git-svn-id: trunk@33265 -
2016-03-18 09:52:37 +00:00
michael
be3aa9d6c2 * Fix use of formatfloat
git-svn-id: trunk@33264 -
2016-03-18 07:30:04 +00:00
marco
2fe19d990b * map ebusy and enotdir to error 5, mantis #25931
git-svn-id: trunk@33263 -
2016-03-17 21:15:44 +00:00
marco
9c03d0d6ba * fix for mantis #25931 return error 5 on EBUSY and ENOTDIR
git-svn-id: trunk@33262 -
2016-03-17 21:14:07 +00:00
marcus
62c4ff0e21 AROS: BackTraceStrFunc for AROS via debug.library, enable with EnableBackTraceStr()
git-svn-id: trunk@33261 -
2016-03-17 19:12:56 +00:00
marcus
2fe3a342f2 AROS: SystemTags changed to PtrUInt for 64bit
git-svn-id: trunk@33260 -
2016-03-17 18:57:05 +00:00
Károly Balogh
e0a183650d comment typo fix, spotted by Felix Yan, no functional changes
git-svn-id: trunk@33259 -
2016-03-17 18:33:48 +00:00
michael
668f8eec91 * Patch from Silvio Clecio to declare EArgumentNilException (Bug ID 29850)
git-svn-id: trunk@33258 -
2016-03-16 19:10:10 +00:00
Károly Balogh
e0c21b6f8b ARM: avoid some range check errors, while running a compiler compiled with -CR
git-svn-id: trunk@33257 -
2016-03-16 10:08:44 +00:00
nickysn
96f331038d * fixed crash in node_complexity() on the callparan nodes of SetLength() (and
perhaps calaparans of other inline nodes as well?)

git-svn-id: trunk@33256 -
2016-03-15 23:46:46 +00:00
michael
5fcc032b98 * Fix wrong start index which appeared in loop optimization
git-svn-id: trunk@33255 -
2016-03-15 07:37:49 +00:00
lacak
c21ab78262 fcl-db: mysql: move to standard INFORMATION_SCHEMA metadata queries instead of proprietary MySQL show commands. Bug #29819
(I have used TABLE_TYPE in ('BASE TABLE', 'VIEW') to be compatible with SHOW TABLES statement)

git-svn-id: trunk@33254 -
2016-03-14 13:33:07 +00:00
Károly Balogh
c5907d5f71 it's now possible to compile the RTL again for AmigaOS/PowerPC. entirely untested, but it builds at least
git-svn-id: trunk@33252 -
2016-03-14 02:14:43 +00:00
sergei
a6ea383b0e * Don't escape text inside script/style elements, third part of Mantis #22434.
git-svn-id: trunk@33251 -
2016-03-13 23:32:07 +00:00
sergei
5cc8ddfbf1 * The second part of changes suggested by Maris Janis Vasilevskis (Mantis #22434):
* Parse comments and script/style elements using dedicated scanner states
  * Ignore markup in comments
  * Ignore unescaped '&' in script/style elements
  * Additionally, report comments via OnComment event
* Reverted r17003 since it is entirely replaced by above changes.

git-svn-id: trunk@33250 -
2016-03-13 23:14:31 +00:00
florian
f01edc0a57 * copyright message updated to 2016
git-svn-id: trunk@33249 -
2016-03-13 19:37:57 +00:00
florian
45807056c5 * factored out SymbolCandidateForWarningOrHint
* do not issue a hint if a normal parameter is passed to another procedure by var
+ test

git-svn-id: trunk@33248 -
2016-03-13 19:14:26 +00:00
michael
1bdae1edc8 * Correct comments about sizes/offsets in invisible string header record
git-svn-id: trunk@33247 -
2016-03-13 19:03:40 +00:00
michael
416151a335 * Adapted string routines so they use sizeint instead of integer (bug ID 29814)
git-svn-id: trunk@33246 -
2016-03-13 18:59:21 +00:00