Browse Source

* 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 years ago
parent
commit
af4d69f446
1 changed files with 3 additions and 3 deletions
  1. 3 3
      compiler/ncgld.pas

+ 3 - 3
compiler/ncgld.pas

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