https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81607
Bug ID: 81607 Summary: Conditional operator: "type mismatch in shift expression" error Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: babokin at gmail dot com Target Milestone: --- gcc trunk, rev250630, x86_64. I see a lot of crashes involving conditional operator and struct field access. I see at least 7 different kind of crashes. They may be related, so I'm filing only this one for now to avoid spamming the bug tracker. After fixing this one, I'll proceed with others if they are not fixed. > cat f.cpp int a; struct b { long c : 32; } d; char f = (903092 ? int(d.c) : 0) << a; > g++ -c f.cpp f.cpp: In function ‘void __static_initialization_and_destruction_0(int, int)’: f.cpp:5:38: error: type mismatch in shift expression char f = (903092 ? int(d.c) : 0) << a; ^ int long int int _4 = _2 << a.0_3; f.cpp:5:38: internal compiler error: verify_gimple failed 0xf5e57d verify_gimple_in_seq(gimple*) ../../gcc_svn_intel/gcc/tree-cfg.c:4975 0xd1d2ad gimplify_body(tree_node*, bool) ../../gcc_svn_intel/gcc/gimplify.c:12589 0xd1d47c gimplify_function_tree(tree_node*) ../../gcc_svn_intel/gcc/gimplify.c:12679 0xbb64b7 cgraph_node::analyze() ../../gcc_svn_intel/gcc/cgraphunit.c:668 0xbb8b73 analyze_functions ../../gcc_svn_intel/gcc/cgraphunit.c:1129 0xbb9a12 symbol_table::finalize_compilation_unit() ../../gcc_svn_intel/gcc/cgraphunit.c:2607 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.