mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-21 15:40:55 +08:00
c-decl.c (duplicate_decls): Do not call make_var_volatile() in case of invalid volatile re-declaration.
* c-decl.c (duplicate_decls): Do not call make_var_volatile() in case of invalid volatile re-declaration. From-SVN: r35119
This commit is contained in:
parent
a306451c69
commit
79c282037d
@ -1,3 +1,8 @@
|
||||
2000-07-18 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* c-decl.c (duplicate_decls): Do not call make_var_volatile() in
|
||||
case of invalid volatile re-declaration.
|
||||
|
||||
2000-07-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* calls.c (store_arg): Return non-zero if sibcall_failure is
|
||||
|
@ -1843,7 +1843,14 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
|
||||
if (TREE_THIS_VOLATILE (newdecl))
|
||||
{
|
||||
TREE_THIS_VOLATILE (write_olddecl) = 1;
|
||||
if (TREE_CODE (newdecl) == VAR_DECL)
|
||||
if (TREE_CODE (newdecl) == VAR_DECL
|
||||
/* If an automatic variable is re-declared in the same
|
||||
function scope, but the old declaration was not
|
||||
volatile, make_var_volatile() would crash because the
|
||||
variable would have been assigned to a pseudo, not a
|
||||
MEM. Since this duplicate declaration is invalid
|
||||
anyway, we just skip the call. */
|
||||
&& errmsg == 0)
|
||||
make_var_volatile (newdecl);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user