With current trunk (rev. 140784) I get following internal error (g++ only).
The error message is similar to bug 37418.
Maybe it's the same problem, but maybe it's not.

$ /holger/gcc/gnu/trunk/install/bin/g++ -c t.c
t.c: In function unsigned int bar(unsigned int, const void*, RefId):
t.c:9: error: non-trivial conversion at assignment
unsigned int
const <unnamed-unsigned:24>
iftmp.0 = refId.refSector;

t.c:9: error: non-trivial conversion at assignment
unsigned int
<unnamed-unsigned:24>
iftmp.0 = refPtr->refSector;

t.c:9: internal compiler error: verify_gimple failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Exit 1


Source:

typedef struct
{
  unsigned refKind : 8;
  unsigned refSector : 24;
} RefId;

unsigned foo (const unsigned x);

unsigned bar (const int cond, const RefId * const refPtr, const RefId refId)
{
  return foo ( cond ? ((refId).refSector) : ((*refPtr).refSector) );
}


-- 
           Summary: g++ internal error: verify_gimple failed
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: holger dot hopp at sap dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37682

Reply via email to