diff options
Diffstat (limited to 'gcc/gimple.h')
-rw-r--r-- | gcc/gimple.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/gimple.h b/gcc/gimple.h index 334def89398..eef5a75fe76 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -6319,11 +6319,18 @@ gimple_expr_type (const gimple *stmt) if (code == GIMPLE_CALL) { const gcall *call_stmt = as_a <const gcall *> (stmt); - if (gimple_call_internal_p (call_stmt) - && gimple_call_internal_fn (call_stmt) == IFN_MASK_STORE) - return TREE_TYPE (gimple_call_arg (call_stmt, 3)); - else - return gimple_call_return_type (call_stmt); + if (gimple_call_internal_p (call_stmt)) + switch (gimple_call_internal_fn (call_stmt)) + { + case IFN_MASK_STORE: + case IFN_SCATTER_STORE: + return TREE_TYPE (gimple_call_arg (call_stmt, 3)); + case IFN_MASK_SCATTER_STORE: + return TREE_TYPE (gimple_call_arg (call_stmt, 4)); + default: + break; + } + return gimple_call_return_type (call_stmt); } else if (code == GIMPLE_ASSIGN) { |