Bug 920269
| Summary: | internal compiler error | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | gallone | ||||
| Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||
| Status: | CLOSED WONTFIX | QA Contact: | qe-baseos-tools-bugs | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 5.7 | CC: | jason, law, mpolacek | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | i686 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2013-03-23 01:56:28 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
gallone
2013-03-11 16:32:01 UTC
Reduced testcase for -g:
class A
{
void a1 ();
template <class T>
void a2 ();
template <class T, class U>
void a2 ();
template <class V>
void a3 ();
};
template <class T, class U>
struct B
{
typedef T TT;
};
template <class T, unsigned int V = 2>
class C {};
template <class T, class U>
class D {};
template <class T, class U>
struct E : public D <T, U>
{
struct F {};
typedef F G __attribute__ ((aligned (64)));
};
template <class V>
struct H
{
typedef float I;
};
template <class T>
void
A::a3 ()
{
typedef C <T, 3> J;
typedef E <J, J> K;
typename K::L l = K::k ();
}
template <class T, class U>
void
A::a2 ()
{
typedef B <T, U> TraitsType;
typedef typename TraitsType::TT CommonCVoxelType;
typedef typename H <CommonCVoxelType>::I I;
this->a3 <I> ();
}
template <class T>
void
A::a2 ()
{
a2 <T, double> ();
}
void
A::a1 ()
{
a2 <double> ();
}
I bet the typedef of a struct with aligned attribute is the problem, that had been supported really badly in older compilers.
Indeed, http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128488 fixed this, not sure how risky the backport would be at this point. Setting proper component. Based on feedback from Jakub & Jason, the fix for this problem is too risky to backport to the gcc 4.1 toolchain on Red Hat Enterprise Linux 5. The gcc44 compiler for Red Hat Enterprise Linux 5 as well as the Developer Toolset releases for Red Hat Enterprise Linux 5 handle this code correctly. |