c-decl.c (shadow_tag_warned): Check for _Noreturn.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 18 Aug 2011 21:35:42 +0000 (22:35 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Thu, 18 Aug 2011 21:35:42 +0000 (22:35 +0100)
commitbbceee64bef15b92b1f9b964b8d371bd07ea794a
tree7cac89ed01db35f3172a81cb7429efeb4d9798e7
parent32fe396e05443a67367a3c454b7c6d574ea7e58e
c-decl.c (shadow_tag_warned): Check for _Noreturn.

* c-decl.c (shadow_tag_warned): Check for _Noreturn.
(quals_from_declspecs): Assert _Noreturn not present.
(grokdeclarator): Handle _Noreturn.
(build_null_declspecs): Initialize noreturn_p.
(declspecs_add_scspec): Handle RID_NORETURN.
* c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
(c_parser_attributes): Handle RID_NORETURN.
* c-tree.h (struct c_declspecs): Add noreturn_p.
* ginclude/stdnoreturn.h: New.
* Makefile.in (USER_H): Add stdnoreturn.h.

c-family:
* c-common.c (c_common_reswords): Add _Noreturn.
(keyword_is_function_specifier): Handle RID_NORETURN.
* c-common.h (RID_NORETURN): New.

testsuite:
* gcc.dg/c1x-noreturn-1.c, gcc.dg/c1x-noreturn-2.c,
gcc.dg/c1x-noreturn-3.c, gcc.dg/c1x-noreturn-4.c,
gcc.dg/c1x-noreturn-5.c: New tests.

From-SVN: r177881
15 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/c-decl.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-common.h
gcc/c-parser.c
gcc/c-tree.h
gcc/ginclude/stdnoreturn.h [new file with mode: 0644]
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/c1x-noreturn-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c1x-noreturn-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c1x-noreturn-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c1x-noreturn-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c1x-noreturn-5.c [new file with mode: 0644]