mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-02 18:58:15 +00:00
Update the status of more C DRs
This adds information for DRs 126 through 146.
This commit is contained in:
parent
34033a84b8
commit
61a649ca35
@ -31,6 +31,24 @@
|
||||
*
|
||||
* WG14 DR125: yes
|
||||
* Using things declared as 'extern (qualified) void'
|
||||
*
|
||||
* WG14 DR127: dup 013
|
||||
* Composite type of an enumerated type and an integral type
|
||||
*
|
||||
* WG14 DR132: dup 109
|
||||
* Can undefined behavior occur at translation time, or only at run time?
|
||||
*
|
||||
* WG14 DR133: yes
|
||||
* Undefined behavior not previously listed in subclause G2
|
||||
*
|
||||
* WG14 DR138: yes
|
||||
* Is there an allocated storage duration?
|
||||
*
|
||||
* WG14 DR139: yes
|
||||
* Compatibility of complete and incomplete types
|
||||
*
|
||||
* WG14 DR146: yes
|
||||
* Nugatory constraint
|
||||
*/
|
||||
|
||||
|
||||
@ -231,3 +249,81 @@ void dr124(void) {
|
||||
/* A cast can cast to void or any qualified version of void. */
|
||||
(const volatile void)0;
|
||||
}
|
||||
|
||||
/* WG14 DR126: yes
|
||||
* What does 'synonym' mean with respect to typedef names?
|
||||
*/
|
||||
void dr126(void) {
|
||||
typedef int *IP;
|
||||
const IP object; /* expected-note {{variable 'object' declared const here}} */
|
||||
|
||||
/* The root of the DR is whether 'object' is a pointer to a const int, or a
|
||||
* const pointer to int.
|
||||
*/
|
||||
*object = 12; /* ok */
|
||||
++object; /* expected-error {{cannot assign to variable 'object' with const-qualified type 'const IP' (aka 'int *const')}} */
|
||||
}
|
||||
|
||||
/* WG14 DR128: yes
|
||||
* Editorial issue relating to tag declarations in type specifiers
|
||||
*/
|
||||
void dr128(void) {
|
||||
{
|
||||
struct TAG { int i; };
|
||||
}
|
||||
{
|
||||
struct TAG object; /* expected-error {{variable has incomplete type 'struct TAG'}}
|
||||
expected-note {{forward declaration of 'struct TAG'}}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
/* WG14 DR129: yes
|
||||
* Tags and name spaces
|
||||
*/
|
||||
struct dr129_t { int i; };
|
||||
void dr129(void) {
|
||||
enum dr129_t { enumerator }; /* expected-note {{previous use is here}} */
|
||||
void *vp;
|
||||
|
||||
(void)(struct dr129_t *)vp; /* expected-error {{use of 'dr129_t' with tag type that does not match previous declaration}} */
|
||||
}
|
||||
|
||||
/* WG14 DR131: yes
|
||||
* const member qualification and assignment
|
||||
*/
|
||||
void dr131(void) {
|
||||
struct S {
|
||||
const int i; /* expected-note {{data member 'i' declared const here}} */
|
||||
} s1, s2;
|
||||
s1 = s2; /* expected-error {{cannot assign to variable 's1' with const-qualified data member 'i'}} */
|
||||
}
|
||||
|
||||
/* WG14 DR142: yes
|
||||
* Reservation of macro names
|
||||
*/
|
||||
void dr142(void) {
|
||||
#include <stddef.h>
|
||||
/* FIXME: undefining a macro defined by the standard library is undefined
|
||||
* behavior. We have diagnostics when declaring reserved identifiers, and we
|
||||
* could consider extending that to undefining a macro defined in a system
|
||||
* header. However, whether we diagnose or not, we conform.
|
||||
*/
|
||||
#undef NULL
|
||||
}
|
||||
|
||||
/* WG14 DR144: yes
|
||||
* Preprocessing of preprocessing directives
|
||||
*/
|
||||
#define DR144
|
||||
# DR144 include <stddef.h> /* expected-error {{invalid preprocessing directive}} */
|
||||
DR144 # include <stddef.h> /* expected-error {{expected identifier or '('}} */
|
||||
|
||||
/* WG14 DR145: yes
|
||||
* Constant expressions
|
||||
*/
|
||||
void dr145(void) {
|
||||
static int array[10];
|
||||
static int *ip = (int *)0;
|
||||
static int i = array[0] + array[1]; /* expected-error {{initializer element is not a compile-time constant}} */
|
||||
}
|
||||
|
@ -811,25 +811,25 @@ conformance.</p>
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_126.html">126</a></td>
|
||||
<td>NAD</td>
|
||||
<td>What does 'synonym' mean with respect to typedef names?</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="127">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_127.html">127</a></td>
|
||||
<td>Dup</td>
|
||||
<td>Composite type of an enumerated type and an integral type</td>
|
||||
<td class="unknown" align="center">Duplicate of <a href="#13">13</a></td>
|
||||
<td class="full" align="center">Duplicate of <a href="#13">13</a></td>
|
||||
</tr>
|
||||
<tr id="128">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_128.html">128</a></td>
|
||||
<td>NAD</td>
|
||||
<td>Editorial issue relating to tag declarations in type specifiers</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="129">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_129.html">129</a></td>
|
||||
<td>NAD</td>
|
||||
<td>Tags and name spaces</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="130">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_130.html">130</a></td>
|
||||
@ -841,19 +841,19 @@ conformance.</p>
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_131.html">131</a></td>
|
||||
<td>C89</td>
|
||||
<td>const member qualification and assignment</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="132">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_132.html">132</a></td>
|
||||
<td>Dup</td>
|
||||
<td>Can undefined behavior occur at translation time, or only at run time?</td>
|
||||
<td class="unknown" align="center">Duplicate of <a href="#109">109</a></td>
|
||||
<td class="full" align="center">Duplicate of <a href="#109">109</a></td>
|
||||
</tr>
|
||||
<tr id="133">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_133.html">133</a></td>
|
||||
<td>NAD</td>
|
||||
<td>Undefined behavior not previously listed in subclause G2</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="134">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_134.html">134</a></td>
|
||||
@ -883,13 +883,13 @@ conformance.</p>
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_138.html">138</a></td>
|
||||
<td>C89</td>
|
||||
<td>Is there an allocated storage duration?</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="139">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_139.html">139</a></td>
|
||||
<td>C89</td>
|
||||
<td>Compatibility of complete and incomplete types</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="140">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_140.html">140</a></td>
|
||||
@ -907,7 +907,7 @@ conformance.</p>
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_142.html">142</a></td>
|
||||
<td>C89</td>
|
||||
<td>Reservation of macro names</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="143">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_143.html">143</a></td>
|
||||
@ -919,19 +919,19 @@ conformance.</p>
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_144.html">144</a></td>
|
||||
<td>C89</td>
|
||||
<td>Preprocessing of preprocessing directives</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="145">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_145.html">145</a></td>
|
||||
<td>C89</td>
|
||||
<td>Constant expressions</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="146">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_146.html">146</a></td>
|
||||
<td>C89</td>
|
||||
<td>Nugatory constraint</td>
|
||||
<td class="unknown" align="center">Unknown</td>
|
||||
<td class="full" align="center">Yes</td>
|
||||
</tr>
|
||||
<tr id="147">
|
||||
<td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_147.html">147</a></td>
|
||||
|
Loading…
Reference in New Issue
Block a user