summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-25 21:34:00 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-25 21:34:00 +0000
commit59ec98b2074c28050b606f2571a6ea2a3ba93779 (patch)
tree5e5d151301b00f3fe6329eedf47b38d3dfe48908
parente1e1688c80f2f7e104b4524de4fe0cddb012a780 (diff)
downloadgcc-59ec98b2074c28050b606f2571a6ea2a3ba93779.tar.gz
* lambda.c (maybe_add_lambda_conv_op): Only set
no_sanitize_undefined if SANITIZE_NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230908 138bc75d-0d04-0410-961f-82ee72b054a4
-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 635db4e46e9..900d8649934 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 f9b686b16e8..8d1ee14ca39 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);