diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-19 20:18:08 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-07-19 20:18:08 +0000 |
commit | 316744619de1b120399985e6b8f5ae475da07ed4 (patch) | |
tree | fb27fc4ef85133963af7127518d36e07b5e1d021 | |
parent | 91d4291d407bed3bc47e9dca4af564a601e1c0b2 (diff) | |
download | gcc-316744619de1b120399985e6b8f5ae475da07ed4.tar.gz |
* cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
of operators allowed in #if and having an _EQ variant. Add
CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
(cpp_token flags): Add NAMED_OP.
(enum node_type): Add T_OPERATOR.
(struct cpp_hashnode): Add code slot to value union.
* cpphash.h (spec_nodes): Remove n_defined.
* cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
(spell_token, can_paste, maybe_paste_with_next): Handle named operators.
(is_macro_disabled): Tweak error messages.
* cpplib.c (get_define_node): Disallow all named operators as
macro names. Tweak error messages.
(_cpp_init_stacks): Don't set up spec_nodes->n_defined.
* cppinit.c (builtin_array): Add entries for the named operators.
* cppexp.c (lex): Check for CPP_DEFINED token.
(priority table): Add entries for CPP_MIN and CPP_MAX.
(_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
testsuite:
* gcc.dg/cpp/directiv.c, gcc.dg/cpp/macsyntx.c,
gcc.dg/cpp/undef1.c: Tweak error regexps.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35137 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 79 | ||||
-rw-r--r-- | gcc/cppexp.c | 26 | ||||
-rw-r--r-- | gcc/cpphash.h | 1 | ||||
-rw-r--r-- | gcc/cppinit.c | 45 | ||||
-rw-r--r-- | gcc/cpplex.c | 47 | ||||
-rw-r--r-- | gcc/cpplib.c | 44 | ||||
-rw-r--r-- | gcc/cpplib.h | 12 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 137 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/directiv.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/macsyntx.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/undef1.c | 2 |
11 files changed, 247 insertions, 158 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6904f2b321f..54c2514c86e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,28 @@ +2000-07-19 Zack Weinberg <zack@wolery.cumb.org> + + Implement C++ named operators. + + * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block + of operators allowed in #if and having an _EQ variant. Add + CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED. + (cpp_token flags): Add NAMED_OP. + (enum node_type): Add T_OPERATOR. + (struct cpp_hashnode): Add code slot to value union. + * cpphash.h (spec_nodes): Remove n_defined. + + * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types. + (spell_token, can_paste, maybe_paste_with_next): Handle named operators. + (is_macro_disabled): Tweak error messages. + + * cpplib.c (get_define_node): Disallow all named operators as + macro names. Tweak error messages. + (_cpp_init_stacks): Don't set up spec_nodes->n_defined. + + * cppinit.c (builtin_array): Add entries for the named operators. + * cppexp.c (lex): Check for CPP_DEFINED token. + (priority table): Add entries for CPP_MIN and CPP_MAX. + (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX. + 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk> * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is @@ -24,7 +49,7 @@ Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 2000-07-18 Zack Weinberg <zack@wolery.cumb.org> * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry - macros, not five. + macros, not five. * cpphash.h (TOKEN_NAME): New macro. (_cpp_spell_operator): Deleted. @@ -38,7 +63,7 @@ Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org> Use TOKEN_NAME and/or TOKEN_SPELL, do not reference token_spellings directly. * cpplib.c: Use TOKEN_SPELL. - + * cpplex.c (_cpp_push_token): If the token being pushed back is the previous token in this context, just subtract one from context->posn. @@ -62,20 +87,20 @@ Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com> - * diagnostic.h (report_diagnostic): Change prototype. - - * diagnostic.c (output_do_verbatim, diagnostic_for_asm, - diagnostic_for_decl): Change prototype. - (error_with_decl, warning_with_decl, pedwarn_with_decl, warning, - error, warning, error_with_file_and_line, - warning_with_file_and_line, pedwarn_with_file_and_line, fatal): - Adjust call to report_diagnostic, diagnostic_for_decl. - (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm. - (output_verbatim, verbatim): Adjust call to output_do_verbatim. - - * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End - varaible argument list. - + * diagnostic.h (report_diagnostic): Change prototype. + + * diagnostic.c (output_do_verbatim, diagnostic_for_asm, + diagnostic_for_decl): Change prototype. + (error_with_decl, warning_with_decl, pedwarn_with_decl, warning, + error, warning, error_with_file_and_line, + warning_with_file_and_line, pedwarn_with_file_and_line, fatal): + Adjust call to report_diagnostic, diagnostic_for_decl. + (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm. + (output_verbatim, verbatim): Adjust call to output_do_verbatim. + + * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End + varaible argument list. + 2000-07-17 Zack Weinberg <zack@wolery.cumb.org> * cpphash.c: Don't include hashtab.h. Most macro-handling code @@ -87,7 +112,7 @@ Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org> Vlad's expandable hash table. (cpp_lookup): Use new functions. (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new - implementation. + implementation. * cppmacro.c: New file. * cppinit.c (dump_macros_helper): New. (cpp_finish): Iterate over the identifier table directly. @@ -112,7 +137,7 @@ Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 2000-07-17 Geoffrey Keating <geoffk@cygnus.com> * configure: Regenerate. - + * extend.texi (Extended Asm): Mention that a memory clobber does not count as a side-effect. @@ -156,7 +181,7 @@ Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz> 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com> - * loop.c (check_dbra_loop) : Return if more than one condition is + * loop.c (check_dbra_loop) : Return if more than one condition is present to control the loop. Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com> @@ -284,7 +309,7 @@ Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org> 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com> * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice, - v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. + v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. (v_message_with_decl): Rename to ... (format_with_decl): ... this. Tweak (diagnostic_for_decl): New function. @@ -292,14 +317,14 @@ Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org> (announce_function): Use verbatim. (default_print_error_function): Likewise. (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new - infratructure. + infratructure. 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * mips.c (function_arg_pass_by_reference): Don't do automatic aggregate initialization. (machine_dependent_reorg): Initialize variable `mode'. - + * mips.md (absdi2): Change variable `regno1' to unsigned int. (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid conflicts with sys/param.h macro of the same name. @@ -337,7 +362,7 @@ Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com> 2000-07-14 Jason Merrill <jason@redhat.com> - * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA + * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA register in the stack and later in another register, use the new register. @@ -358,7 +383,7 @@ Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com> * .cvsignore: Add generated YACC files. * objc/.cvsignore: New file. - + 2000-07-14 Neil Booth <NeilB@earthling.net> * cpplex.c (adjust_column): New funcion. @@ -421,14 +446,14 @@ Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com> error_with_file_and_line, warning_with_file_and_line, sorry, error_for_asm, warning_for_asm, fatal): Reimplement. (finish_diagnostic): Clear diagnostic info as well. - + 2000-07-13 Neil Booth <NeilB@earthling.net> * c-common.h (flag_digraphs): New. * c-decl.c (c_decode_option): Set flag_digraphs as appropriate. * c-lex.c (yylex): Use flag_digraphs to decide whether to honour digraphs. - + 2000-07-13 Zack Weinberg <zack@wolery.cumb.org> * gcc.c (do_spec_1): Add new %B operator. @@ -446,7 +471,7 @@ Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com> named specs. (C and assembly specs): Use the new named specs, as appropriate. - * objc/lang-specs.h: Use the new named specs. + * objc/lang-specs.h: Use the new named specs. Remove unnecessary braces. 2000-07-12 Zack Weinberg <zack@wolery.cumb.org> diff --git a/gcc/cppexp.c b/gcc/cppexp.c index deb5ffb2d49..e80f8e882e3 100644 --- a/gcc/cppexp.c +++ b/gcc/cppexp.c @@ -419,10 +419,10 @@ lex (pfile, skip_evaluation) else SYNTAX_ERROR2 ("invalid character '\\%03o' in #if", tok->val.aux); - case CPP_NAME: - if (tok->val.node == pfile->spec_nodes->n_defined) - return parse_defined (pfile); + case CPP_DEFINED: + return parse_defined (pfile); + case CPP_NAME: op.op = CPP_INT; op.unsignedp = 0; op.value = 0; @@ -648,12 +648,13 @@ be handled with operator-specific code. */ #define OR_PRIO (8 << PRIO_SHIFT) #define XOR_PRIO (9 << PRIO_SHIFT) #define AND_PRIO (10 << PRIO_SHIFT) -#define EQUAL_PRIO (11 << PRIO_SHIFT) -#define LESS_PRIO (12 << PRIO_SHIFT) -#define SHIFT_PRIO (13 << PRIO_SHIFT) -#define PLUS_PRIO (14 << PRIO_SHIFT) -#define MUL_PRIO (15 << PRIO_SHIFT) -#define UNARY_PRIO ((16 << PRIO_SHIFT) | RIGHT_ASSOC | NO_L_OPERAND) +#define MINMAX_PRIO (11 << PRIO_SHIFT) +#define EQUAL_PRIO (12 << PRIO_SHIFT) +#define LESS_PRIO (13 << PRIO_SHIFT) +#define SHIFT_PRIO (14 << PRIO_SHIFT) +#define PLUS_PRIO (15 << PRIO_SHIFT) +#define MUL_PRIO (16 << PRIO_SHIFT) +#define UNARY_PRIO ((17 << PRIO_SHIFT) | RIGHT_ASSOC | NO_L_OPERAND) /* Operator to priority map. Must be in the same order as the first N entries of enum cpp_ttype. */ @@ -674,6 +675,8 @@ op_to_prio[] = /* XOR */ XOR_PRIO, /* RSHIFT */ SHIFT_PRIO, /* LSHIFT */ SHIFT_PRIO, + /* MIN */ MINMAX_PRIO, /* C++ specific */ + /* MAX */ MINMAX_PRIO, /* extensions */ /* COMPL */ UNARY_PRIO, /* AND_AND */ ANDAND_PRIO, @@ -700,6 +703,9 @@ op_to_prio[] = #define BITWISE(OP) \ top->value = v1 OP v2; \ top->unsignedp = unsigned1 | unsigned2; +#define MINMAX(OP) \ + top->value = (v1 OP v2) ? v1 : v2; \ + top->unsignedp = unsigned1 | unsigned2; #define UNARY(OP) \ top->value = OP v2; \ top->unsignedp = unsigned2; \ @@ -831,6 +837,8 @@ _cpp_parse_expr (pfile) case CPP_OR: BITWISE(|); break; case CPP_LSHIFT: SHIFT(left_shift, right_shift); break; case CPP_RSHIFT: SHIFT(right_shift, left_shift); break; + case CPP_MIN: MINMAX(<); break; + case CPP_MAX: MINMAX(>); break; case CPP_PLUS: if (!(top->flags & HAVE_VALUE)) diff --git a/gcc/cpphash.h b/gcc/cpphash.h index 51f7787e454..c6c3f0a0b65 100644 --- a/gcc/cpphash.h +++ b/gcc/cpphash.h @@ -124,7 +124,6 @@ struct include_file struct spec_nodes { cpp_hashnode *n_L; /* L"str" */ - cpp_hashnode *n_defined; /* #if defined */ cpp_hashnode *n__STRICT_ANSI__; /* STDC_0_IN_SYSTEM_HEADERS */ cpp_hashnode *n__CHAR_UNSIGNED__; /* plain char is unsigned */ cpp_hashnode *n__VA_ARGS__; /* C99 vararg macros */ diff --git a/gcc/cppinit.c b/gcc/cppinit.c index a58f459b8ba..5f5c6201423 100644 --- a/gcc/cppinit.c +++ b/gcc/cppinit.c @@ -491,26 +491,33 @@ cpp_cleanup (pfile) /* This structure defines one built-in macro. A node of type TYPE will be entered in the macro hash table under the name NAME, with value - VALUE (if any). Two values are not compile time constants, so we tag + VALUE (if any). If TYPE is T_OPERATOR, the CODE field is used instead. + + Two values are not compile time constants, so we tag them in the FLAGS field instead: VERS value is the global version_string, quoted ULP value is the global user_label_prefix + + Also, macros with CPLUS set in the flags field are entered only for C++. */ struct builtin { const U_CHAR *name; const char *value; - unsigned short type; + unsigned char code; + unsigned char type; unsigned short flags; unsigned int len; }; -#define VERS 0x01 -#define ULP 0x02 - -#define B(n, t) { U n, 0, t, 0, sizeof n - 1 } -#define C(n, v) { U n, v, T_MACRO, 0, sizeof n - 1 } -#define X(n, f) { U n, 0, T_MACRO, f, sizeof n - 1 } +#define VERS 0x01 +#define ULP 0x02 +#define CPLUS 0x04 + +#define B(n, t) { U n, 0, 0, t, 0, sizeof n - 1 } +#define C(n, v) { U n, v, 0, T_MACRO, 0, sizeof n - 1 } +#define X(n, f) { U n, 0, 0, T_MACRO, f, sizeof n - 1 } +#define O(n, c, f) { U n, 0, c, T_OPERATOR, f, sizeof n - 1 } static const struct builtin builtin_array[] = { B("__TIME__", T_TIME), @@ -534,6 +541,23 @@ static const struct builtin builtin_array[] = #ifndef NO_BUILTIN_WCHAR_TYPE C("__WCHAR_TYPE__", WCHAR_TYPE), #endif + + /* Named operators known to the preprocessor. These cannot be #defined + and always have their stated meaning. They are treated like normal + string tokens except for the type code and the meaning. Most of them + are only for C++ (but see iso646.h). */ + O("defined", CPP_DEFINED, 0), + O("and", CPP_AND_AND, CPLUS), + O("and_eq", CPP_AND_EQ, CPLUS), + O("bitand", CPP_AND, CPLUS), + O("bitor", CPP_OR, CPLUS), + O("compl", CPP_COMPL, CPLUS), + O("not", CPP_NOT, CPLUS), + O("not_eq", CPP_NOT_EQ, CPLUS), + O("or", CPP_OR_OR, CPLUS), + O("or_eq", CPP_OR_EQ, CPLUS), + O("xor", CPP_XOR, CPLUS), + O("xor_eq", CPP_XOR_EQ, CPLUS), }; #undef B #undef C @@ -550,6 +574,9 @@ initialize_builtins (pfile) const struct builtin *b; for(b = builtin_array; b < builtin_array_end; b++) { + if (b->flags & CPLUS && ! CPP_OPTION (pfile, cplusplus)) + continue; + if (b->type == T_MACRO) { const char *val; @@ -578,6 +605,8 @@ initialize_builtins (pfile) { cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len); hp->type = b->type; + if (b->type == T_OPERATOR) + hp->value.code = b->code; } } } diff --git a/gcc/cpplex.c b/gcc/cpplex.c index d0d76f9feeb..9c7a03c3e06 100644 --- a/gcc/cpplex.c +++ b/gcc/cpplex.c @@ -1460,6 +1460,13 @@ lex_line (pfile, list) list->directive = _cpp_check_directive (pfile, cur_token, !(list->tokens[0].flags & PREV_WHITE)); + /* Convert named operators to their proper types. */ + if (cur_token->val.node->type == T_OPERATOR) + { + cur_token->flags |= NAMED_OP; + cur_token->type = cur_token->val.node->value.code; + } + cur_token++; break; @@ -1860,8 +1867,8 @@ lex_line (pfile, list) && cur_token > first + 1 && !CPP_OPTION (pfile, lang_asm)) { if (first[1].type == CPP_NAME) - cpp_error (pfile, "invalid preprocessing directive #%.*s", - (int) first[1].val.node->length, first[1].val.node->name); + cpp_error (pfile, "invalid preprocessing directive #%s", + first[1].val.node->name); else cpp_error (pfile, "invalid preprocessing directive"); } @@ -1954,6 +1961,8 @@ spell_token (pfile, token, buffer) if (token->flags & DIGRAPH) spelling = digraph_spellings[token->type - CPP_FIRST_DIGRAPH]; + else if (token->flags & NAMED_OP) + goto spell_ident; else spelling = TOKEN_NAME (token); @@ -1963,6 +1972,7 @@ spell_token (pfile, token, buffer) break; case SPELL_IDENT: + spell_ident: memcpy (buffer, token->val.node->name, token->val.node->length); buffer += token->val.node->length; break; @@ -2245,8 +2255,8 @@ is_macro_disabled (pfile, expansion, token) _cpp_push_token (pfile, next); if (CPP_WTRADITIONAL (pfile)) cpp_warning (pfile, - "function macro %.*s must be used with arguments in traditional C", - (int) token->val.node->length, token->val.node->name); + "function macro %s must be used with arguments in traditional C", + token->val.node->name); return 1; } } @@ -2379,8 +2389,7 @@ parse_args (pfile, hp, args) if (token->type == CPP_EOF) { - cpp_error (pfile, "unterminated invocation of macro \"%.*s\"", - hp->length, hp->name); + cpp_error(pfile, "unterminated argument list for macro \"%s\"", hp->name); return 1; } else if (argc < macro->paramc) @@ -2401,9 +2410,7 @@ parse_args (pfile, hp, args) } else { - cpp_error (pfile, - "insufficient arguments in invocation of macro \"%.*s\"", - hp->length, hp->name); + cpp_error (pfile, "not enough arguments for macro \"%s\"", hp->name); return 1; } } @@ -2411,9 +2418,7 @@ parse_args (pfile, hp, args) else if (argc > macro->paramc && !(macro->paramc == 0 && argc == 1 && empty_argument (args, 0))) { - cpp_error (pfile, - "too many arguments in invocation of macro \"%.*s\"", - hp->length, hp->name); + cpp_error (pfile, "too many arguments for macro \"%s\"", hp->name); return 1; } @@ -2583,6 +2588,12 @@ can_paste (pfile, token1, token2, digraph) enum cpp_ttype a = token1->type, b = token2->type; int cxx = CPP_OPTION (pfile, cplusplus); + /* Treat named operators as if they were ordinary NAMEs. */ + if (token1->flags & NAMED_OP) + a = CPP_NAME; + if (token2->flags & NAMED_OP) + b = CPP_NAME; + if (a <= CPP_LAST_EQ && b == CPP_EQ) return a + (CPP_EQ_EQ - CPP_EQ); @@ -2756,6 +2767,12 @@ maybe_paste_with_next (pfile, token) pasted->type = type; pasted->flags = digraph ? DIGRAPH : 0; + + if (type == CPP_NAME && pasted->val.node->type == T_OPERATOR) + { + pasted->type = pasted->val.node->value.code; + pasted->flags |= NAMED_OP; + } } /* The pasted token gets the whitespace flags and position of the @@ -3101,11 +3118,11 @@ _cpp_get_token (pfile) token = maybe_paste_with_next (pfile, token); /* If it isn't a macro, return it now. */ - if (token->type != CPP_NAME - || token->val.node->type == T_VOID) + if (token->type != CPP_NAME || token->val.node->type == T_VOID) return token; - /* Is macro expansion disabled in general? */ + /* Is macro expansion disabled in general, or are we in the + middle of a token paste? */ if (pfile->no_expand_level == pfile->cur_context || pfile->paste_level) return token; diff --git a/gcc/cpplib.c b/gcc/cpplib.c index 520821ab8d9..f39ff0e89d3 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -236,39 +236,42 @@ static cpp_hashnode * get_define_node (pfile) cpp_reader *pfile; { - cpp_hashnode *node; const cpp_token *token; /* Skip any -C comments. */ while ((token = _cpp_get_token (pfile))->type == CPP_COMMENT) ; + /* The token immediately after #define must be an identifier. That + identifier is not allowed to be "defined". See predefined macro + names (6.10.8.4). In C++, it is not allowed to be any of the + <iso646.h> macro names (which are keywords in C++) either. */ + if (token->type != CPP_NAME) { - cpp_error_with_line (pfile, token->line, token->col, + if (token->type == CPP_DEFINED) + cpp_error_with_line (pfile, token->line, token->col, + "\"defined\" cannot be used as a macro name"); + else if (token->flags & NAMED_OP) + cpp_error_with_line (pfile, token->line, token->col, + "\"%s\" cannot be used as a macro name in C++", + token->val.node->name); + else + cpp_error_with_line (pfile, token->line, token->col, "macro names must be identifiers"); return 0; } - /* That identifier is not allowed to be "defined". See predefined - macro names (6.10.8.4). */ - node = token->val.node; - - if (node == pfile->spec_nodes->n_defined) - { - cpp_error_with_line (pfile, pfile->token_list.line, token->col, - "\"defined\" is not a legal macro name"); - return 0; - } - /* Check for poisoned identifiers now. */ - if (node->type == T_POISON) + if (token->val.node->type == T_POISON) { - cpp_error (pfile, "attempt to use poisoned \"%s\"", node->name); + cpp_error_with_line (pfile, token->line, token->col, + "attempt to use poisoned \"%s\"", + token->val.node->name); return 0; } - return node; + return token->val.node; } /* Process a #define command. */ @@ -876,8 +879,8 @@ do_pragma_dependency (pfile) _cpp_dump_list (pfile, &pfile->token_list, msg, 0); limit = pfile->limit; pfile->limit = text; + /* There must be something non-whitespace after. */ while (*text == ' ') - /* There must be something non-whitespace after. */ text++; cpp_warning (pfile, "%.*s", (int)(limit - text), text); } @@ -915,8 +918,7 @@ detect_if_not_defined (pfile) return 0; token++; - if (token->type != CPP_NAME - || token->val.node != pfile->spec_nodes->n_defined) + if (token->type != CPP_DEFINED) return 0; token++; @@ -1338,8 +1340,7 @@ do_assert (pfile) return; err: - cpp_warning (pfile, "\"%.*s\" re-asserted", - node->length - 1, node->name + 1); + cpp_warning (pfile, "\"%s\" re-asserted", node->name + 1); FREE_ANSWER (new_answer); } @@ -1535,7 +1536,6 @@ _cpp_init_stacks (pfile) /* Perhaps not the ideal place to put this. */ pfile->spec_nodes = s = xnew (struct spec_nodes); s->n_L = cpp_lookup (pfile, DSC("L")); - s->n_defined = cpp_lookup (pfile, DSC("defined")); s->n__STRICT_ANSI__ = cpp_lookup (pfile, DSC("__STRICT_ANSI__")); s->n__CHAR_UNSIGNED__ = cpp_lookup (pfile, DSC("__CHAR_UNSIGNED__")); s->n__VA_ARGS__ = cpp_lookup (pfile, DSC("__VA_ARGS__")); diff --git a/gcc/cpplib.h b/gcc/cpplib.h index b8da90aa61e..4cec348811d 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -64,6 +64,8 @@ typedef struct cpp_hashnode cpp_hashnode; OP(CPP_XOR, "^") \ OP(CPP_RSHIFT, ">>") \ OP(CPP_LSHIFT, "<<") \ + OP(CPP_MIN, "<?") /* extension */ \ + OP(CPP_MAX, ">?") \ \ OP(CPP_COMPL, "~") \ OP(CPP_AND_AND, "&&") /* logical */ \ @@ -88,6 +90,8 @@ typedef struct cpp_hashnode cpp_hashnode; OP(CPP_XOR_EQ, "^=") \ OP(CPP_RSHIFT_EQ, ">>=") \ OP(CPP_LSHIFT_EQ, "<<=") \ + OP(CPP_MIN_EQ, "<?=") /* extension */ \ + OP(CPP_MAX_EQ, ">?=") \ /* Digraphs together, beginning with CPP_FIRST_DIGRAPH. */ \ OP(CPP_HASH, "#") /* digraphs */ \ OP(CPP_PASTE, "##") \ @@ -106,8 +110,7 @@ typedef struct cpp_hashnode cpp_hashnode; OP(CPP_SCOPE, "::") \ OP(CPP_DEREF_STAR, "->*") \ OP(CPP_DOT_STAR, ".*") \ - OP(CPP_MIN, "<?") /* extension */ \ - OP(CPP_MAX, ">?") \ + OP(CPP_DEFINED, "defined") /* #if */ \ \ TK(CPP_NAME, SPELL_IDENT) /* word */ \ TK(CPP_INT, SPELL_STRING) /* 23 */ \ @@ -147,10 +150,11 @@ struct cpp_string /* Flags for the cpp_token structure. */ #define PREV_WHITE (1 << 0) /* If whitespace before this token. */ #define BOL (1 << 1) /* Beginning of logical line. */ -#define DIGRAPH (1 << 2) /* If it was a digraph. */ +#define DIGRAPH (1 << 2) /* If it was a digraph. */ #define STRINGIFY_ARG (1 << 3) /* If macro argument to be stringified. */ #define PASTE_LEFT (1 << 4) /* If on LHS of a ## operator. */ #define PASTED (1 << 5) /* The result of a ## operator. */ +#define NAMED_OP (1 << 6) /* C++ named operators, also defined */ /* A preprocessing token. This has been carefully packed and should occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */ @@ -603,6 +607,7 @@ enum node_type T_INCLUDE_LEVEL, /* `__INCLUDE_LEVEL__' */ T_TIME, /* `__TIME__' */ T_STDC, /* `__STDC__' */ + T_OPERATOR, /* operator with a name; val.code is token type */ T_POISON, /* poisoned identifier */ T_MACRO, /* a macro, either object-like or function-like */ T_ASSERTION /* predicate for #assert */ @@ -624,6 +629,7 @@ struct cpp_hashnode { const cpp_toklist *expansion; /* a macro's replacement list. */ struct answer *answers; /* answers to an assertion. */ + enum cpp_ttype code; /* code for a named operator. */ } value; union tree_node *fe_value; /* front end value */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2ed6ef11b4c..d6b01a6abb7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2000-07-19 Zack Weinberg <zack@wolery.cumb.org> + + * gcc.dg/cpp/directiv.c, gcc.dg/cpp/macsyntx.c, + gcc.dg/cpp/undef1.c: Tweak error regexps. + 2000-07-18 Zack Weinberg <zack@wolery.cumb.org> * cpplex.c (_cpp_push_token): If the token being pushed back @@ -431,12 +436,12 @@ Thu Jun 29 09:42:40 2000 Jeffrey A Law (law@cygnus.com) * lib/g++.exp (g++_include_flags): Tweak. 2000-06-27 H.J. Lu <hjl@gnu.org> - Loren J. Rittle <ljrittle@acm.org> + Loren J. Rittle <ljrittle@acm.org> + + * lib/g++.exp (g++_include_flags): Override libgloss.exp + version with one that knows about the new gcc tree structure. + (g++_link_flags): Same. - * lib/g++.exp (g++_include_flags): Override libgloss.exp - version with one that knows about the new gcc tree structure. - (g++_link_flags): Same. - 2000-06-26 Zack Weinberg <zack@wolery.cumb.org> * gcc.dg/20000419-1.c, gcc.dg/cpp-mi.c, gcc.dg/cpp-tradwarn1.c, @@ -444,7 +449,7 @@ Thu Jun 29 09:42:40 2000 Jeffrey A Law (law@cygnus.com) case we are cross-compiling. * g++.old-deja/Makefile.in, g++.old-deja/configure.in, - g++.old-deja/g++.niklas/Makefile.in, + g++.old-deja/g++.niklas/Makefile.in, g++.old-deja/g++.niklas/configure.in, g++.old-deja/g++.other/Makefile.in, g++.old-deja/g++.other/configure.in, @@ -479,7 +484,7 @@ Thu Jun 29 09:42:40 2000 Jeffrey A Law (law@cygnus.com) 2000-06-25 Zack Weinberg <zack@wolery.cumb.org> * gcc.dg/20000625-1.c, gcc.dg/20000625-2.c, gcc.dg/cpp-mi3.c: - New tests. + New tests. * gcc.dg/cpp-mi3.def: New file. * gcc.dg/cpp-as1.c: Also test that macro expansion does not occur @@ -580,7 +585,7 @@ Fri Jun 9 21:54:28 2000 Clinton Popetz <cpopetz@cygnus.com> 2000-06-03 David Billinghurst <David Billinghurst@riotinto.com.au> - * g77.f-torture/compile/20000601-1.f: New test. + * g77.f-torture/compile/20000601-1.f: New test. 2000-06-03 Richard Henderson <rth@cygnus.com> @@ -623,7 +628,7 @@ Fri Jun 9 21:54:28 2000 Clinton Popetz <cpopetz@cygnus.com> * g++.old-deja/g++.law/refs4.C: Likewise. * g++.old-deja/g++.law/temps4.C: Likewise. * g++.old-deja/g++.brendan/complex1.C: Don't assume argc is 1. - * gcc.c-torture/execute/20000112-1.c: Include string.h. + * gcc.c-torture/execute/20000112-1.c: Include string.h. 2000-05-27 Zack Weinberg <zack@wolery.cumb.org> @@ -635,7 +640,7 @@ Fri Jun 9 21:54:28 2000 Clinton Popetz <cpopetz@cygnus.com> g++.mike/p9732b.C, g++.other/addrof1.C, g++.other/dyncast5.C, g++.other/init5.C, g++.other/init7.C, g++.other/union2.C, g++.pt/vbase1.C, g++.robertl/eb14.C, g++.robertl/eh990323-1.C, - g++.robertl/eh990323-2.C, g++.robertl/eh990323-3.C, + g++.robertl/eh990323-2.C, g++.robertl/eh990323-3.C, g++.robertl/eh990323-4.C, g++.robertl/eh990323-5.C, g++.robertl/ice990323-2.C: Prototype exit and/or abort. @@ -883,7 +888,7 @@ Wed Apr 12 10:25:08 2000 Jeffrey A Law (law@cygnus.com) * g++.old-deja/g++.abi/cxa_vec.C: New test. 2000-04-08 Neil Booth <NeilB@earthling.net> - + * gcc.dg/cpp-nullchar.c: Remove test as embedded nulls cause problems. @@ -892,7 +897,7 @@ Wed Apr 12 10:25:08 2000 Jeffrey A Law (law@cygnus.com) * gcc.dg/compare2.c: New test. 2000-04-08 Neil Booth <NeilB@earthling.net> - + * gcc.dg/cpp-nullchar.c: New test. 2000-04-07 Zack Weinberg <zack@wolery.cumb.org> @@ -913,7 +918,7 @@ Wed Apr 12 10:25:08 2000 Jeffrey A Law (law@cygnus.com) * cpp-ifparen.c, cpp-missingop.c, cpp-missingparen.c, cpp-shift.c, cpp-shortcircuit.c, cpp-unary.c: Add FSF - copyright. + copyright. Wed Apr 5 22:51:36 2000 Hans-Peter Nilsson <hp@axis.com> @@ -1060,7 +1065,7 @@ Fri Mar 10 01:15:19 2000 Hans-Peter Nilsson <hp@bitrange.com> 2000-03-06 Nathan Sidwell <nathan@codesourcery.com> - * g++.old-deja/g++.warn/impint2.C: New test. + * g++.old-deja/g++.warn/impint2.C: New test. Sun Mar 5 23:25:12 2000 Hans-Peter Nilsson <hp@bitrange.com> @@ -1202,7 +1207,7 @@ Fri Feb 11 12:35:40 2000 Jeffrey A Law (law@cygnus.com) * lib/g++.exp (g++init): Use g++, not xgcc, to invoke the C++ compiler. (tool_option_proc): Fix typo. - + 2000-01-24 Geoff Keating <geoffk@cygnus.com> * gcc.dg/special/ecos.exp (gcsec-1.c): Check the version @@ -1391,7 +1396,7 @@ Wed Dec 29 20:54:46 1999 Greg McGary <gkm@eng.ascend.com> 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk> * gcc.dg/991214-1.c: New test. - + Mon Dec 13 23:03:09 1999 Jeffrey A Law (law@cygnus.com) * gcc.c-torture/compile/991213-3.c: New test. @@ -1489,18 +1494,18 @@ Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk> 1999-11-05 Nick Clifton <nickc@cygnus.com> - * lib/target-supports.exp: New file: Provide procs to test for + * lib/target-supports.exp: New file: Provide procs to test for features supported by the target. (check_weak_available): Moved here from ecos.exp. (check_alias_available): New proc: Determine of the target toolchain supports the alias attribute. - + * gcc.dg/special/ecos.exp: Move check_weak_available to - target-supports.exp. + target-supports.exp. (alias-1.c): Only perform the test if the target supports - aliases. + aliases. (wkali-1.c): Only perform the test if the target supports - aliases. + aliases. * gcc.dg/990506-0.c: Expect error messages from cross targets as well as native targets. @@ -1847,7 +1852,7 @@ Sun Jul 25 21:41:37 1999 Jeffrey A Law (law@cygnus.com) 1999-06-29 Nick Clifton <nickc@cygnus.com> - * lib/file-format.exp: New file: Move definition of proc + * lib/file-format.exp: New file: Move definition of proc gcc_target_object_format to here from gcc.dg/special/ecos.exp. @@ -1856,7 +1861,7 @@ Sun Jul 25 21:41:37 1999 Jeffrey A Law (law@cygnus.com) * gcc.dg/special/ecos.exp: Remove definition of proc gcc_target_object_format. - + Mon Jun 28 08:20:51 1999 Jeffrey A Law (law@cygnus.com) * gcc.c-torture/execute/990628-1.c: New test. @@ -1921,7 +1926,7 @@ Thu May 27 02:18:51 1999 Joern Rennecke <amylaar@cygnus.com> 1999-05-25 Nick Clifton <nickc@cygnus.com> * gcc.c-torture/execute/bf-sign-2.c: Explicitly declare signed - bitfields as signed. + bitfields as signed. 1999-05-25 Craig Burley <craig@jcb-sc.com> @@ -2135,7 +2140,7 @@ Fri Mar 12 16:17:28 1999 Jim Wilson <wilson@cygnus.com> * gcc.c-torture/execute/bf-sign-2.c (struct X): Add u15 field. (main): Add check for u15. Conditionalize u31 check depending on whether ints are <32 bits or >=32 bits. - + 1999-03-08 Craig Burley <craig@jcb-sc.com> * g77.f-torture/execute/19981119-0.f: Improve testiness. @@ -2265,14 +2270,14 @@ Mon Feb 8 21:42:57 1999 Richard Henderson <rth@cygnus.com> * g++.dg/special/ecos.exp: New driver for new tests with special requirements - + * g++.dg/special/conpr-1.C: New test * g++.dg/special/conpr-2.C: New test * g++.dg/special/conpr-2a.C: New test * g++.dg/special/conpr-3.C: New test * g++.dg/special/conpr-3a.C: New test * g++.dg/special/conpr-3b.C: New test - + * lib/g++-dg.exp: New driver file, based on lib/gcc-dg.exp to allow g++ to use the dg driver @@ -2291,7 +2296,7 @@ Sat Feb 6 18:00:38 1999 Jeffrey A Law (law@cygnus.com) structure S. * gcc.c-torture/execute/memcheck/blkarg.x: New file: Expected - failure for all targets. + failure for all targets. * gcc.c-torture/execute/memcheck/driver.c (main): Use exit or abort to terminate program execution. @@ -2482,7 +2487,7 @@ Sun Oct 11 05:04:28 1998 Ken Raeburn <raeburn@cygnus.com> 1998-11-07 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> - * README: New file, general information about the testsuite and + * README: New file, general information about the testsuite and new description of the various C++ test subdirectories. * README.g++: Eliminate obsolete information, update and move most relevant stuff to README. @@ -2688,7 +2693,7 @@ Thu Oct 1 17:15:26 1998 Nick Clifton <nickc@cygnus.com> * gcc.c-torture/compile/981001-1.c: New test. * gcc.c-torture/execute/981001-1.c: New test. - + Thu Oct 1 19:05:20 1998 Jeffrey A Law (law@cygnus.com) * gcc.c-torture/compile/981001-2.c: New test. @@ -2733,7 +2738,7 @@ Thu Oct 1 19:05:20 1998 Jeffrey A Law (law@cygnus.com) * g++.old-deja/g++.other/static2.C: Invocation of static data member of type pointer-to-function denoted as non-static member. - * g++.old-deja/g++.other/typedef5.C: Add some more tests involving + * g++.old-deja/g++.other/typedef5.C: Add some more tests involving checks involving function types and aliases. 1998-09-12 Alexandre Oliva <oliva@dcc.unicamp.br> @@ -2839,7 +2844,7 @@ Fri Aug 21 03:14:04 1998 Jeffrey A Law (law@cygnus.com) 1998-08-19 Mark Mitchell <mark@markmitchell.com> * lib/old-dejagnu.exp (old-dejagnu): Remove sig6/sig11 handling - code. + code. 1998-08-09 Mark Mitchell <mark@markmitchell.com> @@ -2937,19 +2942,19 @@ Mon Jul 13 22:26:37 1998 Jeffrey A Law (law@cygnus.com) * g77.f-torture/execute/970816-3.f: New test from Craig. Fri Jul 10 23:43:33 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de> - + * g++.other/singleton.C: Return error value instead of taking SIGSEGV. -Fri Jul 10 10:02:03 1998 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> +Fri Jul 10 10:02:03 1998 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> * g++.other/singleton.C: New test. Warning is under dispute. Runtime crash is not. Thu Jul 9 23:07:45 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de> - * g++.ns/{alias2.C, alias5.C, koenig4.C, lookup3.C ns13.C, - ns14.C, ns15.C, template3.C, undef1.C, using4.C, using5.C, + * g++.ns/{alias2.C, alias5.C, koenig4.C, lookup3.C ns13.C, + ns14.C, ns15.C, template3.C, undef1.C, using4.C, using5.C, using6.C, using7.C}: New namespace tests. Thu Jul 9 22:44:49 1998 Alexandre Oliva <oliva@dcc.unicamp.br> @@ -3031,10 +3036,10 @@ Fri Jun 19 23:26:12 1998 Bruno Haible <haible@ilog.fr> * g++.old-deja/g++.other/warn01.c: Likewise. Fri Jun 19 14:06:36 1998 Robert Lipe <robertl@dgii.com> - + * gcc.dg/980414-1.c: Move comments outside of ASM to improve compatibility with assmblers with a different comment character. - Eliminate use of GAS-specific extensions. + Eliminate use of GAS-specific extensions. Fri Jun 19 02:05:14 1998 Jeffrey A Law (law@cygnus.com) @@ -3492,7 +3497,7 @@ Sun Feb 23 18:12:04 1997 Bob Manson <manson@charmed.cygnus.com> * lib/gcc.exp(gcc_init): Add args parameter (which will contain the name of the expect testcase file). - + * lib/g++.exp(g++_init): Ditto. Thu Feb 20 13:53:05 1997 Bob Manson <manson@charmed.cygnus.com> @@ -3536,14 +3541,14 @@ Tue Feb 11 12:57:11 1997 Bob Manson <manson@charmed.cygnus.com> Sat Feb 8 14:45:55 1997 Bob Manson <manson@charmed.cygnus.com> * g++.law/virtual1.exp: Don't use CXX_FLAGS. - + * lib/mike-g++.exp: Don't set the compiler to be tested here. * lib/g++.exp: Set it here instead. Also, allow use of the --tool_exec and --tool_opt options. Change CXX to GXX_UNDER_TEST. - + * g++.old-deja/old-deja.exp: Change CXX to GXX_UNDER_TEST. - + * lib/gcc.exp: Allow use of --tool_exec and --tool_opt. Fri Feb 7 12:55:45 1997 Bob Manson <manson@charmed.cygnus.com> @@ -3566,7 +3571,7 @@ Tue Feb 4 12:51:09 1997 Bob Manson <manson@charmed.cygnus.com> * lib/gcc.exp: Add gcc,stack_size target feature. - * lib/g++.exp(g++_target_compile): Add the include and link + * lib/g++.exp(g++_target_compile): Add the include and link paths here, not in two other places. And, it's $options, not options. @@ -3617,7 +3622,7 @@ Wed Jan 29 00:36:25 1997 Bob Manson <manson@charmed.cygnus.com> g++.*/*: Pass any additional flags used to compile to postbase; delete CXXFLAGS. - + gcc.c-torture/*: Remove calls to gcc_init and gcc_finish; this is now done by runtest.exp. Use gcc_target_compile instead of compile. @@ -3634,7 +3639,7 @@ Wed Jan 29 00:36:25 1997 Bob Manson <manson@charmed.cygnus.com> lib/mike-{gcc,g++}.exp: Ditto. lib/old-dejagnu.exp: Ditto. lib/plumhall.exp: Ditto. - + Wed Jan 8 14:43:07 1997 Jim Wilson <wilson@cygnus.com> * lib/plumhall.exp (ph_make): Use CFLAGS and ANSICFLAGS when linking. @@ -3983,7 +3988,7 @@ Tue Sep 19 17:26:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com> * lib/mike-g++.exp (postbase): If we've built a libg++.so, then pass the runtime shared library options for Solaris, OSF/1, and Irix5, and link with -lcurses to avoid unresolved references. - + Wed Sep 13 15:28:10 1995 Brendan Kehoe <brendan@lisa.cygnus.com> * lib/gcc.exp (gcc_init): Return if gcc_initialized is 1, so we @@ -4338,7 +4343,7 @@ Mon Jan 2 11:50:10 1995 Jeff Law (law@snake.cs.utah.edu) * g++.law/{enum8.C, enum9.C, friend5.C}: Likewise. * g++.law/{nest2.C, nest3.C, nest4.C, nest5.C}: Likewise. * g++.law/{nest6.C, next7.C, operators30.C}: Likewise. - * g++.law/{operators31.C, operators32.C, + * g++.law/{operators31.C, operators32.C, * g++.law/{operators33.C, operators34.C}: Likewise. * g++.law/{pic1.C, refs2.C}: Likewise. * g++.law/{refs3.C, refs4.C, static-mem3.C}: Likewise. @@ -4355,7 +4360,7 @@ Mon Jan 2 11:50:10 1995 Jeff Law (law@snake.cs.utah.edu) * g++.law/{nest3.exp, nest4.exp}: Likewise. * g++.law/{nest5.exp, nest6.exp, nest7.exp}: Likewise. * g++.law/{operators30.exp, operators31.exp}: Likewise. - * g++.law/{operators32.exp, operators33.exp}: Likewise. + * g++.law/{operators32.exp, operators33.exp}: Likewise. * g++.law/{operators34.exp}: Likewise. * g++.law/{pic1.exp, refs2.exp, refs3.exp refs4.exp}: Likewise. * g++.law/{static-mem3.exp, static-mem4.exp}: Likewise. @@ -4720,7 +4725,7 @@ Sun Aug 14 09:23:53 1994 Jeff Law (law@snake.cs.utah.edu) * gcc.c-torture/noncompile/noncompile.exp (940712-1 test): No longer expected to fail. - * gcc.c-torture/execute/strct-pack-3.c: Add missing argument to + * gcc.c-torture/execute/strct-pack-3.c: Add missing argument to "f" function call. * gcc.misc-tests/mg.exp: Call gcc_stat when finished. @@ -4779,29 +4784,29 @@ Sat May 21 10:39:38 1994 Bill Cox (bill@rtl.cygnus.com) Thu May 19 18:00:03 1994 Bill Cox (bill@rtl.cygnus.com) - * config/sim.exp, config/udi.exp, config/unix.exp, config/vx.exp, + * config/sim.exp, config/udi.exp, config/unix.exp, config/vx.exp, g++.brendan/alignof.exp, g++.brendan/arm3.exp, g++.brendan/code-gen5.exp, g++.brendan/crash29.exp, g++.brendan/crash5.exp, g++.brendan/cvt3.exp, g++.brendan/delete1.exp, g++.brendan/nest12.exp, g++.brendan/nest13.exp, g++.brendan/overload3.exp, g++.brendan/redecl1.exp, g++.brendan/visibility2.exp, g++.jason/cond.exp, g++.jason/hmc1.exp, g++.jason/report.exp, - g++.law/access1.exp, g++.law/access2.exp, g++.law/arg6.exp, - g++.law/arg7.exp, g++.law/arg8.exp, g++.law/arm1.exp, + g++.law/access1.exp, g++.law/access2.exp, g++.law/arg6.exp, + g++.law/arg7.exp, g++.law/arg8.exp, g++.law/arm1.exp, g++.law/arm10.exp, g++.law/arm4.exp, g++.law/arm5.exp, g++.law/ctors15.exp, g++.law/ctors19.exp, g++.law/cvt1.exp, - g++.law/cvt12.exp, g++.law/cvt13.exp, g++.law/cvt18.exp, - g++.law/cvt22.exp, g++.law/cvt3.exp, g++.law/cvt5.exp, - g++.law/cvt6.exp, g++.law/cvt8.exp, g++.law/dtors3.exp, + g++.law/cvt12.exp, g++.law/cvt13.exp, g++.law/cvt18.exp, + g++.law/cvt22.exp, g++.law/cvt3.exp, g++.law/cvt5.exp, + g++.law/cvt6.exp, g++.law/cvt8.exp, g++.law/dtors3.exp, g++.law/except1.exp, g++.law/except3.exp, g++.law/except4.exp, - g++.law/except5.exp, g++.law/except6.exp, g++.law/init5.exp, + g++.law/except5.exp, g++.law/except6.exp, g++.law/init5.exp, g++.law/init8.exp, g++.law/inline4.exp, g++.law/memoized1.exp, g++.law/missing1.exp, g++.law/operators14.exp, g++.law/operators18.exp, g++.law/operators9.exp, g++.law/scope2.exp, g++.law/temps2.exp, - g++.law/temps3.exp, g++.law/temps5.exp, g++.law/typeck2.exp, + g++.law/temps3.exp, g++.law/temps5.exp, g++.law/typeck2.exp, g++.mike/misc4.exp, g++.mike/misc6.exp, g++.niklas/t118.exp, g++.niklas/t128.exp, g++.niklas/t138.exp, g++.niklas/t139.exp, g++.niklas/t140.exp, g++.niklas/t141.exp, gcc.code_quality/code_quality.exp, - gcc.compile/compile.exp, gcc.dje/dje.exp, gcc.execute/execute.exp, + gcc.compile/compile.exp, gcc.dje/dje.exp, gcc.execute/execute.exp, gcc.failure/failure.exp, gcc.ieee/ieee.exp, gcc.noncompile/noncompile.exp, gcc.special/special.exp, gcc.unsorted/unsorted.exp, lib/c-torture.exp, lib/chill.exp, lib/g++.exp, lib/gcc.exp, lib/mike-g++.exp, lib/mike-gcc.exp, @@ -4919,7 +4924,7 @@ Sun Dec 19 21:45:34 1993 Jeffrey A. Law (law@snake.cs.utah.edu * g++.law: Add more tests derived from g++-bugs snapshots. - * g++.law/init11.{c,exp}: Delete test. Brendan sez it's + * g++.law/init11.{c,exp}: Delete test. Brendan sez it's equivalent to g++.law/init9. * lib/mike-gcc.exp (postbase): Delete the .o file after we've @@ -4937,7 +4942,7 @@ Fri Dec 17 10:18:16 1993 Jeffrey A. Law (law@snake.cs.utah.edu) Wed Dec 15 20:36:40 1993 Rob Savoye (rob@darkstar.cygnus.com) * lib/gcc.exp, lib/g++.exp: Use catch rather than exec to get the - version number. + version number. Sun Dec 12 21:10:04 1993 Jeffrey A. Law (law@snake.cs.utah.edu) @@ -5056,10 +5061,10 @@ Tue Sep 14 19:23:58 1993 Jeffrey Wheat (cassidy at deneb.cygnus.com) * chill.noncompile/noncompile.exp: rewrite, based on execute.exp * lib/chill.exp: major changes to diff proc and compile and link procs. added chill_fail and chill_pass wrappers to pass and - fail. added more comments, and handle error codes better. + fail. added more comments, and handle error codes better. Added a hack to capture stderr from exec, so noncompile tests can work. - + Sat Sep 11 15:30:10 1993 Jeffrey Wheat (cassidy@cygnus.com) * chill.execute/execute.exp: rewrite of testsuite driver @@ -5116,8 +5121,8 @@ Tue Jul 27 10:08:08 PDT 1993 Jeff Wheat (cassidy@cygnus.com) * Upgraded c-torture tests from 1.19 to 1.20 * new files: - * gcc.compile: 930609-1.c 930611-1.c 930618-1.c 930621-1.c - * gcc.compile: 930623-1.c 930623-2.c + * gcc.compile: 930609-1.c 930611-1.c 930618-1.c 930621-1.c + * gcc.compile: 930623-1.c 930623-2.c * gcc.noncompile: 930622-1.c 930622-2.c * gcc.failure: 920411-1.c 920627-2.c * gcc.ieee: 920518-1.c 920810-1.c 930529-1.c @@ -5142,7 +5147,7 @@ Tue Jul 13 18:38:56 PDT 1993 Jeff Wheat (cassidy@cygnus.com) Sat Jun 19 07:13:05 1993 Bill Cox (bill@rtl.cygnus.com) This should complete moving the CHILL test files. - * chill.noncompile(.cvsignore printf.grt + * chill.noncompile(.cvsignore printf.grt in-printf.grt chprintf.grt chprintf.ch): Added test-support files. (Makefile): Modified further. @@ -5250,7 +5255,7 @@ Mon Apr 12 15:15:37 1993 Mike Werner (mtw@deneb.cygnus.com) Changed several of the test result messages to be more descriptive. * config/unix-g++.exp: Proc g++_load now actually works and executes the tests passed to it and returns a usable return - value. + value. Sun Apr 11 17:22:37 1993 Rob Savoye (rob at darkstar.cygnus.com) diff --git a/gcc/testsuite/gcc.dg/cpp/directiv.c b/gcc/testsuite/gcc.dg/cpp/directiv.c index 8c27d0f76a7..718caa22174 100644 --- a/gcc/testsuite/gcc.dg/cpp/directiv.c +++ b/gcc/testsuite/gcc.dg/cpp/directiv.c @@ -28,7 +28,7 @@ EMPTY #define bar /* Check that directives always start a line, even if in middle of macro expansion. */ #define func(x) x -func (2 /* { dg-error "unterminated invocation" } */ +func (2 /* { dg-error "unterminated argument" } */ #define foobar /* { dg-error "may not be used inside" } */ /* For tidiness, I think the directive should still be processed @@ -43,5 +43,5 @@ func (2 /* { dg-error "unterminated invocation" } */ Note that the #if is still treated as a conditional, so there should be no errors about #endif without #if. */ -#if func ( /* { dg-error "unterminated invocation" } */ +#if func ( /* { dg-error "unterminated argument" } */ #endif diff --git a/gcc/testsuite/gcc.dg/cpp/macsyntx.c b/gcc/testsuite/gcc.dg/cpp/macsyntx.c index 81f39ae1f5e..74b9403fc2b 100644 --- a/gcc/testsuite/gcc.dg/cpp/macsyntx.c +++ b/gcc/testsuite/gcc.dg/cpp/macsyntx.c @@ -48,11 +48,11 @@ one() /* OK. */ one(ichi) /* OK. */ one(ichi\ , ni) /* { dg-error "too many" } */ -two(ichi) /* { dg-error "insufficient" } */ +two(ichi) /* { dg-error "not enough" } */ var0() /* OK. */ var0(ichi) /* OK. */ -var1() /* { dg-error "insufficient" } */ -var1(ichi) /* { dg-error "insufficient" } */ +var1() /* { dg-error "not enough" } */ +var1(ichi) /* { dg-error "not enough" } */ var1(ichi, ni) /* OK. */ /* This tests two deprecated oddities of GNU rest args - omitting a @@ -70,4 +70,4 @@ rest(ichi) /* { dg-warning "deprecated" } */ #define half_invocation do_nowt(2 #define do_nowt(x) x half_invocation ) /* OK. */ -do_nowt (half_invocation)) /* { dg-error "unterminated invocation" } */ +do_nowt (half_invocation)) /* { dg-error "unterminated argument" } */ diff --git a/gcc/testsuite/gcc.dg/cpp/undef1.c b/gcc/testsuite/gcc.dg/cpp/undef1.c index 995d679b0ec..68118cff60c 100644 --- a/gcc/testsuite/gcc.dg/cpp/undef1.c +++ b/gcc/testsuite/gcc.dg/cpp/undef1.c @@ -9,6 +9,6 @@ #define foo(bar) bar -foo( blah /* { dg-error "unterminated invocation" } */ +foo( blah /* { dg-error "unterminated argument" } */ #undef foo /* { dg-error "may not be used inside" "foo(#undef foo)" } */ blah ) |