[Bug libgomp/92305] [10 regression] libgomp.fortran/use_device_addr-1.f90 fails starting with r277606
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 12 22:31:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92305
--- Comment #14 from Tobias Burnus <burnus at gcc dot gnu.org> ---
If the actual argument is itself optional but without value attribute,
gfc_conv_expr_present returns a 'logical_type_node' (default-integer size,
typically 4 bytes type) instead of a boolean_type_node (1 byte), which might
causes problems.
However, for the test case of comment 9, this does not apply as there the
boolean_true_node is used (which is 1 byte) – which matches the declaration in
trans-decl.c (= boolean_type_node).
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 63559384c1e..267536ddf2f 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -5753 +5753,3 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
- vec_safe_push (optionalargs, tmp);
+ vec_safe_push (optionalargs,
+ fold_convert (boolean_type_node,
+ tmp));
More information about the Gcc-bugs
mailing list