* c-decl.c (shadow_tag_warned): Check for _Noreturn.
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Aug 2011 21:35:42 +0000 (21:35 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Aug 2011 21:35:42 +0000 (21:35 +0000)
commit985c6e3a7f5ac7ed72400d90fa5529c9370f61aa
tree7cac89ed01db35f3172a81cb7429efeb4d9798e7
parent985e7f1028ffb3c6e18d66e9c9ae8d0baaa3f74b
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177881 138bc75d-0d04-0410-961f-82ee72b054a4
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]