This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/14661] New: ?: operator result structure's member array can't be assigned to pointer
- From: "dmj36 at email dot byu dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Mar 2004 01:19:38 -0000
- Subject: [Bug c/14661] New: ?: operator result structure's member array can't be assigned to pointer
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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