* src/SDCCmain.c: signal handling is switched off by --debug
[fw/sdcc] / src / SDCCpeeph.c
index dfd7d84cd3372d46ed12da9582c7ee56fdc53d68..3adf8fce235bd0abc29ddf3895ee182fcbcf83a7 100644 (file)
@@ -600,6 +600,8 @@ bindVar (int key, char **s, hTab ** vtab)
              if (*vvx == ')')
                ubb--;
            }
+         // include the trailing ')'
+         *vv++ = *vvx++;
        }
       else
        *vv++ = *vvx++;
@@ -834,8 +836,7 @@ replaceRule (lineNode ** shead, lineNode * stail, peepRule * pr)
       (*shead)->prev->next = lhead;
       lhead->prev = (*shead)->prev;
     }
-  else
-    *shead = lhead;
+  *shead = lhead;
   /* now for the tail */
   if (stail && stail->next)
     {
@@ -1009,6 +1010,12 @@ peepHole (lineNode ** pls)
   lineNode *mtail = NULL;
   bool restart;
 
+#if !OPT_DISABLE_PIC
+  /* The PIC port uses a different peep hole optimizer based on "pCode" */
+  if (TARGET_IS_PIC)
+    return;
+#endif
+
   assert(labelHash == NULL);
 
   do