ide/Project: (#241) Seeing GCC warnings when building from IDE
authorJerome St-Louis <jerome@ecere.com>
Tue, 10 Jun 2014 06:05:37 +0000 (02:05 -0400)
committerJerome St-Louis <jerome@ecere.com>
Tue, 10 Jun 2014 06:13:43 +0000 (02:13 -0400)
- Also fixed remaining warnings in documentor, epj2make, extras and samples
- Now that the warnings from the generated C code have been limited, we filter out only those warnings which have not yet been fixed.
- Remaining warnings (which will be addressed by #685) are related to:
   - A few more potentially unused generated eC declarations (will mark with unused)
   - Incompatible function pointers and void ** (will need to generate casts)
   - Declaration ordering problems (e.g. declared inside parameter list, we'll fix this with the topo sort in #26)
   - Warnings coming out of objidl.h from MinGW-w64 (declaration does not declare anything)
   - Warnings in release mode
   - Warnings compiling in 32 bit (will need to add (u)intptr casts prior)

documentor/src/Documentor.ec
epj2make/epj2make.ec
extras/html/HTMLView.ec
extras/html/htmlParser.ec
extras/html/lines.ec
extras/html/tables.ec
ide/src/project/Project.ec
samples/3D/terrainCameraDemo/demo.ec
samples/3D/terrainCameraDemo/dna.ec
samples/net/XMLSample/xmlSample.ec

index a5e3d7e..d8c91c4 100644 (file)
@@ -8,7 +8,7 @@ static Context globalContext { };
 static OldList defines { };
 static OldList imports { };
 static NameSpace globalData;
-static OldList excludedSymbols { offset = (uint)&((Symbol)0).left };
+static OldList excludedSymbols { offset = (uint)(uintptr)&((Symbol)0).left };
 static bool readOnly;
 
 define app = (GuiApplication)__thisModule.application;
@@ -20,10 +20,10 @@ default:
 private:
 
 
-static void Dummy()
+static __attribute__((unused)) void Dummy()
 {
-int a;
-a.OnGetString(null, null, null);
+   int a;
+   a.OnGetString(null, null, null);
 }
 
 static bool editing = true;
@@ -270,10 +270,6 @@ static void _PrintType(Type type, char * string, bool printName, bool printFunct
                      strcat(string, "</b>");
                   }
                }
-               else
-               {
-                  printf("");
-               }
             }
 
             if(printFunction)
@@ -369,7 +365,7 @@ static void _PrintType(Type type, char * string, bool printName, bool printFunct
             strcat(string, ")");
             break;
          default:
-            printf("");
+            break;
       }
       if(type.name && printName && type.kind != functionType && (type.kind != pointerType || type.type.kind != functionType))
       {
@@ -385,7 +381,6 @@ void DocPrintType(Type type, char * string, bool printName, bool fullName)
    for(funcType = type; funcType && (funcType.kind == pointerType || funcType.kind == arrayType); funcType = funcType.type);
    if(funcType && funcType.kind == functionType && type != funcType)
    {
-      char typeString[1024];
       Type param;
 
       DocPrintType(funcType.returnType, string, false, fullName);
@@ -652,11 +647,9 @@ class APIPageNameSpace : APIPage
 
    void Generate(File f)
    {
-      char string[1024];
       char nsName[1024], temp[1024];
       NameSpace * ns;
       BTNamedLink link;
-      int64 tag;
 
       nsName[0] = 0;
       ns = nameSpace;
@@ -673,14 +666,10 @@ class APIPageNameSpace : APIPage
       if(nsName[0])
       {
          f.Printf("<FONT FACE=\"Arial\" SIZE=\"6\">%s</FONT><br><br>\n", nsName );
-         tag = (int64)nameSpace;
          f.Printf($"Module: <a href=\"api://%p\" style=\"text-decoration: none;\">%s</a><br>\n", (module && module.name) ? module : null, (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
       }
       else
-      {
-         tag = (int64)(!module || !module.name || !strcmp(nsName, "ecere::com") ? null : module);
          f.Printf($"<FONT FACE=\"Arial\" SIZE=\"6\">Module %s</FONT><br>\n", (!module || !module.name || !strcmp(nsName, "ecere::com")) ? "ecereCOM" : module.name);
-      }
 
       nsName[0] = 0;
       ns = nameSpace->parent;
@@ -886,7 +875,6 @@ class APIPageClass : APIPage
       char string[1024];
       Method method;
       Property prop;
-      DataMember member;
       char nsName[1024], temp[1024];
       NameSpace * ns = cl.nameSpace;
       Module module = cl.module;
@@ -1053,7 +1041,6 @@ class APIPageClass : APIPage
             if((prop.memberAccess == publicAccess || (prop.memberAccess == privateAccess && showPrivate)) && prop.name)
             {
                char * desc = ReadDoc(module, classDoc, cl, conversion, prop);
-               DataRow mRow;
                const char * name;
                Type type = ProcessTypeString(prop.name, false);
                name = RSearchString(prop.name, "::", strlen(prop.name), true, false);
@@ -1805,8 +1792,6 @@ static void AddNameSpace(DataRow parentRow, Module module, NameSpace mainNameSpa
    DataRow functionsRow = null, definesRow = null;
    APIPage page;
 
-   char fileName[MAX_LOCATION];
-
    strcpy(nsName, parentName ? parentName : "");
    if(nameSpace->name)
    {
@@ -1829,25 +1814,22 @@ static void AddNameSpace(DataRow parentRow, Module module, NameSpace mainNameSpa
       page = parentRow.GetData(null);
    }
 
+   for(ns = (NameSpace *)mainNameSpace.nameSpaces.first; ns; ns = (NameSpace *)((BTNode)ns).next)
    {
-      bool first = true;
-
-      for(ns = (NameSpace *)mainNameSpace.nameSpaces.first; ns; ns = (NameSpace *)((BTNode)ns).next)
-      {
-         NameSpace * comNS = (comNameSpace != null) ? (NameSpace *)comNameSpace.nameSpaces.FindString(ns->name) : null;
-         AddNameSpace(row, module, ns, comNS, nsName, showPrivate);
-      }
-      if(comNameSpace != null)
+      NameSpace * comNS = (comNameSpace != null) ? (NameSpace *)comNameSpace.nameSpaces.FindString(ns->name) : null;
+      AddNameSpace(row, module, ns, comNS, nsName, showPrivate);
+   }
+   if(comNameSpace != null)
+   {
+      for(ns = (NameSpace *)comNameSpace.nameSpaces.first; ns; ns = (NameSpace *)((BTNode)ns).next)
       {
-         for(ns = (NameSpace *)comNameSpace.nameSpaces.first; ns; ns = (NameSpace *)((BTNode)ns).next)
+         if(!mainNameSpace.nameSpaces.FindString(ns->name))
          {
-            if(!mainNameSpace.nameSpaces.FindString(ns->name))
-            {
-               AddNameSpace(row, module, ns, null, nsName, showPrivate);
-            }
+            AddNameSpace(row, module, ns, null, nsName, showPrivate);
          }
       }
    }
+
    if(mainNameSpace.classes.first || (comNameSpace && comNameSpace.classes.first))
    {
       for(nameSpace = mainNameSpace ; nameSpace; nameSpace = (nameSpace == mainNameSpace) ? comNameSpace : null)
@@ -1992,12 +1974,8 @@ static void AddDataMember(DataRow parentRow, APIPage page, DataMember member)
 
 static void AddClass(DataRow parentRow, Module module, Class cl, char * nsName, bool showPrivate)
 {
-   char fileName[MAX_LOCATION];
-   char string[1024];
    Method method;
    Property prop;
-   DataMember member;
-   Type param;
    DataRow row;
    DataRow methodsRow = null, virtualsRow = null, eventsRow = null;
    DataRow propertiesRow = null, membersRow = null, conversionsRow = null, enumRow = null;
@@ -2372,7 +2350,7 @@ class MainForm : Window
                   default:
                   {
                      char hex[20];
-                     sprintf(hex, "%p", row.tag);
+                     sprintf(hex, "%p", (void *)(uintptr)row.tag);
                      view.GoToAnchor(hex);
                   }
                }
@@ -2552,7 +2530,7 @@ class HelpView : HTMLView
       char archiveFile[MAX_LOCATION];
       char fileName[MAX_FILENAME];
       char directory[MAX_LOCATION];
-      char * location;
+      const char * location;
       Archive archive = null;
       if(SplitArchivePath(editString, archiveFile, &location))
       {
@@ -2750,7 +2728,7 @@ class HelpView : HTMLView
             if(block.type == BR && (!block.prev || !block.next || block.next.type != TEXT))
             {
                Block newBlock { type = TEXT, parent = block.parent, font = block.parent.font };
-               int tw = 0, th = 0;
+               int th = 0;
                display.FontExtent(block.font.font, " ", 1, null, &th);
                if(!block.prev)
                {
@@ -2997,7 +2975,7 @@ class HelpView : HTMLView
                }
 
                {
-                  int tw = 0, th = 0;
+                  int th = 0;
                   int textPos = 0;
                   int sx = textBlock.startX, sy = textBlock.startY;
                   char * text = textBlock.text;
@@ -3107,7 +3085,7 @@ class HelpView : HTMLView
             case Key { down, shift = true }:
             case down:
             {
-               int tw = 0, th = 0;
+               int th = 0;
                int textPos = 0;
                int sx = textBlock.startX, sy = textBlock.startY;
                char * text = textBlock.text;
@@ -3503,7 +3481,7 @@ class HelpView : HTMLView
                break;
             case enter:
             {
-               int tw = 0, th = 0;
+               int th = 0;
                Block block;
                Block newBlock;
                int startY, startX;
@@ -3590,7 +3568,7 @@ class HelpView : HTMLView
                               Block block { type = BR, parent = parent, font = font };
                               Block newBlock { type = TEXT, parent = parent, font = font };
                               int startY = textBlock.startY, startX = textBlock.startX;
-                              int tw = 0, th = 0;
+                              int th = 0;
 
                               display.FontExtent(textBlock.font.font, " ", 1, null, &th);
                               textBlock.parent.subBlocks.Insert(textBlock, block);
@@ -3815,7 +3793,6 @@ class HelpView : HTMLView
 
          while(textPos < textBlock.textLen)
          {
-            int startPos = textPos;
             int width = 0;
             int x = 0;
             bool lineComplete = false;
@@ -3913,12 +3890,12 @@ class Documentor : GuiApplication
                PathCat(programFilesDir, "ECERE SDK\\doc");
                settings.docDir = programFilesDir;
             }
-            else if(homeDrive && homeDrive[0])
+            else if(homeDrive[0])
             {
                PathCat(homeDrive, "ECERE SDK\\doc");
                settings.docDir = homeDrive;
             }
-            else if(winDir && winDir[0])
+            else if(winDir[0])
             {
                PathCat(winDir, "..\\ECERE SDK\\doc");
                settings.docDir = winDir;
index 5bb0e25..de6c49f 100644 (file)
@@ -19,7 +19,7 @@ extern int getch(void);
 void ParseDirList(char * string, Container<String> list)
 {
    int c;
-   byte * tokens[256];
+   char * tokens[256];
    int numTokens = TokenizeWith(string, sizeof(tokens) / sizeof(byte *), tokens, ";", false);
    list.Free();
    for(c = 0; c < numTokens; c++)
index 8ba45af..c50114f 100644 (file)
@@ -124,7 +124,7 @@ class ObjectThread : Thread
 
                //((GuiApplication)__thisModule).Unlock();
 
-               if(path && strstr(path, "http://") == path)
+               if(strstr(path, "http://") == path)
                {
                   HTTPFile httpFile {};
                   file = httpFile;
@@ -225,7 +225,7 @@ static OldList imageCache;
 
 static OldList objectRequests;
 
-static void WriteBlock(File f, Block block)
+/*static void WriteBlock(File f, Block block)
 {
    static int indent = 0;
    Block child;
@@ -274,7 +274,7 @@ static void WriteBlock(File f, Block block)
       WriteBlock(f, child);
       indent --;
    }
-}
+}*/
 
 static void ComputeImageSize(Block block)
 {
@@ -427,7 +427,6 @@ class HTMLView : Window
       if(surface)
       {
          int maxH = height - BOTTOM_MARGIN;
-         int h = 0;
 
          if(html.defaultFont.font)
             surface.TextFont(html.defaultFont.font.font);
@@ -441,10 +440,7 @@ class HTMLView : Window
 
             newH = ComputeLine(surface, block, textPos, &nextBlock, &nextTextPos, &centered, &w, maxW, maxH - y, RenderFlags { lineW = true, width = true }, 0, null, null, &changeLine, true, y, LEFT_MARGIN);
             if(changeLine)
-            {
                y += newH;
-               h = 0;
-            }
             block = nextBlock;
             textPos = nextTextPos;
 
@@ -556,7 +552,7 @@ class HTMLView : Window
             block.bitmap = entry.bitmap;
          else
          {
-            if(path && (strstr(path, "http://") == path || strstr(path, "https://") == path))
+            if(strstr(path, "http://") == path || strstr(path, "https://") == path)
             {
                RequestLink request;
                objectsMutex.Wait();
@@ -691,7 +687,6 @@ class HTMLView : Window
       OldList leftObjects { };
       OldList rightObjects { };
       AlignedObject object, nextObject;
-      int h = 0;
 
       Surface surface = display.GetSurface(0,0,null);
       if(surface)
@@ -747,10 +742,7 @@ class HTMLView : Window
                left - scroll.x, right - scroll.x);
 
             if(changeLine)
-            {
                y += newH;
-               h = 0;
-            }
             block = nextBlock;
             textPos = nextTextPos;
          }
@@ -1013,7 +1005,6 @@ class HTMLView : Window
    void OpenFile(File f, char * firstReferer)
    {
       char referer[MAX_LOCATION] = "";
-      char relocation[MAX_LOCATION];
       bool opened = false;
 
       clickedLink = null;
@@ -1170,7 +1161,6 @@ class HTMLView : Window
       Font font;
 
       AlignedObject object, nextObject;
-      int h = 0;
 
       surface.SetBackground(html.background);
       if(html.background.a < 255)
@@ -1224,19 +1214,13 @@ class HTMLView : Window
 
          surface.TextFont(font);
 
-         //h = Max(h, newH);
          RenderLine(this, surface, x - scroll.x, y - scroll.y, maxW, newH, block, textPos, nextBlock, nextTextPos, left - scroll.x, right - scroll.x);
 
          if(changeLine)
-         {
-            // y += h;
             y += newH;
-            h = 0;
-         }
          block = nextBlock;
          textPos = nextTextPos;
       }
-      //y += h;
    }
 
    void OnVScroll(ScrollBarAction action, int position, Key key)
@@ -1300,7 +1284,6 @@ class HTMLView : Window
       OldList leftObjects { };
       OldList rightObjects { };
       AlignedObject object, nextObject;
-      int h = 0;
 
       Surface surface = display.GetSurface(0,0,null);
       if(surface)
@@ -1357,10 +1340,8 @@ class HTMLView : Window
             }
 
             if(changeLine)
-            {
                y += newH;
-               h = 0;
-            }
+
             block = nextBlock;
             textPos = nextTextPos;
          }
index a7f9d77..a747877 100644 (file)
@@ -83,7 +83,7 @@ class Block : struct
          delete entryPtr;
       }
 
-      while(child = subBlocks.first)
+      while((child = subBlocks.first))
       {
          subBlocks.Remove(child);
          delete child;
@@ -176,7 +176,7 @@ static int GetKeyWord(char ** input, char * keyWord, int maxSize)
    return GetKeyWordEx(input, keyWord, maxSize, true, false);
 }
 
-static char * GetString(char * string, char * what, int count)
+/*static char * GetString(char * string, char * what, int count)
 {
    int wc, sc;
 
@@ -192,7 +192,7 @@ static char * GetString(char * string, char * what, int count)
          return null;
    }
    return string + sc;
-}
+}*/
 
 #include <stdio.h>
 
@@ -280,7 +280,7 @@ class HTMLFile
       // Parse entire file
       while(!f.Eof() && block)
       {
-         byte ch = 0;
+         char ch = 0;
 
          f.Getc(&ch);
 #ifdef _DEBUG
@@ -724,9 +724,9 @@ class HTMLFile
                            }
                            else if(!strcmpi(keyWord, "maxlength"))
                            {
-                              int maxlength;
+                              //int maxlength;
                               GetKeyWord(&string, keyWord, sizeof(keyWord));
-                              maxlength = atoi(keyWord);
+                              //maxlength = atoi(keyWord);
                            }
                            else if(!strcmpi(keyWord, "value"))
                            {
index 6aa9be3..0274d14 100644 (file)
@@ -316,7 +316,6 @@ void RenderLine(HTMLView browser, Surface surface, int x, int y, int w, int h, B
 {
    int textPos = startTextPos;
    Block block = startBlock;
-   bool lineComplete = false;
    int startSel, endSel;
    Block startSelBlock = null, endSelBlock = null;
    if(browser.textBlock != browser.selBlock || browser.curPosition != browser.selPosition)
@@ -457,7 +456,6 @@ void RenderLine(HTMLView browser, Surface surface, int x, int y, int w, int h, B
             break;
         case TABLE:
             RenderTable(browser, surface, x, y, w, h, left, right, block);
-            lineComplete = true;
             block = NextBlockUp(surface, block, null, RenderFlags { render = true });
             textPos = 0;
             break;
@@ -480,7 +478,6 @@ bool PickLine(HTMLView browser, Surface surface, int x, int y, int w, int h, Blo
    bool result = false;
    int textPos = startTextPos;
    Block block = startBlock;
-   bool lineComplete = false;
 
    for(;!result;)
    {
@@ -565,7 +562,6 @@ bool PickLine(HTMLView browser, Surface surface, int x, int y, int w, int h, Blo
             break;
         case TABLE:
             result = PickTable(browser, surface, x, y, w, h, left, right, block, pickX, pickY, pickBlock, pickTextPos);
-            lineComplete = true;
             block = NextBlockUp(surface, block, null, RenderFlags { render = true });
             textPos = 0;
             break;
@@ -589,7 +585,6 @@ void PositionLine(HTMLView browser, Surface surface, int x, int y, int w, int h,
 {
    int textPos = startTextPos;
    Block block = startBlock;
-   bool lineComplete = false;
 
    for(;;)
    {
@@ -608,18 +603,14 @@ void PositionLine(HTMLView browser, Surface surface, int x, int y, int w, int h,
                   block.window.size.w, block.window.size.h);
                //block.window.visible = false;
                x += block.window.size.w;
-               if(block.inputType == text)
-               {
-                  printf("");
-               }
             }
             break;
          }
          case IMAGE:
          {
             int bw = block.pWidth ? (w * block.pWidth / 100) : block.w;
-            int bh = block.pHeight ? (h * block.pHeight / 100) : block.h;
-            int dx, dy;
+            //int bh = block.pHeight ? (h * block.pHeight / 100) : block.h;
+            int dx;//, dy;
 
             switch(block.halign)
             {
@@ -637,12 +628,14 @@ void PositionLine(HTMLView browser, Surface surface, int x, int y, int w, int h,
                   break;
             }
 
+            /*
             switch(block.valign)
             {
                case bottom: dy = y + h - bh; break;
                case top: dy = y; break;
                case middle: dy = y + (h - bh) / 2; break;
             }
+            */
 
             x += bw;
             break;
@@ -667,7 +660,6 @@ void PositionLine(HTMLView browser, Surface surface, int x, int y, int w, int h,
             break;
         case TABLE:
             PositionTable(browser, surface, x, y, w, h, left, right, block);
-            lineComplete = true;
             block = NextBlockUp(surface, block, null, RenderFlags { render = true });
             textPos = 0;
             break;
index 9570f1b..a2f553d 100644 (file)
@@ -50,7 +50,7 @@ void ComputeTable(Surface surface, Block table, int textPos, int * width, int *
                if(cell.type == TD)
                {
                   int c;
-                  bool centered = false;
+                  int centered = 0;
                   int minW = 0, lineW = 0;
                   Block block;
                   int textPos = 0;
@@ -587,7 +587,7 @@ void ComputeTable(Surface surface, Block table, int textPos, int * width, int *
                {
                   if(cell.type == TD)
                   {
-                     bool centered = false;
+                     int centered = 0;
                      Block block;
                      int textPos = 0;
                      int c;
@@ -797,7 +797,7 @@ void ComputeTable(Surface surface, Block table, int textPos, int * width, int *
 
 static void RenderCell(HTMLView browser, Surface surface, Block cell, int cellX, int y)
 {
-   bool centered = false;
+   int centered = 0;
    Block block = cell;
    int textPos = 0;
    Block row = cell.parent;
@@ -1024,7 +1024,7 @@ static bool PickCell(HTMLView browser, Surface surface, Block cell, int cellX, i
                      int pickX, int pickY, Block* pickBlock, int * pickTextPos)
 {
    bool result = false;
-   bool centered = false;
+   int centered = 0;
    Block block = cell;
    int textPos = 0;
    Block row = cell.parent;
@@ -1221,7 +1221,7 @@ bool PickTable(HTMLView browser, Surface surface, int x, int y, int w, int h, in
 
 static void PositionCell(HTMLView browser, Surface surface, Block cell, int cellX, int y)
 {
-   bool centered = false;
+   int centered = 0;
    Block block = cell;
    int textPos = 0;
    Block row = cell.parent;
index 87e3ec2..77463d5 100644 (file)
@@ -42,8 +42,8 @@ IDESettingsContainer settingsContainer
 
    void OnLoad(GlobalSettingsData data)
    {
-      IDESettings settings = (IDESettings)data;
 #ifndef MAKEFILE_GENERATOR
+      IDESettings settings = (IDESettings)data;
       globalSettingsDialog.ideSettings = settings;
       ide.UpdateRecentMenus();
       ide.UpdateCompilerConfigs(true);
@@ -1183,6 +1183,8 @@ private:
    {
 #ifndef MAKEFILE_GENERATOR
       return ide.project == this && ide.debugger && ide.debugger.prjConfig == config && ide.debugger.isActive;
+#else
+      return false;
 #endif
    }
 
@@ -1190,6 +1192,8 @@ private:
    {
 #ifndef MAKEFILE_GENERATOR
       return ide.project == this && ide.debugger && ide.debugger.prjConfig == config && ide.debugger.isPrepared;
+#else
+      return false;
 #endif
    }
 
@@ -1787,7 +1791,53 @@ private:
                               numErrors++;
                            }
                            else if(compilingEC == 1 || (objDir && objDir == moduleName))
-                              continue;
+                           {
+                              bool skip = false;
+
+                              // Filter out these warnings caused by eC generated C code:
+
+                              // Declaration ordering bugs -- Awaiting topo sort implementation
+                                   if(strstr(line, "declared inside parameter list")) skip = true;
+                              else if(strstr(line, "its scope is only this definition")) skip = true;
+                              else if(strstr(line, "note: expected 'struct ") || strstr(line, "note: expected ‘struct "))
+                              {
+                                 #define STRUCT_A "'struct "
+                                 #define STRUCT_B "‘struct "
+                                 char * struct1, * struct2, ch1, ch2;
+                                 struct1 = strstr(line, STRUCT_A);
+                                 if(struct1) { struct1 += sizeof(STRUCT_A)-1; } else { struct1 = strstr(line, STRUCT_B); struct1 += sizeof(STRUCT_B)-1; };
+
+                                 struct2 = strstr(struct1, STRUCT_A);
+                                 if(struct2) { struct2 += sizeof(STRUCT_A)-1; } else { struct2 = strstr(struct1, STRUCT_B); if(struct2) struct2 += sizeof(STRUCT_B)-1; };
+
+                                 if(struct1 && struct2)
+                                 {
+                                    while(ch1 = *(struct1++), ch2 = *(struct2++), ch1 && ch2 && (ch1 == '_' || isalnum(ch1)) && (ch2 == '_' || isalnum(ch2)));
+                                    if(ch1 == ch2)
+                                       skip = true;
+                                 }
+                              }
+                              // Pointers warnings (eC should already warn about relevant problems, more forgiving for function pointers, should cast in generated code)
+                              else if((strstr(line, "note: expected '") || strstr(line, "note: expected ‘")) && strstr(line, "(*)")) skip = true;
+                              else if(strstr(line, "expected 'void **") || strstr(line, "expected ‘void **")) skip = true;
+                              else if(strstr(line, "from incompatible pointer type")) skip = true;
+                              else if(strstr(line, "comparison of distinct pointer types lacks a cast")) skip = true;
+
+                              // Things being defined for potential use -- Should mark as unused
+                              else if(strstr(line, "unused variable") && (strstr(line, "'__") || strstr(line, "‘__") || strstr(line, "'class'") || strstr(line, "‘class’"))) skip = true;
+                              else if(strstr(line, "defined but not used") && strstr(line, "__ecereProp")) skip = true;
+
+                              // For preprocessed code from objidl.h (MinGW-w64 headers)
+                              else if(strstr(line, "declaration does not declare anything")) skip = true;
+
+                              // Location information that could apply to ignored warnings
+                              else if(strstr(line, "In function '") || strstr(line, "In function ‘") ) skip = true;
+                              else if(strstr(line, "At top level")) skip = true;
+                              else if(strstr(line, "(near initialization for '") || strstr(line, "(near initialization for ‘")) skip = true;
+
+                              if(skip) continue;
+                              numWarnings++;
+                           }
                            else if(strstr(line, "warning:"))
                            {
                               numWarnings++;
@@ -4580,6 +4630,7 @@ Project LoadProject(const char * filePath, const char * activeConfigName)
    return project;
 }
 
+#ifndef MAKEFILE_GENERATOR
 static GccVersionInfo GetGccVersionInfo(CompilerConfig compiler, const String compilerCommand)
 {
    GccVersionInfo result = unknown;
@@ -4651,3 +4702,4 @@ static enum GccVersionInfo
       return result;
    }
 };
+#endif
index dc18421..138d484 100644 (file)
@@ -106,7 +106,7 @@ static void OutputTexture(String fileName)
 }
 */
 
-static bool LoadTerrain(Terrain terrain, char * fileName, Angle lat)
+static bool LoadTerrain(Terrain terrain, const char * fileName, Angle lat)
 {
    bool result = false;
    File f = FileOpen(fileName, read);
index 2c5ca30..7cda358 100644 (file)
@@ -283,7 +283,7 @@ public:
    }
 }
 
-static char * names[7] = { "Adenine", "Cytosine", "Guanine", "Thymine", "Phosphate", "Desoxyribose", "Hydrogene" };
+static const char * names[7] = { "Adenine", "Cytosine", "Guanine", "Thymine", "Phosphate", "Desoxyribose", "Hydrogene" };
 
 public class DNAModel : Object
 {
@@ -297,7 +297,7 @@ public class DNAModel : Object
    int baseHeight;
    int baseDepth;
    int desoxyriboseWidth;
-   char * textureFile;
+   const char * textureFile;
 
 public:
    bool Create(DisplaySystem displaySystem)
index cdd4f20..5bd3f23 100644 (file)
@@ -118,7 +118,7 @@ class MyParser : XMLParser
 
    void ProcessKeyword(char * keyWord)
    {
-      NamedLink nl;
+      NamedLink64 nl;
       EnumClassData tagData = class(MyTag).data;
       for(nl = tagData.values.first; nl; nl = nl.next)
       {