aboutsummaryrefslogtreecommitdiffstats
path: root/cparser/Cabs.v
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2016-03-23 14:22:33 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2016-03-23 14:22:33 +0100
commit4e62a2c4b2c809ea020423e7e328ba96e379d64d (patch)
tree67a9325ae6e04c3ed353e9cd1f9dc19c1fd87405 /cparser/Cabs.v
parentccd59f7fc19ffe2347724b532d6ce13c8580c2ab (diff)
downloadcompcert-kvx-4e62a2c4b2c809ea020423e7e328ba96e379d64d.tar.gz
compcert-kvx-4e62a2c4b2c809ea020423e7e328ba96e379d64d.zip
Added the _Noreturn keyword.
CompCert now recognizes the C11 _Noreturn function specifier and emits a simple warning for functions declared _Noreturn containing a return statement. Also the stdnoreturn header and additionally the stdalign header are added. Bug 18541
Diffstat (limited to 'cparser/Cabs.v')
-rw-r--r--cparser/Cabs.v5
1 files changed, 4 insertions, 1 deletions
diff --git a/cparser/Cabs.v b/cparser/Cabs.v
index f5cab15a..d087e8c7 100644
--- a/cparser/Cabs.v
+++ b/cparser/Cabs.v
@@ -60,6 +60,9 @@ with cvspec :=
| CV_CONST | CV_VOLATILE | CV_RESTRICT
| CV_ATTR : attribute -> cvspec
+with funspec :=
+ INLINE | NORETURN
+
(* Type specifier elements. These appear at the start of a declaration *)
(* Everywhere they appear in this file, they appear as a 'list spec_elem', *)
(* which is not interpreted by cabs -- rather, this "word soup" is passed *)
@@ -68,7 +71,7 @@ with cvspec :=
with spec_elem :=
| SpecCV : cvspec -> spec_elem (* const/volatile *)
| SpecStorage : storage -> spec_elem
- | SpecInline
+ | SpecFunction: funspec -> spec_elem
| SpecType : typeSpecifier -> spec_elem
(* Declarator type. They modify the base type given in the specifier. Keep