This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug sanitizer/63983] New: compile time hog with -fsanitize=undefined
- From: "Joost.VandeVondele at mat dot ethz.ch" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 19 Nov 2014 20:52:19 +0000
- Subject: [Bug sanitizer/63983] New: compile time hog with -fsanitize=undefined
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63983
Bug ID: 63983
Summary: compile time hog with -fsanitize=undefined
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: sanitizer
Assignee: unassigned at gcc dot gnu.org
Reporter: Joost.VandeVondele at mat dot ethz.ch
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org
Created attachment 34042
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34042&action=edit
testcase
The attached testcase needs a very long time to compile (well didn't finish in
my tests), if compiled with '-c -g -O1 -fno-omit-frame-pointer
-fsanitize=undefined -fno-sanitize=object-size bug.f90', while it takes ~10s
without '-fsanitize=undefined -fno-sanitize=object-size'.
It seems to be some bad interaction between var tracking and ubsan:
> pstack 40731
#0 0x0000000000dc8192 in set_slot_part(dataflow_set_def*, rtx_def*,
variable_def**, void*, long, var_init_status, rtx_def*) ()
#1 0x0000000000dca892 in canonicalize_values_star(variable_def**,
dataflow_set_def*) ()
#2 0x0000000000dcb34f in dataflow_set_merge(dataflow_set_def*,
dataflow_set_def*) ()
#3 0x0000000000dd4905 in vt_find_locations() ()
#4 0x0000000000dd4d35 in variable_tracking_main() ()
#5 0x0000000000a6095f in execute_one_pass(opt_pass*) ()
#6 0x0000000000a60e26 in execute_pass_list_1(opt_pass*) ()
#7 0x0000000000a60e38 in execute_pass_list_1(opt_pass*) ()
#8 0x0000000000a60e38 in execute_pass_list_1(opt_pass*) ()
#9 0x0000000000a60e81 in execute_pass_list(function*, opt_pass*) ()
#10 0x00000000007731a2 in cgraph_node::expand() ()
#11 0x00000000007748f3 in symbol_table::compile() ()
#12 0x0000000000776185 in symbol_table::finalize_compilation_unit() ()
#13 0x00000000009c59e6 in write_global_declarations() ()
#14 0x0000000000b2245e in compile_file() ()
#15 0x0000000000b24739 in toplev::main(int, char**) ()
#16 0x000000000124df59 in main ()
> time gfortran -c -g -O1 -fno-omit-frame-pointer -fsanitize=undefined -fno-sanitize=object-size bug.f90