some fixes

This commit is contained in:
ceriel 1989-05-29 11:32:23 +00:00
parent aaea752423
commit aa0e321971
4 changed files with 19 additions and 17 deletions

View file

@ -4,5 +4,5 @@
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
#ifndef lint
static char Version[] = "ACK CEM compiler Version 3.1";
static char Version[] = "ACK CEM compiler Version 3.2";
#endif lint

View file

@ -53,12 +53,12 @@ ch7mon(oper, expp)
break;
case '&':
if ((*expp)->ex_type->tp_fund == ARRAY) {
warning("& before array ignored");
expr_warning(*expp, "& before array ignored");
array2pointer(*expp);
}
else
if ((*expp)->ex_type->tp_fund == FUNCTION) {
warning("& before function ignored");
expr_warning(*expp, "& before function ignored");
function2pointer(*expp);
}
else
@ -146,7 +146,7 @@ ch7mon(oper, expp)
break;
case SIZEOF:
if (ISNAME(*expp) && (*expp)->VL_IDF->id_def->df_formal_array)
warning("sizeof formal array %s is sizeof pointer!",
expr_warning(*expp, "sizeof formal array %s is sizeof pointer!",
(*expp)->VL_IDF->id_text);
expr = intexpr((*expp)->ex_class == String ?
(arith)((*expp)->SG_LEN) :

View file

@ -132,7 +132,7 @@ domacro()
}
PRIVATE
skip_block()
skip_block(to_endif)
{
/* skip_block() skips the input from
1) a false #if, #ifdef, #ifndef or #elif until the
@ -173,7 +173,7 @@ skip_block()
push_if();
break;
case K_ELIF:
if (nestlevel == skiplevel) {
if (! to_endif && nestlevel == skiplevel) {
nestlevel--;
push_if();
if (ifexpr()) {
@ -183,12 +183,14 @@ skip_block()
}
break;
case K_ELSE:
if (! to_endif) {
++(ifstack[nestlevel]);
if (nestlevel == skiplevel) {
SkipRestOfLine();
NoUnstack--;
return;
}
}
break;
case K_ENDIF:
ASSERT(nestlevel > nestlow);
@ -328,7 +330,7 @@ do_elif()
else { /* restart at this level as if a #if is detected. */
nestlevel--;
push_if();
skip_block();
skip_block(1);
}
}
@ -340,7 +342,7 @@ do_else()
lexerror("#else without corresponding #if");
else { /* mark this level as else-d */
++(ifstack[nestlevel]);
skip_block();
skip_block(1);
}
}
@ -359,7 +361,7 @@ do_if()
{
push_if();
if (!ifexpr()) /* a false #if/#elif expression */
skip_block();
skip_block(0);
}
PRIVATE
@ -377,7 +379,7 @@ do_ifdef(how)
(how && !id->id_macro) || (!how && id->id_macro)
*/
if (how ^ (id && id->id_macro != 0))
skip_block();
skip_block(0);
else
SkipRestOfLine();
}

View file

@ -5,8 +5,8 @@ E run preprocessor only
I expand include table with directory name following
M set identifier length
n don't generate register messages
p generate linenumbers and filename indications
while generating EM code
L don't generate linenumbers and filename indications
p trace
P in running the preprocessor do not output '# line' lines
R restricted C
T take path following as directory for storing temporary file(s)