浏览代码

* always write the entire integer field when storing a value < integer in an
arrayconstructor, so the upper bits get zeroed (tbs/tb0581)

git-svn-id: trunk@32214 -

Jonas Maebe 9 年之前
父节点
当前提交
af4d69f446
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      compiler/ncgld.pas

+ 3 - 3
compiler/ncgld.pas

@@ -1225,7 +1225,7 @@ implementation
                          if is_boolean(lt) then
                            begin
                              vtype:=vtBoolean;
-                             varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VBOOLEAN'));
+                             varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
                            end
                          else
                            if (lt.typ=orddef) then
@@ -1234,12 +1234,12 @@ implementation
                                  uchar:
                                    begin
                                      vtype:=vtChar;
-                                     varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VCHAR'));
+                                     varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
                                    end;
                                  uwidechar:
                                    begin
                                      vtype:=vtWideChar;
-                                     varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VWIDECHAR'));
+                                     varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
                                    end;
                                end;
                              end;