https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77823

            Bug ID: 77823
           Summary: [7 Regression] ICE: in ubsan_encode_value, at
                    ubsan.c:137 with -fsanitize=undefined and vector types
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
                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
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu
             Build: x86_64-pc-linux-gnu

Created attachment 39734
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39734&action=edit
reduced testcase

Compiler output:
$ x86_64-pc-linux-gnu-gcc -fsanitize=undefined -Wno-psabi testcase.c 
testcase.c: In function 'foov':
testcase.c:7:3: internal compiler error: in ubsan_encode_value, at ubsan.c:137
   return v << 30;
   ^~~~~~
0xc0647c ubsan_encode_value(tree_node*, bool)
        /repo/gcc-trunk/gcc/ubsan.c:137
0x6eac0b ubsan_instrument_shift(unsigned int, tree_code, tree_node*,
tree_node*)
        /repo/gcc-trunk/gcc/c-family/c-ubsan.c:192
0x628bc9 build_binary_op(unsigned int, tree_code, tree_node*, tree_node*, int)
        /repo/gcc-trunk/gcc/c/c-typeck.c:11764
0x62d3b3 parser_build_binary_op(unsigned int, tree_code, c_expr, c_expr)
        /repo/gcc-trunk/gcc/c/c-typeck.c:3616
0x63dab3 c_parser_binary_expression
        /repo/gcc-trunk/gcc/c/c-parser.c:6855
0x63dea5 c_parser_conditional_expression
        /repo/gcc-trunk/gcc/c/c-parser.c:6495
0x63e5a0 c_parser_expr_no_commas
        /repo/gcc-trunk/gcc/c/c-parser.c:6412
0x63ec32 c_parser_expression
        /repo/gcc-trunk/gcc/c/c-parser.c:8608
0x63f639 c_parser_expression_conv
        /repo/gcc-trunk/gcc/c/c-parser.c:8641
0x65956f c_parser_statement_after_labels
        /repo/gcc-trunk/gcc/c/c-parser.c:5334
0x65ae01 c_parser_compound_statement_nostart
        /repo/gcc-trunk/gcc/c/c-parser.c:4944
0x65b65e c_parser_compound_statement
        /repo/gcc-trunk/gcc/c/c-parser.c:4777
0x657053 c_parser_declaration_or_fndef
        /repo/gcc-trunk/gcc/c/c-parser.c:2176
0x662a03 c_parser_external_declaration
        /repo/gcc-trunk/gcc/c/c-parser.c:1574
0x663489 c_parser_translation_unit
        /repo/gcc-trunk/gcc/c/c-parser.c:1454
0x663489 c_parse_file()
        /repo/gcc-trunk/gcc/c/c-parser.c:18173
0x6ca0e2 c_common_parse_file()
        /repo/gcc-trunk/gcc/c-family/c-opts.c:1072
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.


$ x86_64-pc-linux-gnu-gcc -v                                         
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-240623-checking-yes-rtl-df-extra-nographite-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--without-cloog --without-ppl --without-isl --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
--with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-240623-checking-yes-rtl-df-extra-nographite-amd64
Thread model: posix
gcc version 7.0.0 20160929 (experimental) (GCC) 

The failing line is:
ubsan.c
134:      return fold_convert (pointer_sized_int_node, t);
135:    }
136:       default:
137:    gcc_unreachable ();
138:       }
139:   else
140:     {

Reply via email to