Browse Source

* released valintern
+ deffile is now removed when compiling is finished
* ^( compiles now correct
+ static directive
* shrd fixed

peter 26 years ago
parent
commit
6a802e85d7

+ 14 - 7
compiler/cg386inl.pas

@@ -41,7 +41,7 @@ implementation
 {$else}
       i386,
 {$endif}
-      cgai386,tgeni386,cg386ld,cg386cal;
+      cgai386,tgeni386,cg386cal;
 
 
 {*****************************************************************************
@@ -619,7 +619,7 @@ implementation
            popusedregisters(pushed);
         end;
 
-{$IfDef ValIntern}
+{$IfnDef OLDVAL}
 
         Procedure Handle_Val;
 
@@ -827,7 +827,7 @@ implementation
            disposetree(dest_para);
            UnGetIfTemp(hr);
         end;
-{$EndIf ValIntern}
+{$EndIf OLDVAL}
 
       var
          r : preference;
@@ -1159,7 +1159,7 @@ implementation
                begin
                   pushusedregisters(pushed,$ff);
                   exprasmlist^.concat(new(pai386,op_const(A_PUSH,S_L,pfiledef(p^.left^.resulttype)^.typed_as^.size)));
-                  secondload(p^.left);
+                  secondpass(p^.left);
                   emitpushreferenceaddr(exprasmlist,p^.left^.location.reference);
                   if p^.inlinenumber=in_reset_typedfile then
                     emitcall('FPC_RESET_TYPED',true)
@@ -1180,12 +1180,12 @@ implementation
                  handle_str;
                  maybe_loadesi;
               end;
-{$IfDef ValIntern}
+{$IfnDef ODLVAL}
             in_val_x :
               Begin
                 handle_val;
               End;
-{$EndIf ValIntern}
+{$EndIf OLDVAL}
             in_include_x_y,
             in_exclude_x_y:
               begin
@@ -1270,7 +1270,14 @@ implementation
 end.
 {
   $Log$
-  Revision 1.31  1999-03-24 23:16:49  peter
+  Revision 1.32  1999-03-26 00:05:26  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.31  1999/03/24 23:16:49  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.30  1999/03/16 17:52:56  jonas

+ 33 - 5
compiler/gendef.pas

@@ -27,14 +27,17 @@ uses cobjects;
 type
   pdeffile=^tdeffile;
   tdeffile=object
-    fname       : string;
-    exportlist,
-    importlist  : tstringcontainer;
+    fname : string;
+    empty : boolean;
     constructor init(const fn:string);
     destructor  done;
     procedure addexport(const s:string);
     procedure addimport(const s:string);
     procedure writefile;
+  private
+    erasedeffile : boolean;
+    exportlist,
+    importlist   : tstringcontainer;
   end;
 var
   deffile : tdeffile;
@@ -43,7 +46,7 @@ var
 implementation
 
 uses
-  systems,globals;
+  systems,globtype,globals;
 
 {******************************************************************************
                                TDefFile
@@ -52,13 +55,27 @@ uses
 constructor tdeffile.init(const fn:string);
 begin
   fname:=fn;
+  erasedeffile:=false;
+  empty:=true;
   importlist.init;
   exportlist.init;
 end;
 
 
 destructor tdeffile.done;
+var
+  f : file;
+  i : word;
 begin
+  if erasedeffile and
+     not(cs_link_extern in aktglobalswitches) then
+   begin
+     assign(f,fname);
+     {$I-}
+      erase(f);
+     {$I+}
+     i:=ioresult;
+   end;
   importlist.done;
   exportlist.done;
 end;
@@ -68,12 +85,14 @@ end;
 procedure tdeffile.addexport(const s:string);
 begin
   exportlist.insert(s);
+  empty:=false;
 end;
 
 
 procedure tdeffile.addimport(const s:string);
 begin
   importlist.insert(s);
+  empty:=false;
 end;
 
 
@@ -81,6 +100,7 @@ procedure tdeffile.writefile;
 var
   t : text;
 begin
+{ open file }
   assign(t,fname);
   {$I+}
    rewrite(t);
@@ -123,12 +143,20 @@ begin
    end;
 
   close(t);
+  erasedeffile:=true;
 end;
 
 end.
 {
   $Log$
-  Revision 1.2  1998-10-13 13:10:14  peter
+  Revision 1.3  1999-03-26 00:05:29  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.2  1998/10/13 13:10:14  peter
     * new style for m68k/i386 infos and enums
 
   Revision 1.1  1998/06/04 23:51:39  peter

+ 10 - 3
compiler/globtype.pas

@@ -44,7 +44,7 @@ interface
          cs_fp_emulation,cs_extsyntax,cs_openstring,
          { support }
          cs_support_inline,cs_support_goto,cs_support_macro,
-         cs_support_c_operators,
+         cs_support_c_operators,cs_static_keyword,
          { generation }
          cs_profile,cs_debuginfo,cs_browser,cs_local_browser,cs_compilesystem,
          { linking }
@@ -56,7 +56,7 @@ interface
          mostly set with commandline }
        tglobalswitch = (cs_globalnone,
          { parameter switches }
-         cs_check_unit_name,cs_constructor_name,cs_static_keyword,
+         cs_check_unit_name,cs_constructor_name,
          { units }
          cs_load_objpas_unit,
          cs_load_gpc_unit,
@@ -108,7 +108,14 @@ begin
 end.
 {
   $Log$
-  Revision 1.3  1999-01-27 13:51:44  pierre
+  Revision 1.4  1999-03-26 00:05:30  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.3  1999/01/27 13:51:44  pierre
    * dos end of line problem
 
   Revision 1.2  1998/12/23 12:40:48  daniel

+ 13 - 4
compiler/i386.pas

@@ -673,7 +673,7 @@ unit i386;
          (i : A_IDIV;ops : 2;oc : $f6;eb : 7;m : af_w or Modrm;o1 : ao_reg or ao_mem;o2 : ao_acc;o3 : 0),
          (i : A_ROL;ops : 2;oc : $d0;eb : 0;m : af_w or Modrm;o1 : ao_imm1;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_ROL;ops : 2;oc : $c0;eb : 0;m : af_w or Modrm;o1 : ao_imm8;o2 : ao_reg or ao_mem;o3 : 0),
-         (i : A_ROL;ops : 2;oc : $d2;eb : 0;m : af_w or Modrm;o1 : ao_shiftcount;o2 : ao_reg or ao_mem;o3 : 0),
+         (i : A_ROL;ops : 2;oc : $d2;eb : 0;m : af_w or Modrm;o1 : ao_reg8 or ao_shiftcount;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_ROL;ops : 1;oc : $d0;eb : 0;m : af_w or Modrm;o1 : ao_reg or ao_mem;o2 : 0;o3 : 0),
          (i : A_ROR;ops : 2;oc : $d0;eb : 1;m : af_w or Modrm;o1 : ao_imm1;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_ROR;ops : 2;oc : $c0;eb : 1;m : af_w or Modrm;o1 : ao_imm8;o2 : ao_reg or ao_mem;o3 : 0),
@@ -696,13 +696,15 @@ unit i386;
          (i : A_SHL;ops : 2;oc : $d2;eb : 4;m : af_w or Modrm;o1 : ao_shiftcount;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_SHL;ops : 1;oc : $d0;eb : 4;m : af_w or Modrm;o1 : ao_reg or ao_mem;o2 : 0;o3 : 0),
          (i : A_SHLD;ops : 3;oc : $0fa4;eb : ao_none;m : Modrm;o1 : ao_imm8;o2 : ao_wordreg;o3 : ao_wordreg or ao_mem),
-         (i : A_SHLD;ops : 3;oc : $0fa5;eb : ao_none;m : Modrm;o1 : ao_shiftcount;o2 : ao_wordreg;o3 : ao_wordreg or ao_mem),
+         (i : A_SHLD;ops : 3;oc : $0fa5;eb : ao_none;m : Modrm;o1 : ao_reg8 or ao_shiftcount;o2 : ao_wordreg;
+            o3 : ao_wordreg or ao_mem),
          (i : A_SHR;ops : 2;oc : $d0;eb : 5;m : af_w or Modrm;o1 : ao_imm1;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_SHR;ops : 2;oc : $c0;eb : 5;m : af_w or Modrm;o1 : ao_imm8;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_SHR;ops : 2;oc : $d2;eb : 5;m : af_w or Modrm;o1 : ao_shiftcount;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_SHR;ops : 1;oc : $d0;eb : 5;m : af_w or Modrm;o1 : ao_reg or ao_mem;o2 : 0;o3 : 0),
          (i : A_SHRD;ops : 3;oc : $0fac;eb : ao_none;m : Modrm;o1 : ao_imm8;o2 : ao_wordreg;o3 : ao_wordreg or ao_mem),
-         (i : A_SHRD;ops : 3;oc : $0fad;eb : ao_none;m : Modrm;o1 : ao_shiftcount;o2 : ao_wordreg;o3 : ao_wordreg or ao_mem),
+         (i : A_SHRD;ops : 3;oc : $0fad;eb : ao_none;m : Modrm;o1 : ao_reg8 or ao_shiftcount;o2 : ao_wordreg;
+            o3 : ao_wordreg or ao_mem),
          (i : A_SAR;ops : 2;oc : $d0;eb : 7;m : af_w or Modrm;o1 : ao_imm1;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_SAR;ops : 2;oc : $c0;eb : 7;m : af_w or Modrm;o1 : ao_imm8;o2 : ao_reg or ao_mem;o3 : 0),
          (i : A_SAR;ops : 2;oc : $d2;eb : 7;m : af_w or Modrm;o1 : ao_shiftcount;o2 : ao_reg or ao_mem;o3 : 0),
@@ -1976,7 +1978,14 @@ Begin
 end.
 {
   $Log$
-  Revision 1.37  1999-02-26 00:48:20  peter
+  Revision 1.38  1999-03-26 00:05:31  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.37  1999/02/26 00:48:20  peter
     * assembler writers fixed for ag386bin
 
   Revision 1.36  1999/02/25 21:02:38  peter

+ 21 - 7
compiler/parser.pas

@@ -104,14 +104,27 @@ unit parser;
           maxheapsize:=target_info.maxheapsize;
          if stacksize=0 then
           stacksize:=target_info.stacksize;
+
+         { open assembler response }
+         AsmRes.Init(outputexedir+'ppas');
+
+         { open deffile }
+         DefFile.Init(outputexedir+inputfile+target_os.defext);
       end;
 
+
     procedure doneparser;
       begin
+         { unload units }
          loaded_units.done;
          usedunits.done;
+
+         { close ppas and deffile }
+         asmres.done;
+         deffile.done;
       end;
 
+
     procedure default_macros;
       var
         hp : pstring_item;
@@ -288,12 +301,6 @@ unit parser;
          cg:=new(pcg386,init);
 {$endif i386}
 {$endif newcg}
-       { Handle things which need to be once }
-         if (compile_level=1) then
-          begin
-          { open assembler response }
-            AsmRes.Init(current_module^.outpath^+'ppas');
-          end;
 
          { If the compile level > 1 we get a nice "unit expected" error
            message if we are trying to use a program as unit.}
@@ -452,7 +459,14 @@ unit parser;
 end.
 {
   $Log$
-  Revision 1.70  1999-03-24 23:17:10  peter
+  Revision 1.71  1999-03-26 00:05:33  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.70  1999/03/24 23:17:10  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.69  1999/02/25 21:02:40  peter

+ 9 - 2
compiler/pdecl.pas

@@ -486,7 +486,7 @@ unit pdecl;
                    symdone:=true;
                  end
                 else
-                 if (is_object) and (cs_static_keyword in aktglobalswitches) and (idtoken=_STATIC) then
+                 if (is_object) and (cs_static_keyword in aktmoduleswitches) and (idtoken=_STATIC) then
                   begin
                     current_object_option:=current_object_option or sp_static;
                     insert_syms(symtablestack,sc,p);
@@ -2240,7 +2240,14 @@ unit pdecl;
 end.
 {
   $Log$
-  Revision 1.104  1999-03-24 23:17:13  peter
+  Revision 1.105  1999-03-26 00:05:34  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.104  1999/03/24 23:17:13  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.103  1999/03/22 22:10:25  florian

+ 10 - 6
compiler/pexports.pas

@@ -112,18 +112,22 @@ unit pexports;
                 break;
            end;
          consume(SEMICOLON);
-        if not DefFile.exportlist.empty then
-         begin
-           deffile.fname:='DEF.$$$';
-           deffile.writefile;
-         end;
+        if not DefFile.empty then
+         DefFile.writefile;
       end;
 
 end.
 
 {
   $Log$
-  Revision 1.7  1999-02-22 02:44:12  peter
+  Revision 1.8  1999-03-26 00:05:35  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.7  1999/02/22 02:44:12  peter
     * ag386bin doesn't use i386.pas anymore
 
   Revision 1.6  1998/12/11 00:03:31  peter

+ 10 - 4
compiler/pexpr.pas

@@ -416,7 +416,7 @@ unit pexpr;
               pd:=voiddef;
             end;
 
-{$IfDef ValIntern}
+{$IfnDef OLDVAL}
           in_val_x:
             Begin
               consume(LKLAMMER);
@@ -436,8 +436,7 @@ unit pexpr;
               statement_syssym := p2;
               pd := voiddef;
             End;
-{$EndIf ValIntern}
-
+{$EndIf OLDVAL}
 
           in_include_x_y,
           in_exclude_x_y :
@@ -1977,7 +1976,14 @@ unit pexpr;
 end.
 {
   $Log$
-  Revision 1.88  1999-03-24 23:17:15  peter
+  Revision 1.89  1999-03-26 00:05:36  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.88  1999/03/24 23:17:15  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.87  1999/03/16 17:52:52  jonas

+ 10 - 7
compiler/pmodules.pas

@@ -186,8 +186,7 @@ unit pmodules;
               { Generate an external entry to be sure that _mainCRTStarup will be
                 linked, can't use concat_external because those aren't written for
                 asw (PFV) }
-             if deffile.fname='DEF.$$$'then
-              target_link.bindcmd[1]:=target_link.bindcmd[1]+' -d DEF.$$$';
+             target_link.bindcmd[1]:=target_link.bindcmd[1]+' -d '+deffile.fname;
              if DLLsource then
               target_link.binders:=2;
              if RelocSection then
@@ -196,11 +195,8 @@ unit pmodules;
                target_link.bindcmd[1]:=target_link.bindcmd[1]+' --base-file base.$$$';
                target_link.binders:=2;
               end;
-             if apptype=at_cui then
-              datasegment^.concat(new(pai_const_symbol,init('_mainCRTStartup')))
-             else
+             if apptype=at_gui then
               begin
-               datasegment^.concat(new(pai_const_symbol,init('_WinMainCRTStartup')));
                target_link.linkcmd:='--subsystem windows '+target_link.linkcmd;
                target_link.bindcmd[2]:='--subsystem windows '+target_link.bindcmd[2];
               end;
@@ -1259,7 +1255,14 @@ unit pmodules;
 end.
 {
   $Log$
-  Revision 1.104  1999-03-24 23:17:17  peter
+  Revision 1.105  1999-03-26 00:05:38  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.104  1999/03/24 23:17:17  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.103  1999/03/18 20:30:46  peter

+ 10 - 3
compiler/psystem.pas

@@ -63,9 +63,9 @@ begin
   p^.insert(new(psyssym,init('INC',in_inc_x)));
   p^.insert(new(psyssym,init('STR',in_str_x_string)));
   p^.insert(new(psyssym,init('ASSERT',in_assert_x_y)));
-{$IfDef ValIntern}
+{$IfnDef OLDVAL}
   p^.insert(new(psyssym,init('VAL',in_val_x)));
-{$EndIf ValIntern}
+{$EndIf OLDVAL}
 end;
 
 
@@ -256,7 +256,14 @@ end;
 end.
 {
   $Log$
-  Revision 1.17  1999-03-16 17:52:54  jonas
+  Revision 1.18  1999-03-26 00:05:40  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.17  1999/03/16 17:52:54  jonas
     * changes for internal Val code (do a "make cycle OPT=-dvalintern" to test)
     * in cgi386inl: also range checking for subrange types (compile with "-dreadrangecheck")
     * in cgai386: also small fixes to emitrangecheck

+ 9 - 4
compiler/ra386int.pas

@@ -1701,9 +1701,7 @@ var
                               else
                                 Message(assem_e_invalid_opcode_and_operand);
                             end;
-                        end
-                      else
-                       Message(assem_e_invalid_opcode_and_operand);
+                        end;
                 else
                   Message(assem_e_invalid_opcode_and_operand);
                end; { end case }
@@ -3476,7 +3474,14 @@ begin
 end.
 {
   $Log$
-  Revision 1.23  1999-03-02 22:51:08  peter
+  Revision 1.24  1999-03-26 00:05:41  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.23  1999/03/02 22:51:08  peter
     * [reg-ofs] now correctly compiles to -ofs(reg) instead of ofs(reg)
     * [reg*2] is now allowed
 

+ 2 - 0
compiler/readme

@@ -29,4 +29,6 @@ Changes in the syntax or semantic of FPC:
              find it in the base.zip package (PFV)
   24/03/99   new directives UNITPATH,INCLUDEPATH,OBJECTPATH,LIBRARYPATH to
              set the searchpaths where to find the files for that module (PFV)
+  25/03/99   new directive STATIC +/- or on/off , works like -St commandline
+             switch
 

+ 12 - 3
compiler/scandir.inc

@@ -42,7 +42,7 @@ type
      _DIR_OBJECTPATH,_DIR_OPENSTRINGS,_DIR_OUTPUT_FORMAT,_DIR_OVERFLOWCHECKS,
      _DIR_PACKENUM,_DIR_PACKRECORDS,
      _DIR_R,_DIR_RANGECHECKS,_DIR_REFERENCEINFO,
-     _DIR_SATURATION,_DIR_SMARTLINK,_DIR_STACKFRAMES,_DIR_STOP,
+     _DIR_SATURATION,_DIR_SMARTLINK,_DIR_STACKFRAMES,_DIR_STATIC,_DIR_STOP,
      _DIR_TYPEDADDRESS,_DIR_TYPEINFO,
      _DIR_UNDEF,_DIR_UNITPATH,
      _DIR_VARSTRINGCHECKS,
@@ -70,7 +70,7 @@ const
      'OBJECTPATH','OPENSTRINGS','OUTPUT_FORMAT','OVERFLOWCHECKS',
      'PACKENUM','PACKRECORDS',
      'R','RANGECHECKS','REFERENCEINFO',
-     'SATURATION','SMARTLINK','STACKFRAMES','STOP',
+     'SATURATION','SMARTLINK','STACKFRAMES','STATIC','STOP',
      'TYPEDADDRESS','TYPEINFO',
      'UNDEF','UNITPATH',
      'VARSTRINGCHECKS',
@@ -478,6 +478,7 @@ const
         sw:=cs_modulenone;
         case t of
            _DIR_SMARTLINK : sw:=cs_smartlink;
+           _DIR_STATIC    : sw:=cs_static_keyword;
         end;
         state:=current_scanner^.readstate;
         if (sw<>cs_modulenone) and (state in ['-','+']) then
@@ -997,6 +998,7 @@ const
          {_DIR_SATURATION} dir_localswitch,
          {_DIR_SMARTLINK} dir_moduleswitch,
          {_DIR_STACKFRAMES} dir_delphiswitch,
+         {_DIR_STATIC} dir_moduleswitch,
          {_DIR_STOP} dir_message,
          {_DIR_TYPEDADDRESS} dir_delphiswitch,
          {_DIR_TYPEINFO} dir_delphiswitch,
@@ -1077,7 +1079,14 @@ const
 
 {
   $Log$
-  Revision 1.48  1999-03-25 16:55:34  peter
+  Revision 1.49  1999-03-26 00:05:44  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.48  1999/03/25 16:55:34  peter
     + unitpath,librarypath,includepath,objectpath directives
 
   Revision 1.47  1999/02/22 13:07:05  pierre

+ 23 - 15
compiler/scanner.pas

@@ -461,7 +461,10 @@ implementation
 
     procedure tscannerfile.dec_comment_level;
       begin
-        dec(comment_level)
+         if (m_nested_comment in aktmodeswitches) then
+           dec(comment_level)
+         else
+           comment_level:=0;
       end;
 
 
@@ -1028,11 +1031,6 @@ implementation
                     token:=POINT;
                     goto exit_label;
                   end;
-              2 : begin { first char was a Caret }
-                    token:=CARET;
-                    readchar;
-                    goto exit_label;
-                  end;
              end;
           end;
 
@@ -1100,9 +1098,6 @@ implementation
                   end;
                end;
             end;
-         { a following caret, then set special handling }
-           if (c='^') then
-            do_special:=2;
          { return token }
            goto exit_label;
          end
@@ -1320,15 +1315,20 @@ implementation
                          begin
                            readchar;
                            c:=upcase(c);
-                           if not(block_type=bt_type) and (c in ['A'..'Z']) then
+                           if (block_type=bt_type) or
+                              (lasttoken=ID) or
+                              (lasttoken=RKLAMMER) or (lasttoken=RECKKLAMMER) then
                             begin
-                              pattern:=chr(ord(c)-64);
-                              readchar;
+                              token:=CARET;
+                              goto exit_label;
                             end
                            else
                             begin
-                              token:=CARET;
-                              goto exit_label;
+                              if c<#64 then
+                               pattern:=chr(ord(c)+64)
+                              else
+                               pattern:=chr(ord(c)-64);
+                              readchar;
                             end;
                          end
                         else
@@ -1452,6 +1452,7 @@ implementation
            end;
         end;
 exit_label:
+        lasttoken:=token;
       end;
 
 
@@ -1581,7 +1582,14 @@ begin
 end.
 {
   $Log$
-  Revision 1.76  1999-03-24 23:17:24  peter
+  Revision 1.77  1999-03-26 00:05:45  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.76  1999/03/24 23:17:24  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.75  1999/03/16 21:00:27  peter

+ 19 - 1
compiler/systems.pas

@@ -129,6 +129,7 @@ unit systems;
           sourceext,
           pasext,
           exeext,
+          defext,
           scriptext : string[4];
           libprefix : string[3];
           Cprefix   : string[2];
@@ -249,6 +250,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '';      { No .exe, the linker only output a.out ! }
+            defext       : '.def';
             scriptext    : '.bat';
             libprefix    : '';
             Cprefix      : '_';
@@ -269,6 +271,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '.exe';
+            defext       : '.def';
             scriptext    : '.bat';
             libprefix    : '';
             Cprefix      : '_';
@@ -289,6 +292,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '';
+            defext       : '.def';
             scriptext    : '.sh';
             libprefix    : 'lib';
             Cprefix      : '';
@@ -309,6 +313,7 @@ implementation
             sourceext    : '.pas';
             pasext       : '.pp';
             exeext       : '.exe';
+            defext       : '.def';
             scriptext    : '.cmd';
             libprefix    : '';
             Cprefix      : '_';
@@ -329,6 +334,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '.exe';
+            defext       : '.def';
             scriptext    : '.bat';
             libprefix    : 'lib';
             Cprefix      : '_';
@@ -349,6 +355,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '';
+            defext       : '';
             scriptext    : '';
             libprefix    : '';
             Cprefix      : '_';
@@ -369,6 +376,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '.tpp';
+            defext       : '';
             scriptext    : '';
             libprefix    : '';
             Cprefix      : '_';
@@ -389,6 +397,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '.tpp';
+            defext       : '';
             scriptext    : '';
             libprefix    : '';
             Cprefix      : '_';
@@ -409,6 +418,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '';
+            defext       : '';
             scriptext    : '.sh';
             libprefix    : 'lib';
             Cprefix      : '';
@@ -429,6 +439,7 @@ implementation
             sourceext    : '.pp';
             pasext       : '.pas';
             exeext       : '';
+            defext       : '';
             scriptext    : '.sh';
             libprefix    : 'lib';
             Cprefix      : '_';
@@ -1358,7 +1369,14 @@ begin
 end.
 {
   $Log$
-  Revision 1.64  1999-03-24 23:17:33  peter
+  Revision 1.65  1999-03-26 00:05:47  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.64  1999/03/24 23:17:33  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.63  1999/03/09 11:54:09  pierre

+ 14 - 8
compiler/tcinl.pas

@@ -36,7 +36,7 @@ implementation
       globtype,
       symtable,aasm,types,
       hcodegen,htypechk,pass_1,
-      tccal,tcld
+      tccal
 {$ifdef i386}
 {$ifdef ag386bin}
       ,i386base
@@ -106,9 +106,9 @@ implementation
          count_ref:=false;
          if not (p^.inlinenumber in [in_read_x,in_readln_x,in_sizeof_x,
             in_typeof_x,in_ord_x,in_str_x_string,
-{$IfDef ValIntern}
+{$IfnDef OLDVAL}
             in_val_x,
-{$EndIf ValIntern}
+{$EndIf OLDVAL}
             in_reset_typedfile,in_rewrite_typedfile]) then
            must_be_valid:=true
          else
@@ -706,7 +706,7 @@ implementation
                   procinfo.flags:=procinfo.flags or pi_do_call;
                   { to be sure the right definition is loaded }
                   p^.left^.resulttype:=nil;
-                  firstload(p^.left);
+                  firstpass(p^.left);
                   p^.resulttype:=voiddef;
                end;
              in_str_x_string :
@@ -808,8 +808,7 @@ implementation
                   { calc registers }
                   left_right_max(p);
                end;
-{$IfDef ValIntern}
-
+{$IfnDef OLDVAL}
              in_val_x :
                begin
                   procinfo.flags:=procinfo.flags or pi_do_call;
@@ -874,7 +873,7 @@ implementation
                   { calc registers }
                   left_right_max(p);
                end;
-{$EndIf ValIntern}
+{$EndIf OLDVAL}
             in_include_x_y,
             in_exclude_x_y:
               begin
@@ -1034,7 +1033,14 @@ implementation
 end.
 {
   $Log$
-  Revision 1.21  1999-03-24 23:17:37  peter
+  Revision 1.22  1999-03-26 00:05:48  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.21  1999/03/24 23:17:37  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.20  1999/03/16 17:52:55  jonas

+ 13 - 1
compiler/tree.pas

@@ -374,6 +374,11 @@ unit tree;
          hp : ptree;
 
       begin
+         if not assigned(p) then
+          begin
+            getcopy:=nil;
+            exit;
+          end;
          hp:=getnode;
          hp^:=p^;
          case p^.disposetyp of
@@ -1709,7 +1714,14 @@ unit tree;
 end.
 {
   $Log$
-  Revision 1.69  1999-03-24 23:17:41  peter
+  Revision 1.70  1999-03-26 00:05:49  peter
+    * released valintern
+    + deffile is now removed when compiling is finished
+    * ^( compiles now correct
+    + static directive
+    * shrd fixed
+
+  Revision 1.69  1999/03/24 23:17:41  peter
     * fixed bugs 212,222,225,227,229,231,233
 
   Revision 1.68  1999/03/02 18:24:25  peter