| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2007-09-05 Paolo Carlini <pcarlini@suse.de>
PR c++/29731 (again)
* parser.c (cp_parser_primary_expression): Return error_mark_node
when a statement-expression is found in a template-argument list.
/testsuite
2007-09-05 Paolo Carlini <pcarlini@suse.de>
PR c++/29731
* g++.dg/parse/template24.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128124 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* typeck.c (build_unary_op) <case PREINCREMENT_EXPR>: Return
error_mark_node right away if build_expr_type_conversion
returned it.
* g++.dg/parse/crash36.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127760 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* error.c (resolve_virtual_fun_from_obj_type_ref): Handle
TARGET_VTABLE_USES_DESCRIPTORS targets properly.
* g++.dg/parse/crash37.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127747 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
PR c++/32190
* g++.dg/parse/error31.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127597 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/30850
PR c++/30851
* parser.c (cp_parser_asm_definition): Detect and discard asm
statements with invalid inputs or outputs.
(cp_parser_asm_operand_list): Return error mark node if any
of the operands are invalid. Adjust documentation.
PR c++/30849
* g++.dg/parse/asm1.C: New test.
PR c++/30850
* g++.dg/parse/asm2.C: Likewise.
PR c++/30851
* g++.dg/parse/asm3.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127167 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* error.c (dump_expr) <case AGGR_INIT_EXPR>: Pass true as last
argument to dump_aggr_init_expr_args instead of false.
* g++.dg/parse/error30.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126582 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/31745
* parser.c (cp_parser_skip_to_closing_brace): Return true if the next
token is a closing brace, false if there are no tokens left.
(cp_parser_namespace_alias_definition): Only consume the next token if
it is a closing brace.
* parser.c (cp_parser_class_specifier): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125070 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124589 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* typeck.c (build_modify_expr): For COND_EXPR on LHS, if RHS has void
type issue error and return early.
* g++.dg/parse/cond3.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123456 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
PR c++/29077
* decl.c (grokfndecl): Properly setup decl if it is a constructor or a
destructor.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123312 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Do
not consume tokens when failing.
PR c++/30863
* g++.dg/template/error24.C: New test.
* g++.dg/parse/tmpl-outside1.C: Tweak error markers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123152 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* g++.old-deja/g++.brendan/warnings2.C: Don't use -pedantic.
* g++.dg/other/static1.C: Remove stray semicolon.
* g++.dg/other/init1.C: Likewise.
* g++.dg/rtti/dyncast1.C: Likewise.
* g++.dg/tree-ssa/pr17153.C: Likewise.
* g++.dg/lookup/disamb1.C: Likewise.
* g++.dg/lookup/scoped2.C: Likewise.
* g++.dg/lookup/friend7.C: Likewise.
* g++.dg/parse/parse4.C: Likewise.
* g++.dg/parse/parse5.C: Likewise.
* g++.dg/expr/pr29066.C: Likewise.
* g++.dg/expr/cast4.C: Likewise.
* g++.dg/tc1/dr193.C: Likewise.
* g++.dg/tc1/dr213.C: Likewise.
* g++.dg/abi/dcast1.C: Likewise.
* g++.dg/abi/covariant2.C: Likewise.
* g++.dg/inherit/covariant11.C: Likewise.
* g++.dg/inherit/covariant9.C: Likewise.
* g++.dg/inherit/covariant10.C: Likewise.
* g++.dg/init/static3.C: Likewise.
* g++.dg/init/init-ref3.C: Likewise.
* g++.dg/init/ref10.C: Likewise.
* g++.dg/template/meminit2.C: Likewise.
* g++.dg/template/using9.C: Likewise.
* g++.dg/template/friend9.C: Likewise.
* g++.dg/template/ref1.C: Likewise.
* g++.old-deja/g++.warn/inline.C: Likewise.
* g++.old-deja/g++.robertl/eb91.C: Likewise.
* g++.old-deja/g++.robertl/eb46.C: Likewise.
* g++.old-deja/g++.robertl/eb34.C: Likewise.
* g++.old-deja/g++.robertl/eb43.C: Likewise.
* g++.old-deja/g++.robertl/eb26.C: Likewise.
* g++.old-deja/g++.robertl/eb116.C: Likewise.
* g++.old-deja/g++.brendan/copy5.C: Likewise.
* g++.old-deja/g++.brendan/overload8.C: Likewise.
* g++.old-deja/g++.brendan/overload11.C: Likewise.
* g++.old-deja/g++.brendan/copy7.C: Likewise.
* g++.old-deja/g++.brendan/crash38.C: Likewise.
* g++.old-deja/g++.brendan/template11.C: Likewise.
* g++.old-deja/g++.brendan/err-msg3.C: Likewise.
* g++.old-deja/g++.brendan/crash50.C: Likewise.
* g++.old-deja/g++.brendan/crash16.C: Likewise.
* g++.old-deja/g++.jason/pmem2.C: Likewise.
* g++.old-deja/g++.jason/parse9.C: Likewise.
* g++.old-deja/g++.jason/byval2.C: Likewise.
* g++.old-deja/g++.jason/overload8.C: Likewise.
* g++.old-deja/g++.jason/pmf8.C: Likewise.
* g++.old-deja/g++.jason/template33.C: Likewise.
* g++.old-deja/g++.jason/return3.C: Likewise.
* g++.old-deja/g++.jason/scoping2.C: Likewise.
* g++.old-deja/g++.jason/virtual.C: Likewise.
* g++.old-deja/g++.jason/opeq3.C: Likewise.
* g++.old-deja/g++.jason/template27.C: Likewise.
* g++.old-deja/g++.jason/synth6.C: Likewise.
* g++.old-deja/g++.jason/ref8.C: Likewise.
* g++.old-deja/g++.jason/offset1.C: Likewise.
* g++.old-deja/g++.other/static20.C: Likewise.
* g++.old-deja/g++.other/array1.C: Likewise.
* g++.old-deja/g++.other/new3.C: Likewise.
* g++.old-deja/g++.other/array2.C: Likewise.
* g++.old-deja/g++.other/overload9.C: Likewise.
* g++.old-deja/g++.other/cast6.C: Likewise.
* g++.old-deja/g++.other/ptrmem8.C: Likewise.
* g++.old-deja/g++.other/eh4.C: Likewise.
* g++.old-deja/g++.other/using7.C: Likewise.
* g++.old-deja/g++.other/init18.C: Likewise.
* g++.old-deja/g++.other/dyncast1.C: Likewise.
* g++.old-deja/g++.other/dyncast2.C: Likewise.
* g++.old-deja/g++.other/dtor11.C: Likewise.
* g++.old-deja/g++.pt/static11.C: Likewise.
* g++.old-deja/g++.pt/crash19.C: Likewise.
* g++.old-deja/g++.pt/overload12.C: Likewise.
* g++.old-deja/g++.pt/crash46.C: Likewise.
* g++.old-deja/g++.pt/mi1.C: Likewise.
* g++.old-deja/g++.pt/vaarg3.C: Likewise.
* g++.old-deja/g++.pt/nontype5.C: Likewise.
* g++.old-deja/g++.pt/local5.C: Likewise.
* g++.old-deja/g++.pt/typename2.C: Likewise.
* g++.old-deja/g++.pt/explicit80.C: Likewise.
* g++.old-deja/g++.pt/auto_ptr.C: Likewise.
* g++.old-deja/g++.law/visibility1.C: Likewise.
* g++.old-deja/g++.law/visibility2.C: Likewise.
* g++.old-deja/g++.law/virtual2.C: Likewise.
* g++.old-deja/g++.law/operators19.C: Likewise.
* g++.old-deja/g++.law/parsing10.C: Likewise.
* g++.old-deja/g++.law/visibility4.C: Likewise.
* g++.old-deja/g++.law/operators4.C: Likewise.
* g++.old-deja/g++.law/dtors2.C: Likewise.
* g++.old-deja/g++.law/missed-error3.C: Likewise.
* g++.old-deja/g++.law/visibility10.C: Likewise.
* g++.old-deja/g++.law/scope3.C: Likewise.
* g++.old-deja/g++.law/casts2.C: Likewise.
* g++.old-deja/g++.law/code-gen5.C: Likewise.
* g++.old-deja/g++.law/operators33.C: Likewise.
* g++.old-deja/g++.law/friend4.C: Likewise.
* g++.old-deja/g++.mike/pmf7.C: Likewise.
* g++.old-deja/g++.mike/p5611.C: Likewise.
* g++.old-deja/g++.mike/net37.C: Likewise.
* g++.old-deja/g++.mike/p3570.C: Likewise.
* g++.old-deja/g++.mike/p5718.C: Likewise.
* g++.old-deja/g++.mike/net21.C: Likewise.
* g++.old-deja/g++.mike/p1862.C: Likewise.
* g++.old-deja/g++.mike/p4511.C: Likewise.
* g++.old-deja/g++.mike/virt3.C: Likewise.
* g++.old-deja/g++.mike/p16146.C: Likewise.
* g++.old-deja/g++.mike/p1989.C: Likewise.
* g++.old-deja/g++.mike/p5571.C: Likewise.
* g++.old-deja/g++.gb/scope10.C: Likewise.
* g++.old-deja/g++.abi/primary5.C: Likewise.
* g++.old-deja/g++.abi/empty2.C: Likewise.
* g++.old-deja/g++.abi/arraynew.C: Likewise.
* g++.old-deja/g++.eh/vbase4.C: Likewise.
* g++.old-deja/g++.eh/ptr1.C: Likewise.
* g++.old-deja/g++.eh/cleanup1.C: Likewise.
* g++.old-deja/g++.bob/template3.C: Likewise.
* g++.old-deja/g++.bob/inherit1.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123132 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/30891
cp/
* parser.c (cp_parser_statement): If 'namespace' is found, this
only can be a namespace alias definition, so parse it now.
(cp_parser_namespace_alias_definition): if we find an open brace
instead of '=', then this is actually a misplaced namespace
definition.
testsuite/
* g++.dg/parse/namespace-definition.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122962 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
PR c++/30895
* tree.c (cp_tree_equal): Properly handle COMPLEX_CST trees.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122532 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/15787
* parser.c (struct cp_parser): New IN_IF_STMT.
(cp_parser_statement_seq_opt): Handle an unexpected 'else',
returning if parsing the body of an 'if' statement or issuing an
error and continuing.
(cp_parser_selection_statement): Set IN_IF_STMT bit when parsing
body of 'if'.
(cp_parser_jump_statement): Mask new IN_IF_STMT bit.
testsuite/
* g++.dg/parse/else.C: New.
* g++.dg/parse/else-2.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122505 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
expanded only once even if an error occurs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121288 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
PR c++/29731
* parser.c (cp_parser_primary_expression): Return error_mark_node when
a statement-expression is found outside of a function body.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120299 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* g++.dg/warn/implicit-typename1.C: Qualify types.
* g++.dg/parse/crash12.C: Likewise.
* g++.dg/tree-ssa/pr22444.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119693 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cp_parser_elaborated_type_specifier: Check
the return value of check_elaborated_type_specifier.
* g++.dg/ext/attrib27.C: New test.
* g++.dg/parse/struct-as-enum1.C: Adjust error markers.
* g++.dg/parse/typedef5.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119633 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_init_declarator): Reject initialization of
functions.
PR c++/29730
* g++.dg/template/crash64.C: New test.
* g++.dg/parse/crash27.C: Adjust error markers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119601 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* g++.old-deja/g++.pt/eichin01a.C (main): Fix prototype.
* g++.old-deja/g++.pt/eichin01b.C (main): Same.
* g++.old-deja/g++.pt/eichin01.C (main): Same.
* g++.old-deja/g++.mike/net25.C (main): Same.
* g++.dg/lookup/exception1.C (main): Same.
* g++.dg/parse/parens2.C (main): Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118204 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* decl2.c (grokbitfield): Detect invalid non-integral
types earlier when possible.
* g++.dg/parse/bitfield1.C: Adjust error markers.
* g++.dg/parse/bitfield2.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117910 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
function.
(cp_parser_constructor_declarator_p): Use it.
(cp_parser_check_type_definition): Return a value indicating
whether or not the definition is valid.
(cp_parser_enum_specifier): Skip invalid enum definitions.
PR c++/28261
* g++.dg/parse/enum3.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117835 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_using_declaration): Stop parsing when
something goes wrong with an access declaration.
PR c++/29408
* g++.dg/parse/dtor12.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117800 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_template_argument): Don't consider "&var" a
possible constant-expression.
* pt.c (convert_nontype_argument): Refine handling of arguments of
pointer type.
PR c++/28211
* g++.dg/tc1/dr49.C: Tweak error messages.
* g++.dg/parse/template21.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117787 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* g++.old-deja/g++.jason/hmc1.C: Likewise.
* g++.old-deja/g++.jason/cleanup2.C: Likewise.
* g++.old-deja/g++.law/shadow1.C: Likewise.
* g++.old-deja/g++.law/ctors10.C: Likewise.
* g++.dg/debug/namespace1.C: Likewise.
* g++.dg/inherit/namespace-as-base.C: Likewise.
* g++.dg/opt/delay-slot-1.C: Likewise.
* g++.dg/parse/defarg10.C: Likewise.
* g++.dg/template/ptrmem11.C: Likewise.
* g++.dg/template/mem_func_ptr.C: Likewise.
* g++.dg/template/spec19.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117702 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (function_declarator_p): New function.
(cp_parser_init_declarator): Use it.
(cp_parser_member_declaration): Likewise.
PR c++/28506
* g++.dg/parse/pure1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117687 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (start_decl): Return error_mark_node if a
function is initialized like a variable.
(check_var_type): If a variable of field is declared void,
set the type to error_mark_node.
(grokdeclarator): Check the return type of check_var_type.
* class.c (finish_struct_1): Robustify.
* g++.dg/template/crash60.C: New test.
* g++.dg/other/large-size-array.C: Adjust error markers.
* g++.dg/parse/crash27.C: Likewise.
* g++.dg/template/crash1.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117671 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117642 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cp-tree (struct cp_decl_specifier_seq): Rename to
conflicting_specifiers_p
* parser.c (cp_parser_set_storage_class): Set
conflicting_specifiers_p for the input decl specifier
if a typedef specifier is present. Rename uses of
multiple_specifiers_p to conflicting_specifiers_p.
(cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
class specifier has already been set for this declaration,
set conflicting_specifiers_p to true on the decl_specs.
* decl.c (grokdeclarator): Rename uses of
multiple_specifiers_p to conflicting_specifiers_p.
* g++.dg/parse/typedef8.C: New test.
* g++.dg/other/mult-stor1.C: Adjust error markers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117641 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* init.c (build_new): Check for invalid init.
* g++.dg/parse/new4.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117393 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* pt.c (tsubst_baselink): Substituteinto the qualifying scope.
* semantics.c (baselink_for_fns): Build a baselink, even when
processing a template.
PR c++/29105
* g++.dg/template/member6.C: New test.
* g++.dg/parse/typename7.C: Adjust error markers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117361 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/26938
* cp-tree.h (redeclare_class_template): Adjust declaration
to return bool instead of void.
* pt.c (redeclare_class_template): Update definition. Return
false on error.
* decl.c (xref_tag): Return error_mark_node if redeclare_class_template
returned false.
* g++.dg/template/crash58.C: New test.
* g++.dg/template/crash59.C: New test.
* g++.dg/parse/crash28.C: Adjust error markers.
* g++.dg/template/crash34.C: Likewise.
* g++.dg/template/friend31.C: Likewise.
* g++.dg/template/crash32.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117205 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (shadow_tag): Return error_mark_node
if maybe_process_partial_specialization failed.
* g++.dg/template/spec32.C: New test.
* g++.dg/parse/crash9.C: Adjust error markers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117117 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_skip_until_found): Rename to
cp_parser_skip_to_end_of_template_parameter_list. Remove last two
parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
Reorganize. Adjust comment.
(cp_parser_template_declaration_after_export): Adjust call.
(cp_parser_enclosed_template_argument_list): Likewise.
* g++.dg/parse/template20.C: New test.
* g++.dg/template/operator8.C: Remove obsolete part.
* g++.dg/parse/def-tmpl-arg1.C: Adjust error-markers.
* g++.old-deja/g++.pt/crash65.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116788 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
where the name is a type used incorrectly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116715 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 23287 Revert my 2006-09-01 patch.
* parser.c: Reverted.
* pt.c: Reverted.
testsuite/
PR c++/23287 Revert my 2006-09-01 patch
* g++.dg/parse/dtor12.C: Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116679 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* except.c (build_throw): Only set current_function_returns_abnormally
if cfun is not NULL.
* g++.dg/parse/crash33.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116655 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/23287
* parser.c (cp_parser_id_expression): Add member_p
argument. Update all callers.
(cp_parser_unqualified_id): Likewise. Lookup a destructor name in
the object's scope, if valid.
(cp_parser_global_scope_opt): Add object_scope_valid_p. Update
callers.
(cp_parser_postfix_dot_deref_expression): Set object_scope.
* pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
testsuite/
PR c++/23287
* g++.dg/parse/dtor12.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116623 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (grokdeclarator): Disallow declarations with qualified
names in local scopes.
PR c++/28056
* g++.dg/parse/local1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116410 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (grokdeclarator): Return early after
issuing diagnostic about an incomplete type.
* g++.dg/parse/ctor7.C: New test.
* g++.dg/parse/ctor8.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116302 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (struct cgraph_node): Remove externally_visible
bitfield.
* cgraphunit.c (process_function_and_variable_attributes): Set
local.externally_visible rather than externally_visible.
PR c/28744
* c-common.c (handle_externally_visible_attribute): First look
at TREE_CODE and only if it is function or var decl, check for
non-public objects. Don't warn for DECL_EXTERNAL.
* cgraphunit.c (process_function_and_variable_attributes): Warn
if externally_visible attribute is used on non-public object.
* gcc.dg/attr-externally-visible-1.c: New test.
* gcc.dg/attr-externally-visible-2.c: New test.
* g++.dg/parse/attr-externally-visible-1.C: New test.
* g++.dg/parse/attr-externally-visible-2.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116222 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
Fix formatting.
(cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
for valid type-names.
(cp_parser_unqualified_id): Fix error handling for destructors.
* g++.dg/parse/dtor11.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116217 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/28573
* c-common.c (fold_offsetof_1): Add an argument and recurse down to it
or the INTEGER_CST. Fail on a CALL_EXPR.
(fold_offsetof): Pass new argument to fold_offsetof_1.
* c-parser.c (c_parser_postfix_expression): Don't include a NULL
operand into an INDIRECT_REF.
* c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
cp:
2006-08-17 Paolo Bonzini <bonzini@gnu.org>
PR c++/28573
* semantics.c (finish_offsetof): Add new argument to fold_offsetof.
testsuite:
2006-08-17 Paolo Bonzini <bonzini@gnu.org>
PR c++/28573
* g++.dg/parse/offsetof6.C: New test.
* g++.dg/parse/offsetof7.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116208 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* init.c (build_new): Return early on invalid placement.
* g++.dg/parse/new3.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116191 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_unqualified_id): Check for invalid scopes
when parsing destructor names.
* g++.dg/parse/dtor9.C: New test.
* g++.dg/parse/dtor10.C: New test.
* g++.dg/other/error7.C: Adjust error-marker.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115896 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* decl.c (grokdeclarator): Check whether "long" or "short" was
specified for non-integral types.
* g++.dg/parse/long1.C: Add more tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115843 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (cp_parser_check_decl_spec): New function.
(cp_parser_decl_specifier_seq): Factor out check for repeated
decl-specifiers into cp_parser_check_decl_spec. Use it.
(cp_parser_type_specifier_seq) Use it.
* g++.dg/parse/catch1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115469 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115125 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* decl2.c (grokfield): Only try to treat the decl as an access
declaration if the scope is a class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115095 138bc75d-0d04-0410-961f-82ee72b054a4
|