History

20100713-2357

forsyth committed 16 years ago

Commit d416ec91 parent 32271861 file · +62 −50Browse files

Unified · Split

utils/cc/sub.c+62−50
@@ -9,7 +9,12 @@ new(int t, Node *l, Node *r) · 8 unmodified lines
99 n->op = t;
1010 n->left = l;
1111 n->right = r;
12− n->lineno = lineno;
12+ if(l && t != OGOTO)
13+ n->lineno = l->lineno;
14+ else if(r)
15+ n->lineno = r->lineno;
16+ else
17+ n->lineno = lineno;
1318 newflag = 1;
1419 return n;
1520 }
@@ -103,7 +108,7 @@ prtree1(Node *n, int d, int f) · 87 unmodified lines
103108 print(" %T", n->type);
104109 if(n->complex != 0)
105110 print(" (%d)", n->complex);
106− print("\n");
111+ print(" %L\n", n->lineno);
107112 if(i & 2)
108113 prtree1(n->left, d, 1);
109114 if(i & 1)
@@ -1819,7 +1824,7 @@ urk(char *name, int max, int i) · 1709 unmodified lines
18191824 void
18201825 tinit(void)
18211826 {
1822− int i;
1827+ int *ip;
18231828 Init *p;
18241829
18251830 for(p=thashinit; p->code >= 0; p++) {
@@ -1850,66 +1855,66 @@ tinit(void) · 24 unmodified lines
18501855 urk("onames", nelem(onames), p->code);
18511856 onames[p->code] = p->s;
18521857 }
1853− for(i=0; typeiinit[i] >= 0; i++) {
1854− urk("typei", nelem(typei), typeiinit[i]);
1855− typei[typeiinit[i]] = 1;
1858+ for(ip=typeiinit; *ip>=0; ip++) {
1859+ urk("typei", nelem(typei), *ip);
1860+ typei[*ip] = 1;
18561861 }
1857− for(i=0; typeuinit[i] >= 0; i++) {
1858− urk("typeu", nelem(typeu), typeuinit[i]);
1859− typeu[typeuinit[i]] = 1;
1862+ for(ip=typeuinit; *ip>=0; ip++) {
1863+ urk("typeu", nelem(typeu), *ip);
1864+ typeu[*ip] = 1;
18601865 }
1861− for(i=0; typesuvinit[i] >= 0; i++) {
1862− urk("typesuv", nelem(typesuv), typesuvinit[i]);
1863− typesuv[typesuvinit[i]] = 1;
1866+ for(ip=typesuvinit; *ip>=0; ip++) {
1867+ urk("typesuv", nelem(typesuv), *ip);
1868+ typesuv[*ip] = 1;
18641869 }
1865− for(i=0; typeilpinit[i] >= 0; i++) {
1866− urk("typeilp", nelem(typeilp), typeilpinit[i]);
1867− typeilp[typeilpinit[i]] = 1;
1870+ for(ip=typeilpinit; *ip>=0; ip++) {
1871+ urk("typeilp", nelem(typeilp), *ip);
1872+ typeilp[*ip] = 1;
18681873 }
1869− for(i=0; typechlinit[i] >= 0; i++) {
1870− urk("typechl", nelem(typechl), typechlinit[i]);
1871− typechl[typechlinit[i]] = 1;
1872− typechlv[typechlinit[i]] = 1;
1873− typechlvp[typechlinit[i]] = 1;
1874+ for(ip=typechlinit; *ip>=0; ip++) {
1875+ urk("typechl", nelem(typechl), *ip);
1876+ typechl[*ip] = 1;
1877+ typechlv[*ip] = 1;
1878+ typechlvp[*ip] = 1;
18741879 }
1875− for(i=0; typechlpinit[i] >= 0; i++) {
1876− urk("typechlp", nelem(typechlp), typechlpinit[i]);
1877− typechlp[typechlpinit[i]] = 1;
1878− typechlvp[typechlinit[i]] = 1;
1880+ for(ip=typechlpinit; *ip>=0; ip++) {
1881+ urk("typechlp", nelem(typechlp), *ip);
1882+ typechlp[*ip] = 1;
1883+ typechlvp[*ip] = 1;
18791884 }
1880− for(i=0; typechlpfdinit[i] >= 0; i++) {
1881− urk("typechlpfd", nelem(typechlpfd), typechlpfdinit[i]);
1882− typechlpfd[typechlpfdinit[i]] = 1;
1885+ for(ip=typechlpfdinit; *ip>=0; ip++) {
1886+ urk("typechlpfd", nelem(typechlpfd), *ip);
1887+ typechlpfd[*ip] = 1;
18831888 }
1884− for(i=0; typecinit[i] >= 0; i++) {
1885− urk("typec", nelem(typec), typecinit[i]);
1886− typec[typecinit[i]] = 1;
1889+ for(ip=typecinit; *ip>=0; ip++) {
1890+ urk("typec", nelem(typec), *ip);
1891+ typec[*ip] = 1;
18871892 }
1888− for(i=0; typehinit[i] >= 0; i++) {
1889− urk("typeh", nelem(typeh), typehinit[i]);
1890− typeh[typehinit[i]] = 1;
1893+ for(ip=typehinit; *ip>=0; ip++) {
1894+ urk("typeh", nelem(typeh), *ip);
1895+ typeh[*ip] = 1;
18911896 }
1892− for(i=0; typeilinit[i] >= 0; i++) {
1893− urk("typeil", nelem(typeil), typeilinit[i]);
1894− typeil[typeilinit[i]] = 1;
1897+ for(ip=typeilinit; *ip>=0; ip++) {
1898+ urk("typeil", nelem(typeil), *ip);
1899+ typeil[*ip] = 1;
18951900 }
1896− for(i=0; typevinit[i] >= 0; i++) {
1897− urk("typev", nelem(typev), typevinit[i]);
1898− typev[typevinit[i]] = 1;
1899− typechlv[typevinit[i]] = 1;
1900− typechlvp[typechlinit[i]] = 1;
1901+ for(ip=typevinit; *ip>=0; ip++) {
1902+ urk("typev", nelem(typev), *ip);
1903+ typev[*ip] = 1;
1904+ typechlv[*ip] = 1;
1905+ typechlvp[*ip] = 1;
19011906 }
1902− for(i=0; typefdinit[i] >= 0; i++) {
1903− urk("typefd", nelem(typefd), typefdinit[i]);
1904− typefd[typefdinit[i]] = 1;
1907+ for(ip=typefdinit; *ip>=0; ip++) {
1908+ urk("typefd", nelem(typefd), *ip);
1909+ typefd[*ip] = 1;
19051910 }
1906− for(i=0; typeafinit[i] >= 0; i++) {
1907− urk("typeaf", nelem(typeaf), typeafinit[i]);
1908− typeaf[typeafinit[i]] = 1;
1911+ for(ip=typeafinit; *ip>=0; ip++) {
1912+ urk("typeaf", nelem(typeaf), *ip);
1913+ typeaf[*ip] = 1;
19091914 }
1910− for(i=0; typesuinit[i] >= 0; i++) {
1911− urk("typesu", nelem(typesu), typesuinit[i]);
1912− typesu[typesuinit[i]] = 1;
1915+ for(ip=typesuinit; *ip >= 0; ip++) {
1916+ urk("typesu", nelem(typesu), *ip);
1917+ typesu[*ip] = 1;
19131918 }
19141919 for(p=tasigninit; p->code >= 0; p++) {
19151920 urk("tasign", nelem(tasign), p->code);
@@ -1943,8 +1948,15 @@ tinit(void) · 27 unmodified lines
19431948 urk("trel", nelem(trel), p->code);
19441949 trel[p->code] = p->value;
19451950 }
1951+
1952+ /* 32-bit defaults */
1953+ typeword = typechlp;
1954+ typecmplx = typesuv;
19461955 }
19471956
1957+/*
1958+ * return 1 if it is impossible to jump into the middle of n.
1959+ */
19481960 static int
19491961 deadhead(Node *n, int caseok)
19501962 {