Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.112
 
1.113
 
MAIN:ragge:20040608210724
 
pftn.c
_>987987                 return (ALCHAR);
 988988         case FLOAT:
 989989                 return (ALFLOAT);
<> 990+        case LDOUBLE:
  991+                return (ALLDOUBLE);
990992         case DOUBLE:
 991993                 return (ALDOUBLE);
 992994         case LONGLONG:
     
 !
11981200                         pstk->in_sz = 0;
 11991201                 }
 12001202 
<>1201 -                if ((iclass==AUTO || iclass == REGISTER) &&
 1202 -                    (ISARY(t) || t==STRTY))
 1203 -                        uerror("no automatic aggregate initialization");
  1203+                if (iclass==AUTO || iclass == REGISTER) {
  1204+                        if (t == STRTY || t == UNIONTY)
  1205+                                return; /* dealt with in doinit() */
  1206+                        if (ISARY(t))
  1207+                                uerror("no automatic aggregate initialization");
  1208+                }
12041209 
 12051210                 /* now, if this is not a scalar, put on another element */
 12061211 
     
 !
19361941                 case INT:
 19371942                 case CHAR:
 19381943                 case FLOAT:
<> 1944+                case DOUBLE:
19391945                         if (noun != UNDEF)
 19401946                                 goto bad;
 19411947                         noun = p->n_type;
     
 !
19641970                 if (sign != 0 || adj == SHORT)
 19651971                         goto bad;
 19661972                 noun = (adj == LONG ? DOUBLE : FLOAT);
<> 1973+        } else if (noun == DOUBLE) {
  1974+                if (sign != 0 || adj == SHORT)
  1975+                        goto bad;
  1976+                noun = (adj == LONG ? LDOUBLE : DOUBLE);
19671977         } else if (noun == CHAR && adj != INT)
 19681978                 goto bad;
 19691979 
<>1970 -        if (adj != INT)
  1980+        if (adj != INT && (noun != DOUBLE && noun != LDOUBLE))
19711981                 noun = adj;
 19721982         if (sign == UNSIGNED)
 19731983                 noun += (UNSIGNED-INT);
     
 !
23662376                                 return 1;
 23672377                         break;
 23682378                 case FTN:
<>2369 -                        if (chkftn((dsym++)->dfun, (ddef++)->dfun))
  2379+                        /* old-style function headers with function pointers
  2380+                         * will most likely not have a prototype.
  2381+                         * This is not considered an error.  */
  2382+                        if (ddef->dfun == NULL) {
  2383+#ifdef notyet
  2384+                                werror("declaration not a prototype");
  2385+#endif
  2386+                        } else if (chkftn(dsym->dfun, ddef->dfun))
23702387                                 return 1;
<> 2388+                        dsym++, ddef++;
<_23712389                         break;
 23722390                 }
 23732391                 type = DECREF(type);
FishEye: Open Source License registered to PCC.
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-12-29 09:08 +0100