frontend-passes.c (cfe_register_funcs): Return early in the case of an inline intrinsic function.

* frontend-passes.c (cfe_register_funcs): Return early in the case
	of an inline intrinsic function.
	(optimize_binop_array_assignment): Skip optimization in the case of
	an inline intrinsic function.

From-SVN: r180911
This commit is contained in:
Mikael Morin 2011-11-04 00:14:58 +00:00
parent 00b9bf8b7d
commit 93ee6382c7
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
* frontend-passes.c (cfe_register_funcs): Return early in the case
of an inline intrinsic function.
(optimize_binop_array_assignment): Skip optimization in the case of
an inline intrinsic function.
2011-11-04 Mikael Morin <mikael@gcc.gnu.org> 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
* array.c (match_subscript): Skip whitespaces before setting locus. * array.c (match_subscript): Skip whitespaces before setting locus.

View File

@ -203,8 +203,8 @@ cfe_register_funcs (gfc_expr **e, int *walk_subtrees ATTRIBUTE_UNUSED,
/* Conversions are handled on the fly by the middle end, /* Conversions are handled on the fly by the middle end,
transpose during trans-* stages and TRANSFER by the middle end. */ transpose during trans-* stages and TRANSFER by the middle end. */
if ((*e)->value.function.isym->id == GFC_ISYM_CONVERSION if ((*e)->value.function.isym->id == GFC_ISYM_CONVERSION
|| (*e)->value.function.isym->id == GFC_ISYM_TRANSPOSE || (*e)->value.function.isym->id == GFC_ISYM_TRANSFER
|| (*e)->value.function.isym->id == GFC_ISYM_TRANSFER) || gfc_inline_intrinsic_function_p (*e))
return 0; return 0;
/* Don't create an array temporary for elemental functions, /* Don't create an array temporary for elemental functions,
@ -567,7 +567,8 @@ optimize_binop_array_assignment (gfc_code *c, gfc_expr **rhs, bool seen_op)
&& ! (e->value.function.isym && ! (e->value.function.isym
&& (e->value.function.isym->elemental && (e->value.function.isym->elemental
|| e->ts.type != c->expr1->ts.type || e->ts.type != c->expr1->ts.type
|| e->ts.kind != c->expr1->ts.kind))) || e->ts.kind != c->expr1->ts.kind))
&& ! gfc_inline_intrinsic_function_p (e))
{ {
gfc_code *n; gfc_code *n;