re PR sanitizer/59258 (ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined)
PR sanitizer/59258 * ubsan.c (ubsan_source_location): Don't add any location to ADDR_EXPR in the ctor. Revert 2013-11-22 change. (ubsan_create_data): Strip block info from LOC. From-SVN: r205415
This commit is contained in:
parent
1f2541577e
commit
13a5b41c7d
@ -1,5 +1,10 @@
|
||||
2013-11-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR sanitizer/59258
|
||||
* ubsan.c (ubsan_source_location): Don't add any location
|
||||
to ADDR_EXPR in the ctor. Revert 2013-11-22 change.
|
||||
(ubsan_create_data): Strip block info from LOC.
|
||||
|
||||
PR middle-end/59273
|
||||
* tree-vect-generic.c (optimize_vector_constructor): Don't optimize
|
||||
if there isn't optab handler for the corresponding vector PLUS_EXPR.
|
||||
|
@ -229,13 +229,13 @@ ubsan_source_location (location_t loc)
|
||||
xloc = expand_location (loc);
|
||||
|
||||
/* Fill in the values from LOC. */
|
||||
size_t len = xloc.file ? strlen (xloc.file) : 0;
|
||||
tree str = build_string (len + 1, xloc.file ? xloc.file : "");
|
||||
size_t len = strlen (xloc.file);
|
||||
tree str = build_string (len + 1, xloc.file);
|
||||
TREE_TYPE (str) = build_array_type (char_type_node,
|
||||
build_index_type (size_int (len)));
|
||||
TREE_READONLY (str) = 1;
|
||||
TREE_STATIC (str) = 1;
|
||||
str = build_fold_addr_expr_loc (loc, str);
|
||||
str = build_fold_addr_expr (str);
|
||||
tree ctor = build_constructor_va (type, 3, NULL_TREE, str, NULL_TREE,
|
||||
build_int_cst (unsigned_type_node,
|
||||
xloc.line), NULL_TREE,
|
||||
@ -398,6 +398,7 @@ ubsan_create_data (const char *name, location_t loc,
|
||||
tree td_type = ubsan_type_descriptor_type ();
|
||||
TYPE_READONLY (td_type) = 1;
|
||||
td_type = build_pointer_type (td_type);
|
||||
loc = LOCATION_LOCUS (loc);
|
||||
|
||||
/* Create the structure type. */
|
||||
ret = make_node (RECORD_TYPE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user