summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-10 14:10:52 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-10 14:10:52 +0000
commited1a5439381f7e8c436d98d0a5b082be82af7a4a (patch)
tree27968dde5e7ff78e6d7c78b6705b4a1c589a640d
parent2aec889b784e2e3fd23080b015bacca7d5cb418a (diff)
downloadfpc-ed1a5439381f7e8c436d98d0a5b082be82af7a4a.tar.gz
--- Merging r44096 into '.':
U compiler/nbas.pas --- Recording mergeinfo for merge of r44096 into '.': U . --- Merging r46274 into '.': G compiler/nbas.pas --- Recording mergeinfo for merge of r46274 into '.': G . --- Merging r48127 into '.': A tests/webtbs/tw38337.pp --- Recording mergeinfo for merge of r48127 into '.': G . git-svn-id: https://svn.freepascal.org/svn/fpc/branches/fixes_3_2@48128 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--compiler/nbas.pas15
-rw-r--r--tests/webtbs/tw38337.pp20
2 files changed, 34 insertions, 1 deletions
diff --git a/compiler/nbas.pas b/compiler/nbas.pas
index f2803b938e..c31b5324a9 100644
--- a/compiler/nbas.pas
+++ b/compiler/nbas.pas
@@ -176,7 +176,7 @@ interface
ttempinfoflags = set of ttempinfoflag;
const
- tempinfostoreflags = [ti_may_be_in_reg,ti_addr_taken,ti_reference,ti_readonly,ti_no_final_regsync];
+ tempinfostoreflags = [ti_may_be_in_reg,ti_addr_taken,ti_reference,ti_readonly,ti_no_final_regsync,ti_nofini,ti_const];
type
{ to allow access to the location by temp references even after the temp has }
@@ -1101,10 +1101,23 @@ implementation
procedure ttempcreatenode.printnodedata(var t:text);
+ var
+ f: ttempinfoflag;
+ first: Boolean;
begin
inherited printnodedata(t);
writeln(t,printnodeindention,'size = ',size,', temptypedef = ',tempinfo^.typedef.typesymbolprettyname,' = "',
tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
+ write(t,printnodeindention,'[');
+ first:=true;
+ for f in tempflags do
+ begin
+ if not(first) then
+ write(t,',');
+ write(t,f);
+ first:=false;
+ end;
+ writeln(t,']');
writeln(t,printnodeindention,'tempinit =');
printnode(t,tempinfo^.tempinitcode);
end;
diff --git a/tests/webtbs/tw38337.pp b/tests/webtbs/tw38337.pp
new file mode 100644
index 0000000000..7d461ddfa9
--- /dev/null
+++ b/tests/webtbs/tw38337.pp
@@ -0,0 +1,20 @@
+program fs;
+
+{$mode objfpc}{$H+}
+
+function UTF8Length(const s: string): PtrInt; inline;
+begin
+ Result:=9;
+end;
+
+
+var
+ v1: string;
+ s: shortstring;
+ i: Integer;
+begin
+ v1 := '123456789';
+ s := v1;
+ for i := 1 to UTF8Length(s)-8 do begin
+ end;
+end.