Commit Graph

52 Commits

Author SHA1 Message Date
Joseph Myers
db3acfa547 re PR c/4787 (Different anonymous variables declared but only one allocated when the initialization is the same)
* c-common.def (COMPOUND_LITERAL_EXPR): New.
	* c-common.c (c_expand_expr): Handle COMPOUND_LITERAL_EXPR.
	(c_staticp): New function.
	* c-common.h (COMPOUND_LITERAL_EXPR_DECL): New.
	(c_staticp): Declare.
	* c-typeck.c (default_function_array_conversion, build_unary_op):
	Don't handle CONSTRUCTOR specially.
	(lvalue_p, mark_addressable): Handle COMPOUND_LITERAL_EXPR.
	* c-decl.c (build_compound_literal): New function.
	* c-tree.h (build_compound_literal): Declare.
	* c-parse.in (primary): Use build_compound_literal.
	* c-lang.c (LANG_HOOKS_STATICP): Define.
	* objc/objc-lang.c (LANG_HOOKS_STATICP): Likewise.
	* doc/c-tree.texi: Document COMPOUND_LITERAL_EXPR.
	* doc/extend.texi: Update documentation of compound literals.
	Fixes PR c/4787.

testsuite:
	* gcc.c-torture/execute/20000722-1.x,
	gcc.c-torture/execute/20010123-1.x: Remove.
	* gcc.c-torture/compile/init-3.c: Don't use a compound literal.
	* gcc.dg/c90-complit-1.c, gcc.dg/c99-complit-1.c,
	gcc.dg/c99-complit-2.c: New tests.

From-SVN: r47629
2001-12-04 22:55:40 +00:00
Ziemowit Laski
4e089a757d Make-lang.in: Update copyright.
* objc/Make-lang.in: Update copyright.
        (OBJC_OBJS): Add objc-lang.o.
        (objc-lang.o): New rule.
        * objc/config-lang.in: Fix file description and update
        copyright.
        * objc/objc-act.c: Do not include langhooks.h and
        langhooks-def.h
        (lang_hooks): Move (along with LANG_HOOKS...) to objc-lang.c.
        (objc_post_options): Move to objc-lang.c.
        (objc_init_options): Move to objc-lang.c.
        (objc_init): Make non-static.
        (HASHFUNCTION): Remove macro.
        (hash_func): New function.
        (hash_enter): Replace HASHFUNCTION with hash_func.
        (hash_lookup): Replace HASHFUNCTION with hash_func.
        (maybe_objc_tree_codes): New function.
        (init_objc): Move ObjC tree code initialization to
        maybe_objc_tree_codes().
        * objc/objc-act.h (GCC_OBJC_ACT_H): New include guard.
        (objc_init): New public prototype.
        (objc_decode_option): New public prototype.
        (maybe_add_objc_tree_codes): New public prototype.
        * objc/objc-lang.c: New file.
        (lang_hooks): Moved from objc-act.c.
        (objc_post_options): Moved from objc-act.c.
        (objc_init_options): Moved from objc-act.c.

From-SVN: r47575
2001-12-04 00:25:20 +00:00