@@ -35,10 +35,11 @@ class c_qualifierst
35
35
is_atomic=false ;
36
36
is_ptr32=is_ptr64=false ;
37
37
is_transparent_union=false ;
38
+ is_noreturn=false ;
38
39
}
39
40
40
41
// standard ones
41
- bool is_constant, is_volatile, is_restricted, is_atomic;
42
+ bool is_constant, is_volatile, is_restricted, is_atomic, is_noreturn ;
42
43
43
44
// MS Visual Studio extension
44
45
bool is_ptr32, is_ptr64;
@@ -61,7 +62,8 @@ class c_qualifierst
61
62
(!is_restricted || q.is_restricted ) &&
62
63
(!is_atomic || q.is_atomic ) &&
63
64
(!is_ptr32 || q.is_ptr32 ) &&
64
- (!is_ptr64 || q.is_ptr64 );
65
+ (!is_ptr64 || q.is_ptr64 ) &&
66
+ (!is_noreturn || q.is_noreturn );
65
67
66
68
// is_transparent_union isn't checked
67
69
}
@@ -76,7 +78,8 @@ class c_qualifierst
76
78
a.is_atomic ==b.is_atomic &&
77
79
a.is_ptr32 ==b.is_ptr32 &&
78
80
a.is_ptr64 ==b.is_ptr64 &&
79
- a.is_transparent_union ==b.is_transparent_union ;
81
+ a.is_transparent_union ==b.is_transparent_union &&
82
+ a.is_noreturn ==b.is_noreturn ;
80
83
}
81
84
82
85
friend bool operator != (
@@ -96,13 +99,14 @@ class c_qualifierst
96
99
is_ptr32|=b.is_ptr32 ;
97
100
is_ptr64|=b.is_ptr64 ;
98
101
is_transparent_union|=b.is_transparent_union ;
102
+ is_noreturn|=b.is_noreturn ;
99
103
return *this ;
100
104
}
101
105
102
106
friend unsigned count (const c_qualifierst &q)
103
107
{
104
108
return q.is_constant +q.is_volatile +q.is_restricted +q.is_atomic +
105
- q.is_ptr32 +q.is_ptr64 ;
109
+ q.is_ptr32 +q.is_ptr64 +q. is_noreturn ;
106
110
}
107
111
};
108
112
0 commit comments