diff options
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 61b4272..7e1ca21 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -279,8 +279,7 @@ get_pointer_alignment (tree exp, unsigned int max_align) { switch (TREE_CODE (exp)) { - case NOP_EXPR: - case CONVERT_EXPR: + CASE_CONVERT: exp = TREE_OPERAND (exp, 0); if (! POINTER_TYPE_P (TREE_TYPE (exp))) return align; @@ -1077,7 +1076,7 @@ get_memory_rtx (tree exp, tree len) /* Get an expression we can use to find the attributes to assign to MEM. If it is an ADDR_EXPR, use the operand. Otherwise, dereference it if we can. First remove any nops. */ - while ((TREE_CODE (exp) == NOP_EXPR || TREE_CODE (exp) == CONVERT_EXPR) + while (CONVERT_EXPR_P (exp) && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (exp, 0)))) exp = TREE_OPERAND (exp, 0); @@ -1107,8 +1106,7 @@ get_memory_rtx (tree exp, tree len) tree inner = exp; while (TREE_CODE (inner) == ARRAY_REF - || TREE_CODE (inner) == NOP_EXPR - || TREE_CODE (inner) == CONVERT_EXPR + || CONVERT_EXPR_P (inner) || TREE_CODE (inner) == VIEW_CONVERT_EXPR || TREE_CODE (inner) == SAVE_EXPR) inner = TREE_OPERAND (inner, 0); @@ -11368,8 +11366,7 @@ fold_builtin_next_arg (tree exp, bool va_start_p) is not quite the same as STRIP_NOPS. It does more. We must also strip off INDIRECT_EXPR for C++ reference parameters. */ - while (TREE_CODE (arg) == NOP_EXPR - || TREE_CODE (arg) == CONVERT_EXPR + while (CONVERT_EXPR_P (arg) || TREE_CODE (arg) == INDIRECT_REF) arg = TREE_OPERAND (arg, 0); if (arg != last_parm) |