https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99064
Bug ID: 99064 Summary: [11 regression] ICE analyzer::print_mem_ref Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: dimhen at gmail dot com Target Milestone: --- gcc version 11.0.0 20210104 (experimental) [master revision 7f2b7317566:9da1da01aec:39bd65faee3bafe2dc067e5fedb5079896551a8a] (GCC) r11-6442 PASS gcc version 11.0.0 20210108 (experimental) [master revision bdcde150450:e18dcf9fcae:b407f233d7c18534fbfe8f74af7f0232498fb0c4] (GCC) r11-6550 FAIL gcc version 11.0.0 20210210 (experimental) [master revision bd0e37f68a3:deed5164277:72932511053596091ad291539022b51d9f2ba418] (GCC) r11-7168 FAIL $ cat x.ii template <typename> struct iterator_traits; template <typename _Tp> struct iterator_traits<_Tp *> { typedef _Tp &reference; }; template <typename _Iterator> struct __normal_iterator { _Iterator _M_current; __normal_iterator(_Iterator &__i) : _M_current(__i) {} typename iterator_traits<_Iterator>::reference operator*() { return *_M_current; } }; template <typename> struct allocator; template <typename> struct allocator_traits; template <typename _Tp> struct allocator_traits<allocator<_Tp>> { using pointer = _Tp *; }; struct TPkcs11Token; struct __alloc_traits : allocator_traits<allocator<TPkcs11Token>> {}; struct _Vector_base { typedef __alloc_traits::pointer pointer; struct { pointer _M_start; } _M_impl; }; struct : _Vector_base { __normal_iterator<pointer> begin() { return _M_impl._M_start; } } list_tokens_token_list; struct TPkcs11Token { int *add_info; }; void list_tokens() { for (__normal_iterator base = list_tokens_token_list.begin();;) { int *add_info = new int; (*base).add_info = add_info; } } // cvise'd from private codebase $ gcc_current/bin/g++ -fpreprocessed -O2 -fanalyzer -c x.ii during IPA pass: analyzer x.ii:34:22: internal compiler error: Segmentation fault 34 | (*base).add_info = add_info; | ~~~~~~~~~~~~~~~~~^~~~~~~~~~ 0x12baa3f crash_signal /home/dimhen/src/gcc_current/gcc/toplev.c:327 0xd7f150 print_mem_ref /home/dimhen/src/gcc_current/gcc/c-family/c-pretty-print.c:2006 0xb7b035 dump_expr /home/dimhen/src/gcc_current/gcc/cp/error.c:2367 0xb80640 expr_to_string(tree_node*) /home/dimhen/src/gcc_current/gcc/cp/error.c:3188 0xb80d7c cp_printer /home/dimhen/src/gcc_current/gcc/cp/error.c:4356 0x1f28c86 pp_format(pretty_printer*, text_info*) /home/dimhen/src/gcc_current/gcc/pretty-print.c:1475 0x16533cc ana::evdesc::event_desc::formatted_print(char const*, ...) const /home/dimhen/src/gcc_current/gcc/analyzer/pending-diagnostic.cc:64 0x1eb67a6 ana::warning_event::get_desc(bool) const /home/dimhen/src/gcc_current/gcc/analyzer/checker-path.cc:885 0x1eb60f2 ana::checker_event::prepare_for_emission(ana::checker_path*, ana::pending_diagnostic*, diagnostic_event_id_t) /home/dimhen/src/gcc_current/gcc/analyzer/checker-path.cc:149 0x1ec64f3 ana::checker_path::prepare_for_emission(ana::pending_diagnostic*) /home/dimhen/src/gcc_current/gcc/analyzer/checker-path.h:559 0x1ec64f3 ana::diagnostic_manager::emit_saved_diagnostic(ana::exploded_graph const&, ana::saved_diagnostic const&, ana::exploded_path const&, gimple const*, int) /home/dimhen/src/gcc_current/gcc/analyzer/diagnostic-manager.cc:668 0x1ec8a80 ana::dedupe_winners::emit_best(ana::diagnostic_manager*, ana::exploded_graph const&) /home/dimhen/src/gcc_current/gcc/analyzer/diagnostic-manager.cc:569 0x1ec68c8 ana::diagnostic_manager::emit_saved_diagnostics(ana::exploded_graph const&) /home/dimhen/src/gcc_current/gcc/analyzer/diagnostic-manager.cc:622 0x1649d32 ana::impl_run_checkers(ana::logger*) /home/dimhen/src/gcc_current/gcc/analyzer/engine.cc:4744 0x164aafe ana::run_checkers() /home/dimhen/src/gcc_current/gcc/analyzer/engine.cc:4801 0x163d568 execute /home/dimhen/src/gcc_current/gcc/analyzer/analyzer-pass.cc:87 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $ gcc_current/bin/g++ -v Using built-in specs. COLLECT_GCC=/home/dimhen/arch-gcc/gcc_current/bin/g++ COLLECT_LTO_WRAPPER=/home/dimhen/arch-gcc/gcc_current/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none Target: x86_64-pc-linux-gnu Configured with: /home/dimhen/src/gcc_current/configure --prefix=/home/dimhen/arch-gcc/gcc_current --enable-checking=yes,df,fold,rtl,extra --enable-languages=c,c++,lto --disable-multilib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=native Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.0.0 20210210 (experimental) [master revision bd0e37f68a3:deed5164277:72932511053596091ad291539022b51d9f2ba418] (GCC)