aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2015-11-25 16:34:00 -0500
committerJason Merrill <jason@gcc.gnu.org>2015-11-25 16:34:00 -0500
commit75729cff1ebd87576916e99cd539b0c9223e5d99 (patch)
tree5e5d151301b00f3fe6329eedf47b38d3dfe48908 /gcc
parentb5f34b425ad31c5ee8980fd5b9937d7cd29d98fc (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/lambda.c13
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);