diff options
author | Jason Merrill <jason@redhat.com> | 2015-11-25 16:34:00 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2015-11-25 16:34:00 -0500 |
commit | 75729cff1ebd87576916e99cd539b0c9223e5d99 (patch) | |
tree | 5e5d151301b00f3fe6329eedf47b38d3dfe48908 | |
parent | b5f34b425ad31c5ee8980fd5b9937d7cd29d98fc (diff) | |
download | gcc-75729cff1ebd87576916e99cd539b0c9223e5d99.zip gcc-75729cff1ebd87576916e99cd539b0c9223e5d99.tar.gz gcc-75729cff1ebd87576916e99cd539b0c9223e5d99.tar.bz2 |
lambda.c (maybe_add_lambda_conv_op): Only set no_sanitize_undefined if SANITIZE_NULL.
* lambda.c (maybe_add_lambda_conv_op): Only set
no_sanitize_undefined if SANITIZE_NULL.
From-SVN: r230908
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/lambda.c | 13 |
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 635db4e..900d864 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2015-11-25 Jason Merrill <jason@redhat.com> + * lambda.c (maybe_add_lambda_conv_op): Only set + no_sanitize_undefined if SANITIZE_NULL. + PR c++/67941 * lambda.c (maybe_add_lambda_conv_op): Mark _FUN as no_sanitize_undefined. diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index f9b686b..8d1ee14 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -1053,11 +1053,14 @@ maybe_add_lambda_conv_op (tree type) if (generic_lambda_p) fn = add_inherited_template_parms (fn, DECL_TI_TEMPLATE (callop)); - /* Don't UBsan this function; we're deliberately calling op() with a null - object argument. */ - tree attrs = build_tree_list (get_identifier ("no_sanitize_undefined"), - NULL_TREE); - cplus_decl_attributes (&fn, attrs, 0); + if (flag_sanitize & SANITIZE_NULL) + { + /* Don't UBsan this function; we're deliberately calling op() with a null + object argument. */ + tree attrs = build_tree_list (get_identifier ("no_sanitize_undefined"), + NULL_TREE); + cplus_decl_attributes (&fn, attrs, 0); + } add_method (type, fn, NULL_TREE); |