fpc/tests/test/jvm
Jonas Maebe 945fd4fcf5 * wait till the end of typecheckpass before we load a call context's self
parameter instead of immediately doing it in the constructor of the call
  node, and then only create it if we actually need it.

  It was previously created in the call node constructor because it needs to be
  done before pass_1 (which is where it is actually used) due to pass_1 possibly
  being performed in the context of inlining (and then a wrong self parameter
  may be found, or none at all), and it was done unconditionally because at that
  point we don't know yet whether or not a self parameter will be necessary (as
  we haven't resolved the overloads/procdef yet).

  The problem with this is that if we use the parentfpstruct way of handling
  accesses to outer scope locals/parameters, we need to know all locals/
  parameters that will be accessed from nested routines after typecheckpass,
  otherwise we get crashes. The problem was that if a call to an RTL routine was
  generated by the compiler in a routine nested inside a method during pass_1,
  and this nested routine itself did not access self of the method (so self was
  not added to its parentfpstruct during the typecheckpass), then the
  unconditional reference to self when creating the call caused a compiler
  crash (introduced in r30908)

git-svn-id: trunk@31197 -
2015-07-07 16:34:14 +00:00
..
classlist.pp
classmeth.pp
forw.pp
getbit.pp
JavaClass.java * don't import org.freepascal.rtl.* as this also includes our System 2015-05-31 16:50:53 +00:00
nested.pp
outpara.pp
sort.pp
tabs.pp
taddbool.pp
taddset.pp
taddsetint.pp
tarray2.pp
tarray3.pp
tassert.pp
tbyte.pp
tbytearrres.pp
tclassproptest.pp
tcnvstr1.pp
tcnvstr3.pp
tconst.pp
tdefpara.pp
tdynarrec.pp
tdynarrnil.pp
tenum2.pp
tenum.pp
test.pp
testall.bat * wait till the end of typecheckpass before we load a call context's self 2015-07-07 16:34:14 +00:00
testall.sh * wait till the end of typecheckpass before we load a call context's self 2015-07-07 16:34:14 +00:00
testansi.pp
testintf.pp
testshort.pp
tformalpara.pp
tinitvar.pp + -CTinitlocals switch for the JVM that initialises all local variables 2013-08-29 22:21:23 +00:00
tint.pp
tintstr.pp
tjavalowercaseproc.java * fixed some bugs in the camelCase conversion performed on the JVM target by 2013-10-23 22:44:45 +00:00
tjsetter.java * when automatically generating an overriding getter/setter method (because 2013-08-06 21:50:56 +00:00
tlowercaseproc.pp * fixed some bugs in the camelCase conversion performed on the JVM target by 2013-10-23 22:44:45 +00:00
tnestcallpass1.pp * wait till the end of typecheckpass before we load a call context's self 2015-07-07 16:34:14 +00:00
tnestdynarr.pp
tnestedset.pp
tnestproc.pp
topovl.pp
toverload2.pp * check all overloaded routines for mangled name conflicts on the JVM 2014-04-10 21:07:14 +00:00
toverload.pp * check all overloaded routines for mangled name conflicts on the JVM 2014-04-10 21:07:14 +00:00
tprop2.pp
tprop3.pp
tprop4.pp * fixed -CTauto(g|s)etterprefix automatically generated helpers in case they 2013-01-30 22:35:59 +00:00
tprop5.pp * support for raising the visibility of inherited properties on the JVM 2014-06-12 11:08:44 +00:00
tprop5a.pp * support for raising the visibility of inherited properties on the JVM 2014-06-12 11:08:44 +00:00
tprop6.pp * fixes for the support for overriding properties on the JVM target: 2014-06-14 10:35:35 +00:00
tprop6a.pp * fixes for the support for overriding properties on the JVM target: 2014-06-14 10:35:35 +00:00
tprop.pp
tptrdynarr.pp * insert JVM checkcast instructions when a voidpointer is implicitly 2014-05-10 12:47:34 +00:00
tpvar.pp
tpvardelphi.pp
tpvarglobal.pp
tpvarglobaldelphi.pp
trange1.pp
trange2.pp
trange3.pp
tset1.pp
tset3.pp
tset7.pp
tsetansistr.pp + added n8086cal.pas, based on n386cal.pas; this pulls in nx86cal.pas as well and fixes compilation of the system unit on i8086 after the merge of the i8086 branch to trunk 2013-04-26 20:19:57 +00:00
tsetstring.pp + jvm setstring test 2014-10-15 20:50:14 +00:00
tsmallintarr.pp + forgot to commit, part of r26472 2014-03-30 16:55:03 +00:00
tstr.pp * fixed compilation of new str<->float code on the JVM target (patch by 2013-11-06 16:13:50 +00:00
tstring1.pp
tstring9.pp
tstrreal1.pp
tstrreal2.pp * fixed compilation of new str<->float code on the JVM target (patch by 2013-11-06 16:13:50 +00:00
tthreadvar.pp
ttincdec.pp
ttrig.pp
ttrunc.pp
tval1.pp
tval2.pp
tval3.pp
tval4.pp
tval5.pp
tval.inc
tval.pp
tvalc.pp
tvarpara.pp
tvirtclmeth.pp
tw20212.pp
tw22807.pp
tw24089.pp * don't make a deep copy of records (and in the future, objects) in with- 2013-03-20 16:23:25 +00:00
twith.pp
uenum.pp
ujsetter.pp * when automatically generating an overriding getter/setter method (because 2013-08-06 21:50:56 +00:00
unsupported.pp