* src/pic16/main.c (_process_pragma): check for missing
[fw/sdcc] / src / pic16 / main.c
index 2e16a168cf9f35c10f8300485302f0edd3fd2867..a490a264fa16e0555080d1db40a8bf16fd8cfd48 100644 (file)
@@ -231,6 +231,11 @@ _process_pragma(const char *sz)
     absSym *absS;
     value *addr;
 
+      if (!symname || !location) {
+        fprintf (stderr, "%s:%d: #pragma code [symbol] [location] -- symbol or location missing\n", filename, lineno-1);
+        return 1; /* considered an error */
+      }
+
       absS = Safe_calloc(1, sizeof(absSym));
       sprintf(absS->name, "_%s", symname);
     
@@ -259,6 +264,11 @@ _process_pragma(const char *sz)
     sectName *snam;
     int found=0;
     
+      if (!symname || !sectname) {
+        fprintf (stderr, "%s:%d: #pragma udata [section-name] [symbol] -- section-name or symbol missing!\n", filename, lineno-1);
+        return 1; /* considered an error */
+      }
+    
       while(symname) {
         ssym = Safe_calloc(1, sizeof(sectSym));
         ssym->name = Safe_calloc(1, strlen(symname)+2);