d: Merge upstream dmd 1831b24ff.
authorIain Buclaw <ibuclaw@gdcproject.org>
Sun, 7 Jun 2020 14:37:25 +0000 (16:37 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Sun, 7 Jun 2020 14:39:39 +0000 (16:39 +0200)
Converts some global and param fields from pointers to value types.

Reviewed-on: https://github.com/dlang/dmd/pull/11245

gcc/d/ChangeLog:

* dmd/MERGE: Merge upstream dmd 1831b24ff.
* d-lang.cc (d_init_options): Remove initialization of updated fields.
(d_handle_option): Adjust for new field types.

gcc/d/d-lang.cc
gcc/d/dmd/MERGE
gcc/d/dmd/dmodule.c
gcc/d/dmd/doc.c
gcc/d/dmd/globals.h

index c4477cd90cb1cbfeceeef737f78262fe5dc3225c..41921934fdd4f281c55a43f97d42c063fdbc6307 100644 (file)
@@ -297,18 +297,12 @@ d_init_options (unsigned int, cl_decoded_option *decoded_options)
   /* Default extern(C++) mangling to C++14.  */
   global.params.cplusplus = CppStdRevisionCpp14;
 
-  global.params.linkswitches = new Strings ();
-  global.params.libfiles = new Strings ();
-  global.params.objfiles = new Strings ();
-  global.params.ddocfiles = new Strings ();
-
   /* Warnings and deprecations are disabled by default.  */
   global.params.useDeprecated = DIAGNOSTICoff;
   global.params.warnings = DIAGNOSTICoff;
 
   global.params.imppath = new Strings ();
   global.params.fileImppath = new Strings ();
-  global.params.modFileAliasStrings = new Strings ();
 
   /* Extra GDC-specific options.  */
   d_option.fonly = NULL;
@@ -474,7 +468,7 @@ d_handle_option (size_t scode, const char *arg, HOST_WIDE_INT value,
       break;
 
     case OPT_fdoc_inc_:
-      global.params.ddocfiles->push (arg);
+      global.params.ddocfiles.push (arg);
       break;
 
     case OPT_fdruntime:
@@ -502,7 +496,7 @@ d_handle_option (size_t scode, const char *arg, HOST_WIDE_INT value,
       break;
 
     case OPT_fmodule_file_:
-      global.params.modFileAliasStrings->push (arg);
+      global.params.modFileAliasStrings.push (arg);
       if (!strchr (arg, '='))
        error ("bad argument for %<-fmodule-file%>: %qs", arg);
       break;
index fa94d63e4710357fbbae407d5cca3072a3a529e1..56a47bb61a3a0cebc1f8cd9a59dd81f6f3333cc2 100644 (file)
@@ -1,4 +1,4 @@
-cef1e7991121a22f50e9966ea407805015922bc7
+1831b24fffe35fd0e332c194fdf8723ba3c930a5
 
 The first line of this file holds the git revision number of the last
 merge done from the dlang/dmd repository.
index 09e95472330ef3488d803e340f2bb5ff5ffceef5..5bb544746ecaaada0c46c2fe035d7a6b59affd2c 100644 (file)
@@ -228,7 +228,7 @@ Module *Module::load(Loc loc, Identifiers *packages, Identifier *ident)
     {
         OutBuffer buf;
         OutBuffer dotmods;
-        Array<const char *> *ms = global.params.modFileAliasStrings;
+        Array<const char *> *ms = &global.params.modFileAliasStrings;
         const size_t msdim = ms ? ms->length : 0;
 
         for (size_t i = 0; i < packages->length; i++)
index 7c21ab2efe7a2ad458df91b4536caf31d250e3f5..e0bf94086d9db9e0782a2df0e5d62bdb43af560d 100644 (file)
@@ -351,12 +351,12 @@ void gendocfile(Module *m)
         // Override with DDOCFILE specified in the sc.ini file
         char *p = getenv("DDOCFILE");
         if (p)
-            global.params.ddocfiles->shift(p);
+            global.params.ddocfiles.shift(p);
 
         // Override with the ddoc macro files from the command line
-        for (size_t i = 0; i < global.params.ddocfiles->length; i++)
+        for (size_t i = 0; i < global.params.ddocfiles.length; i++)
         {
-            FileName f((*global.params.ddocfiles)[i]);
+            FileName f(global.params.ddocfiles[i]);
             File file(&f);
             readFile(m->loc, &file);
             // BUG: convert file contents to UTF-8 before use
index 5b5aac3ab68d79a1024ce84c4948fd284c659821..8a2ffdc2a56d672f955f231b2d3e0dac0969f17f 100644 (file)
@@ -145,7 +145,7 @@ struct Param
     CHECKACTION checkAction;       // action to take when bounds, asserts or switch defaults are violated
 
     DString  argv0;    // program name
-    Array<const char *> *modFileAliasStrings; // array of char*'s of -I module filename alias strings
+    Array<const char *> modFileAliasStrings; // array of char*'s of -I module filename alias strings
     Array<const char *> *imppath;     // array of char*'s of where to look for import modules
     Array<const char *> *fileImppath; // array of char*'s of where to look for file import modules
     DString objdir;    // .obj/.lib file output directory
@@ -155,7 +155,7 @@ struct Param
     bool doDocComments;  // process embedded documentation comments
     DString docdir;      // write documentation file to docdir directory
     DString docname;     // write documentation file to docname
-    Array<const char *> *ddocfiles;  // macro include files for Ddoc
+    Array<const char *> ddocfiles;  // macro include files for Ddoc
 
     bool doHdrGeneration;  // process embedded documentation comments
     DString hdrdir;        // write 'header' file to docdir directory
@@ -190,10 +190,10 @@ struct Param
     Strings runargs;    // arguments for executable
 
     // Linker stuff
-    Array<const char *> *objfiles;
-    Array<const char *> *linkswitches;
-    Array<const char *> *libfiles;
-    Array<const char *> *dllfiles;
+    Array<const char *> objfiles;
+    Array<const char *> linkswitches;
+    Array<const char *> libfiles;
+    Array<const char *> dllfiles;
     DString deffile;
     DString resfile;
     DString exefile;