This was brkoken because the -dHEAPTRC option
adds ppheap unit at top of the uses clause in pp.pas source,
which leads to a change in the loading order of the units.
This order change revealed that initialization of fpkg unit
was supposed to happen after globals unit.
Fixed here by testing if initdoneprocs local variable is assigned,
both in register_initdone_proc and in allocinitdoneprocs,
to avoid double initialization.
git-svn-id: trunk@34361 -
and getters for the ttemp*node classes instead
o this will allow descendants to prevent certain flags from being added
or removed. E.g. for LLVM, certain temps must never be put in registers
because it cannot typecast a value in a register from a non-record/array
type to an array type without forcing it to memory (so if that is done
on an lvalue, the result will be written to the memory temp instead of
to the register)
git-svn-id: trunk@34358 -
pasresolver.pp: new unit, implements TPasResolver, already supports simple
types, vars, const, arguments, some expressions, calls and used units.
tcresolver: testing TPasResolver,
pastree: fixed some Free with Release calls, added comments, added ForEachCall methods.
pscanner: added option po_resolvestandardtypes. Making built-in types configurable.
pparser: added FinishScope, fixed some Free calls with Release, check proc default values, fixed some typos
Updated tests.
fppas2js: property UseLowerCase to choose between lowercase and declaration case (default true),
using TResolver data, added msg strings, improved error handling, added converter contexts,
function results, local vars, unit vars
git-svn-id: trunk@34357 -
file. A 'Repository' being a list of packages. (These repositories should
replace the available, local and global list of packages)
* The OptionParser can now be used for all options, not only the global
options.
git-svn-id: trunk@34354 -
+ API to write to the Android system log.
+ API to redirect standard output and error to the Android system log. The redirection is performed automatically for shared libraries loaded by Java applications.
git-svn-id: trunk@34352 -
Fix failure for windows make, related to the use of redirection,
which on mingw32 make generate the use of a batch file, incompatible with
forward slashes usd for createlst and gparmake.
* utils/createlst.pp:
Modify to add a first parameter with the name of the output file.
Makefile.fpc: Adapt to new parameter of createlst.
Change list name for directory TEST from TESTfilelist.lst to filelistTEST.lst
to avoid generating files that start as the directory.
git-svn-id: trunk@34330 -
which on mingw32 make generate the use of a batch file, incompatible with
forward slashes usd for createlst and gparmake.
* utils/createlst.pp:
Modify to add a first parameter with the name of the output file.
Makefile.fpc: Adapt to new parameter of createlst.
Change list name for directory TEST from TESTfilelist.lst to filelistTEST.lst
to avoid generating files that start as the directory.
git-svn-id: trunk@34328 -
information gets into log files if output is redirected.
* Add 1000 to ExitStatus if TerminateSentCount is > 0
to allow better discrimination between inferior exitcode and
stop due to Terminate use.
git-svn-id: trunk@34326 -
Fix infinite loop problem that appear on gcc112 linux machine using GNU make 4.0.
* Never put destination directory in the dependency list, as it gets modified when
the target file is created and led to infinite recursion.
We cannot use $(MKDIRTREE) unconditionally as this generates make error
at least on Windows OS.
Instead, create an explicit target for $(TEST_OUTPUTDIR), and add a:
$(MAKE) $dir
line on gparmake, createlst and $(MAKEINC) targets explicitly.
git-svn-id: trunk@34325 -
* Never put destination directory in the dependency list, as it gets modified when
the target file is created and led to infinite recursion.
We cannot use $(MKDIRTREE) unconditionally as this generates make error
at least on Windows OS.
Instead, create an explicit target for $(TEST_OUTPUTDIR), and add a:
$(MAKE) $dir
line on gparmake, createlst and $(MAKEINC) targets explicitly.
git-svn-id: trunk@34324 -
are not compiled at the same time (because otherwise the compiler may
trip over itself in case it performs linking via an external script or
using a response file)
git-svn-id: trunk@34322 -
* Never modify the first half of LowerCaseTable:
even if 'A' is the upper form of 'a' with an accent ('…'),
that doesn't mean that the lowercase form of 'A' should be
'a' with the accent ('…') instead of plain 'a'.
git-svn-id: trunk@34321 -
The problem was in the source of random related functions,
which are used in this test by several thread in parallel,
while this code is known and advertised as non-thread safe.
The access by multiple threads led to multiple increments of the
mt_index static variable, which was then never reset to zero and
led to all successive calls to random function to return zero.
This fix simply insures that the mt_state array is never
accessed past its end, and that mt_index is reset correctly even
if multiple increments do happen.
It does not make the random function thread-safe.
* Use local variable l_index to avoid accessing mt_state array past last element.
* Change mt_index=MTWIST_N+1 into l_index>=MTWIST_N+1
to insure that mt_init will be called again if index is past end.
git-svn-id: trunk@34320 -