OSDN Git Service

* c-parse.in (OFFSETOF, offsetof_member_designator): New.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Jun 2004 15:12:23 +0000 (15:12 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Jun 2004 15:12:23 +0000 (15:12 +0000)
commit43bf5d72a08229da09c59460922275147fe59e48
treebfb9b2da79e35521eae05ac845e476d726baa281
parent825f1d8bb31e4a398ca99ca16f90de14e6f06703
    * c-parse.in (OFFSETOF, offsetof_member_designator): New.
        (primary): Handle offsetof.  Add error productions for faux functions.
        Move component_ref objc checking to build_component_ref.
        (reswords): Add offsetof.
        (rid_to_yy): Add offsetof.
        * c-tree.h (build_offsetof): Declare.
        * c-common.h (objc_is_public): Declare.
        * c-typeck.c (build_component_ref): Check objc_is_public.
        (build_offsetof): New.
        * stub-objc.c (objc_is_public): New.
        * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
        from is_public.
        * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
        * doc/extend.texi (Offsetof): Move from C++ section to C section
        and rewrite for __builtin_offsetof.
cp/
        * lex.c (reswords): Rename "__offsetof" to "__builtin_offsetof".
        * parser.c (struct cp_parser): Remove in_offsetof.
        (cp_parser_new): Don't set it.
        (cp_parser_unary_expression): Don't check it.
        (cp_parser_postfix_open_square_expression): Split out from ...
        (cp_parser_postfix_expression): ... here.
        (cp_parser_postfix_dot_deref_expression): Likewise.
        (cp_parser_builtin_offsetof): New.
        (cp_parser_primary_expression): Use it.
testsuite/
        * g++.dg/template/dependent-expr4.C: Use __builtin_offsetof.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82549 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/ChangeLog
gcc/c-common.h
gcc/c-parse.in
gcc/c-tree.h
gcc/c-typeck.c
gcc/cp/ChangeLog
gcc/cp/lex.c
gcc/cp/parser.c
gcc/doc/extend.texi
gcc/ginclude/stddef.h
gcc/objc/objc-act.c
gcc/objc/objc-act.h
gcc/stub-objc.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/dependent-expr4.C