re PR fortran/51308 (PARAMETER attribute conflicts with SAVE attribute)
2011-11-28 Tobias Burnus <burnus@net-b.de> Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/51308 * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER conflicts for ISO_C_BINDING variables. (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null as SAVE. 2011-11-28 Tobias Burnus <burnus@net-b.de> PR fortran/51308 * gfortran.dg/iso_c_binding_compiler_4.f90: New. Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org> From-SVN: r181778
This commit is contained in:
parent
1a30353af8
commit
fc2a6c8982
@ -1,3 +1,12 @@
|
||||
2011-11-28 Tobias Burnus <burnus@net-b.de>
|
||||
Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/51308
|
||||
* symbol.c (check_conflict): Ignore BIND(C) + PARAMETER
|
||||
conflicts for ISO_C_BINDING variables.
|
||||
(gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null
|
||||
as SAVE.
|
||||
|
||||
2011-11-25 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
* trans-array.c (set_loop_bounds): Remove dead conditions.
|
||||
|
@ -742,9 +742,10 @@ check_conflict (symbol_attribute *attr, const char *name, locus *where)
|
||||
conf2 (asynchronous);
|
||||
conf2 (threadprivate);
|
||||
conf2 (value);
|
||||
conf2 (is_bind_c);
|
||||
conf2 (codimension);
|
||||
conf2 (result);
|
||||
if (!attr->is_iso_c)
|
||||
conf2 (is_bind_c);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -3763,13 +3764,11 @@ gen_special_c_interop_ptr (int ptr_id, const char *ptr_name,
|
||||
"create symbol for %s", ptr_name);
|
||||
}
|
||||
|
||||
/* Set up the symbol's important fields. Save attr required so we can
|
||||
initialize the ptr to NULL. */
|
||||
tmp_sym->attr.save = SAVE_EXPLICIT;
|
||||
tmp_sym->ts.is_c_interop = 1;
|
||||
tmp_sym->attr.is_c_interop = 1;
|
||||
tmp_sym->ts.is_iso_c = 1;
|
||||
tmp_sym->ts.type = BT_DERIVED;
|
||||
tmp_sym->attr.flavor = FL_PARAMETER;
|
||||
|
||||
/* The c_ptr and c_funptr derived types will provide the
|
||||
definition for c_null_ptr and c_null_funptr, respectively. */
|
||||
@ -3817,9 +3816,6 @@ gen_special_c_interop_ptr (int ptr_id, const char *ptr_name,
|
||||
c->expr = gfc_get_expr ();
|
||||
c->expr->expr_type = EXPR_NULL;
|
||||
c->expr->ts.is_iso_c = 1;
|
||||
/* Must declare c_null_ptr and c_null_funptr as having the
|
||||
PARAMETER attribute so they can be used in init expressions. */
|
||||
tmp_sym->attr.flavor = FL_PARAMETER;
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-11-28 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/51308
|
||||
* gfortran.dg/iso_c_binding_compiler_4.f90: New.
|
||||
|
||||
2011-11-27 Aldy Hernandez <aldyh@redhat.com>
|
||||
Iain Sandoe <iains@gcc.gnu.org>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user