This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/14661] New: ?: operator result structure's member array can't be assigned to pointer


Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/specs
Configured with: /netrel/src/gcc-3.3.1-2/configure --enable-
languages=c,c++,f77,java --enable-libgcj --enable-threads=posix --with-system-
zlib --enable-nls --without-included-gettext --enable-interpreter --enable-sjlj-
exceptions --disable-version-specific-runtime-libs --enable-shared --build=i686-
pc-linux --host=i686-pc-cygwin --target=i686-pc-cygwin --prefix=/usr --exec-
prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --
includedir=/nonexistent/include --libexecdir=/usr/sbin
Thread model: posix
gcc version 3.3.1 (cygming special)
 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/cc1.exe -E -quiet -v -D__GNUC__=3 -
D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=1 -D__CYGWIN32__ -D__CYGWIN__ -Dunix -
D__unix__ -D__unix -idirafter /usr/lib/gcc-lib/i686-pc-
cygwin/3.3.1/../../../../include/w32api -idirafter /usr/lib/gcc-lib/i686-pc-
cygwin/3.3.1/../../../../i686-pc-cygwin/lib/../../include/w32api breaks-gcc.c 
breaks-gcc.i
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/i686-pc-cygwin/include"
ignoring duplicate directory "/usr/i686-pc-cygwin/lib/../../include/w32api"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/include
 /usr/include
 /usr/include/w32api
End of search list.
 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/cc1.exe -fpreprocessed breaks-gcc.i -
quiet -dumpbase breaks-gcc.c -auxbase breaks-gcc -version -o breaks-gcc.s
GNU C version 3.3.1 (cygming special) (i686-pc-cygwin)
	compiled by GNU C version 3.3.1 (cygming special).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
breaks-gcc.c: In function `main':
breaks-gcc.c:23: internal compiler error: in emit_move_insn, at expr.c:3156
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.


Source file (breaks-gcc.i):

# 1 "breaks-gcc.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "breaks-gcc.c"
typedef unsigned short Uint16;

typedef struct Data_Struct {
    Uint16 lever_arm[3];
} Data_Struct;

typedef enum Local_Foreign_Type {
    LOCAL = 1,
    FOREIGN = 2
} Local_Foreign_Type;

Data_Struct Local_Data = { { LOCAL, LOCAL, LOCAL } };
Data_Struct Foreign_Data = { { FOREIGN, FOREIGN, FOREIGN } };

int main(int argc, char *argv[]) {
    Local_Foreign_Type source = LOCAL;

    Uint16 *foo = (((((source) == FOREIGN) ? Foreign_Data : 
Local_Data)).lever_arm);
# 43 "breaks-gcc.c"
    return 0;
}

-- 
           Summary: ?: operator result structure's member array can't be
                    assigned to pointer
           Product: gcc
           Version: 3.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dmj36 at email dot byu dot edu
                CC: gcc-bugs at gcc dot gnu dot org


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]