|| GFC_CLASS_TYPE_P (TREE_TYPE (expr)))
return false;
- if (TREE_CODE (expr) == VAR_DECL
+ if (VAR_P (expr)
&& GFC_DECL_PTR_ARRAY_P (expr))
return true;
&& GFC_DECL_PTR_ARRAY_P (expr))
return true;
- if (TREE_CODE (expr) == INDIRECT_REF
+ if (INDIRECT_REF_P (expr)
&& GFC_DECL_PTR_ARRAY_P (TREE_OPERAND (expr, 0)))
return true;
{
if (TREE_CODE (info->descriptor) == COMPONENT_REF)
decl = info->descriptor;
- else if (TREE_CODE (info->descriptor) == INDIRECT_REF)
+ else if (INDIRECT_REF_P (info->descriptor))
decl = TREE_OPERAND (info->descriptor, 0);
if (decl == NULL_TREE)
{
if (TREE_CODE (se->expr) == COMPONENT_REF)
decl = se->expr;
- else if (TREE_CODE (se->expr) == INDIRECT_REF)
+ else if (INDIRECT_REF_P (se->expr))
decl = TREE_OPERAND (se->expr, 0);
else
decl = se->expr;
if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (se->expr)))
{
decl = se->expr;
- if (TREE_CODE (decl) == INDIRECT_REF)
+ if (INDIRECT_REF_P (decl))
decl = TREE_OPERAND (decl, 0);
}
else
return;
if (DECL_SIZE (decl) == NULL_TREE
- && TYPE_SIZE (TREE_TYPE (decl)) != NULL_TREE)
+ && COMPLETE_TYPE_P (TREE_TYPE (decl)))
layout_decl (decl, 0);
/* A few consistency checks. */
length = fold_convert (gfc_charlen_type_node, length);
gfc_finish_var_decl (length, sym);
if (!sym->attr.associate_var
- && TREE_CODE (length) == VAR_DECL
+ && VAR_P (length)
&& sym->value && sym->value->expr_type != EXPR_NULL
&& sym->value->ts.u.cl->length)
{
gfc_conv_descriptor_data_set (&block, desc, data);
/* Copy the span. */
- if (TREE_CODE (rse.expr) == VAR_DECL
+ if (VAR_P (rse.expr)
&& GFC_DECL_PTR_ARRAY_P (rse.expr))
span = gfc_conv_descriptor_span_get (rse.expr);
else
{
tmp = sym->backend_decl;
lhs = sym->backend_decl;
- if (TREE_CODE (tmp) == INDIRECT_REF)
+ if (INDIRECT_REF_P (tmp))
tmp = TREE_OPERAND (tmp, 0);
sym->backend_decl = gfc_create_var (TREE_TYPE (tmp), "lhs");
gfc_add_modify (&se.pre, sym->backend_decl, tmp);
if (expr2->ts.type == BT_CHARACTER && !expr1->ts.deferred
&& !(VAR_P (rse.string_length)
|| TREE_CODE (rse.string_length) == PARM_DECL
- || TREE_CODE (rse.string_length) == INDIRECT_REF))
+ || INDIRECT_REF_P (rse.string_length)))
string_length = gfc_evaluate_now (rse.string_length, &rse.pre);
else if (expr2->ts.type == BT_CHARACTER)
{
/* Handle absent optional arguments by ignoring the comparison. */
if (argexpr->expr->expr_type == EXPR_VARIABLE
&& argexpr->expr->symtree->n.sym->attr.optional
- && TREE_CODE (val) == INDIRECT_REF)
+ && INDIRECT_REF_P (val))
{
cond = fold_build2_loc (input_location,
NE_EXPR, logical_type_node,
arg = gfc_evaluate_now (arg, &se->pre);
type = gfc_typenode_for_spec (&expr->ts);
- gcc_assert (TREE_CODE (type) == REAL_TYPE);
+ gcc_assert (SCALAR_FLOAT_TYPE_P (type));
ret = gfc_create_var (type, NULL);
gfc_init_block (&body);
}
else
{
- gcc_assert (TREE_CODE (se->expr) == INDIRECT_REF);
+ gcc_assert (INDIRECT_REF_P (se->expr));
tree ptr = TREE_OPERAND (se->expr, 0);
gcc_assert (TREE_CODE (ptr) == POINTER_PLUS_EXPR);
gfc_omp_is_optional_argument (const_tree decl)
{
/* Note: VAR_DECL can occur with BIND(C) and array descriptors. */
- return ((TREE_CODE (decl) == PARM_DECL || TREE_CODE (decl) == VAR_DECL)
+ return ((TREE_CODE (decl) == PARM_DECL || VAR_P (decl))
&& DECL_LANG_SPECIFIC (decl)
&& TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE
&& !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))
}
}
else if (present
- && TREE_CODE (decl) == INDIRECT_REF
- && (TREE_CODE (TREE_OPERAND (decl, 0))
- == INDIRECT_REF))
+ && INDIRECT_REF_P (decl)
+ && INDIRECT_REF_P (TREE_OPERAND (decl, 0)))
{
/* A single indirectref is handled by the middle end. */
gcc_assert (!POINTER_TYPE_P (TREE_TYPE (decl)));
if (TREE_CODE (se->expr) == COMPONENT_REF)
se->expr = TREE_OPERAND (se->expr, 1);
/* Deals with dummy argument. Get the parameter declaration. */
- else if (TREE_CODE (se->expr) == INDIRECT_REF)
+ else if (INDIRECT_REF_P (se->expr))
se->expr = TREE_OPERAND (se->expr, 0);
}
else
natural_type = build_pointer_type (base_type);
- if (TREE_CODE (t) == INDIRECT_REF)
+ if (INDIRECT_REF_P (t))
{
if (!type)
type = natural_type;
if (TREE_CODE (decl) == COMPONENT_REF
&& GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl)))
return gfc_conv_descriptor_span_get (decl);
- else if (TREE_CODE (decl) == INDIRECT_REF
+ else if (INDIRECT_REF_P (decl)
&& GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl)))
return gfc_conv_descriptor_span_get (decl);