Browse Source

* stackcheck removed for i386_win32
* exportlist does not crash at least !!
(was need for tests dir !)z

pierre 27 years ago
parent
commit
93620d84dd
4 changed files with 44 additions and 12 deletions
  1. 7 2
      compiler/export.pas
  2. 12 1
      compiler/files.pas
  3. 14 6
      compiler/pdecl.pas
  4. 11 3
      compiler/pmodules.pas

+ 7 - 2
compiler/export.pas

@@ -106,7 +106,7 @@ end;
 
 
 procedure texportlib.exportprocedure(hp : pexported_procedure);
 procedure texportlib.exportprocedure(hp : pexported_procedure);
 begin
 begin
-  current_module^._exports^.concat(hp);
+    current_module^._exports^.concat(hp);
 end;
 end;
 
 
 
 
@@ -150,7 +150,12 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.2  1998-10-29 11:35:43  florian
+  Revision 1.3  1998-11-16 11:28:57  pierre
+    * stackcheck removed for i386_win32
+    * exportlist does not crash at least !!
+      (was need for tests dir !)z
+
+  Revision 1.2  1998/10/29 11:35:43  florian
     * some dll support for win32
     * some dll support for win32
     * fixed assembler writing for PalmOS
     * fixed assembler writing for PalmOS
 
 

+ 12 - 1
compiler/files.pas

@@ -857,6 +857,8 @@ unit files;
         sourcefiles^.init;
         sourcefiles^.init;
         imports^.done;
         imports^.done;
         imports^.init;
         imports^.init;
+        _exports^.done;
+        _exports^.init;
         used_units.done;
         used_units.done;
         used_units.init;
         used_units.init;
         linkofiles.done;
         linkofiles.done;
@@ -945,6 +947,7 @@ unit files;
          islibrary:=false;
          islibrary:=false;
          uses_imports:=false;
          uses_imports:=false;
          imports:=new(plinkedlist,init);
          imports:=new(plinkedlist,init);
+         _exports:=new(plinkedlist,init);
        { search the PPU file if it is an unit }
        { search the PPU file if it is an unit }
          if is_unit then
          if is_unit then
           begin
           begin
@@ -964,6 +967,9 @@ unit files;
         if assigned(imports) then
         if assigned(imports) then
          dispose(imports,done);
          dispose(imports,done);
         imports:=nil;
         imports:=nil;
+        if assigned(_exports) then
+         dispose(_exports,done);
+        _exports:=nil;
 {$ifndef VER0_99_8}
 {$ifndef VER0_99_8}
         if assigned(scanner) then
         if assigned(scanner) then
           pscannerfile(scanner)^.invalid:=true;
           pscannerfile(scanner)^.invalid:=true;
@@ -1036,7 +1042,12 @@ unit files;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.72  1998-11-15 16:32:35  florian
+  Revision 1.73  1998-11-16 11:28:58  pierre
+    * stackcheck removed for i386_win32
+    * exportlist does not crash at least !!
+      (was need for tests dir !)z
+
+  Revision 1.72  1998/11/15 16:32:35  florian
     * some stuff of Pavel implement (win32 dll creation)
     * some stuff of Pavel implement (win32 dll creation)
     * bug with ansistring function results fixed
     * bug with ansistring function results fixed
 
 

+ 14 - 6
compiler/pdecl.pas

@@ -2050,12 +2050,15 @@ unit pdecl;
                 end;
                 end;
               _EXPORTS:
               _EXPORTS:
                 begin
                 begin
-                   { here we should be at lexlevel 1, no ? PM }
                    Not_supported_for_inline(token);
                    Not_supported_for_inline(token);
-                   if islibrary then
-                     read_exports
-                   else
-                     break;
+                   { here we should be at lexlevel 1, no ? PM }
+                   if (lexlevel<>main_program_level) or not islibrary then
+                     begin
+                        Message(parser_e_syntax_error);
+                        consume_all_until(SEMICOLON);
+                     end
+                   else if islibrary then
+                     read_exports;
                 end
                 end
               else break;
               else break;
            end;
            end;
@@ -2086,7 +2089,12 @@ unit pdecl;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.82  1998-11-16 10:18:07  peter
+  Revision 1.83  1998-11-16 11:28:59  pierre
+    * stackcheck removed for i386_win32
+    * exportlist does not crash at least !!
+      (was need for tests dir !)z
+
+  Revision 1.82  1998/11/16 10:18:07  peter
     * fixes for ansistrings
     * fixes for ansistrings
 
 
   Revision 1.81  1998/11/13 15:40:22  pierre
   Revision 1.81  1998/11/13 15:40:22  pierre

+ 11 - 3
compiler/pmodules.pas

@@ -36,7 +36,7 @@ unit pmodules;
        cobjects,comphook,systems,globals,
        cobjects,comphook,systems,globals,
        symtable,aasm,files,
        symtable,aasm,files,
        hcodegen,verbose,
        hcodegen,verbose,
-       link,assemble,import,gendef,ppu
+       link,assemble,import,export,gendef,ppu
 {$ifdef i386}
 {$ifdef i386}
        ,i386
        ,i386
 {$endif}
 {$endif}
@@ -926,7 +926,7 @@ unit pmodules;
 
 
          { generate imports }
          { generate imports }
          if current_module^.uses_imports then
          if current_module^.uses_imports then
-          importlib^.generatelib;
+           importlib^.generatelib;
 
 
          { insert own objectfile, or say that it's in a library
          { insert own objectfile, or say that it's in a library
            (no check for an .o when loading) }
            (no check for an .o when loading) }
@@ -1087,6 +1087,9 @@ unit pmodules;
          if current_module^.uses_imports then
          if current_module^.uses_imports then
           importlib^.generatelib;
           importlib^.generatelib;
 
 
+         if islibrary then
+           exportlib^.generatelib;
+           
          { insert heap }
          { insert heap }
          insertheap;
          insertheap;
 
 
@@ -1119,7 +1122,12 @@ unit pmodules;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.82  1998-11-12 12:55:16  pierre
+  Revision 1.83  1998-11-16 11:29:00  pierre
+    * stackcheck removed for i386_win32
+    * exportlist does not crash at least !!
+      (was need for tests dir !)z
+
+  Revision 1.82  1998/11/12 12:55:16  pierre
    * fix for bug0176 and bug0177
    * fix for bug0176 and bug0177
 
 
   Revision 1.81  1998/11/12 11:34:58  peter
   Revision 1.81  1998/11/12 11:34:58  peter