(mantis #14940 and #14941)
* only turn var/our shortstring parameters with a length of 255 into
openstring parameters with {$p+} (new tbf/tb0217.pp)
git-svn-id: trunk@14602 -
can create ambiguities for the parser in case the field names also exist
as modifiers (TP- and Delphi-compatible, mantis #13971) + tests
* fixed tests that broke because of this change
git-svn-id: trunk@13334 -
case the getter is a function, the result is that first the getter is
called, and subsequently the temp holding the function result is
overwritten (thus not changing anything). This is Delphi-compatible,
and fixes tests/tbf/tb0214*
git-svn-id: trunk@13320 -
sized integer (succeed for Delphi, fail for objfpc)
* fixed compiler so it only allows typecasting a class/interface to a
differently sized integer in Delphi mode
git-svn-id: trunk@13152 -
* store a node's verbosity in the node so that e.g. disabling warnings
also disables warnings for this node in pass_1
(the above together fix mantis #12076)
* save/restore verbosity with {$push}/{$pop} (mantis #12075)
* if warnings/notes/hints are turned off, also do not count encountered
ones for the totals (otherwise -Sew cannot be used properly in
combination with {$warnings off}, because disabled warnings will still
trigger a compiler error) -- this required adding -vw/-vn/-vh to all
tests using -Sew/-Sen/-Seh
- removed some superfluous state saving/restoring from firstpass()
git-svn-id: trunk@12025 -
usage in case PIC generation is on (some by adding PIC-versions of
the assembler code, most by adding -Cg- to the options to be used).
Note: the Intel assembler reader does not yet support the Delphi
PIC construct, so tests with that (like test/tasmread and test/tcg1)
do not work with -Cg on non-Darwin (Darwin needs a different PIC
construct)
git-svn-id: trunk@9370 -
calling convention that has different hidden parameters than the
interface declaration no longer compiled in Delphi mode (e.g.
webtbs/tw7329.pp on i386)
* fixed remaining declaration parsing incompatibilities in TP/Delphi
modes (other modes already gave errors for the things below):
* give an error for "function a: byte;" in interface followed by
"procedure a;" in implementation ("function a;" in implementation
still allowed as in TP/Delphi)
* give an error for "function a(b: byte):byte" in interface
followed by "function a: byte;" in implementation (if one parameter
or return type is specified in implementation, everything must
be repeated -- "function a;" still allowed)
* copied webtbs/tw0890.pp to webtbf/tw0890a.pp since it now correctly
fails, and modified webtbs/tw0890.pp so it doesn't fail with the
new code
git-svn-id: trunk@5688 -