diff options
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index fd0b520..53ec9ec 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -3384,6 +3384,20 @@ gimplify_call_expr (tree *expr_p, gimple_seq *pre_p, bool want_value) cfun->calls_eh_return = true; break; + case BUILT_IN_CLEAR_PADDING: + if (call_expr_nargs (*expr_p) == 1) + { + /* Remember the original type of the argument in an internal + dummy second argument, as in GIMPLE pointer conversions are + useless. */ + p = CALL_EXPR_ARG (*expr_p, 0); + *expr_p + = build_call_expr_loc (EXPR_LOCATION (*expr_p), fndecl, 2, p, + build_zero_cst (TREE_TYPE (p))); + return GS_OK; + } + break; + default: ; } |