Bug 522577
Summary: | qt build fails without -fno-var-tracking-assignments | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Rex Dieter <rdieter> | ||||
Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | low | ||||||
Version: | rawhide | CC: | aoliva, jakub | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2009-09-11 18:04:45 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 522576 | ||||||
Attachments: |
|
Description
Rex Dieter
2009-09-10 18:17:40 UTC
Created attachment 360561 [details] rh522577.ii.bz2 Reproduceable even with x86_64-linux -> powerpc64-linux cross: ./cc1plus -m64 -g -O2 rh522577.ii -quiet qsvghandler.cpp: In function ‘bool parsePathDataFast(const QStringRef&, QPainterPath&)’: qsvghandler.cpp:1659: internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:1208 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. simplify_rtx is called on: (zero_extend:DI (const_int 1 [0x1])) expand_debug_expr creates: (zero_extend:DI (subreg:SI (reg/v:DI 314 [ l+-4 ]) 4)) then propagate_for_debug -> propagate_for_debug_subst replaces the subreg with (const_int 1), but as it doesn't know it is inside of ZERO_EXTEND that can't be applied to a VOIDmode constant, it creates invalid rtx. DEBUG_INSNs don't have any kind of validation, so we end up with this. I wonder if we shouldn't when replacing something non-VOIDmode with VOIDmode constant in propagate_for_debug_subst wrap it using wrap_constant and perhaps if we find out we've changed something try to simplify it (but that as an optimization only). We already deal with SUBREGs in propagate_for_debug_subst, we might as well deal with ZERO_EXTEND and other unary expressions as well. Wrapping ought to work as well. Should be fixed in gcc-4.4.1-13. |