This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug sanitizer/63983] New: compile time hog with -fsanitize=undefined


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]