This is the mail archive of the gcc-prs@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]

c++/7598: offsetof broken


>Number:         7598
>Category:       c++
>Synopsis:       offsetof broken
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 14 08:56:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        3.3 20020814 (experimental)
>Organization:
>Environment:
System: Linux sykes 2.4.18-SMP #1 SMP Thu May 16 09:03:14 UTC 2002 ia64 unknown unknown GNU/Linux
Architecture: ia64

	
host: ia64-suse-linux-gnu
build: ia64-suse-linux-gnu
target: ia64-suse-linux-gnu
configured with: ../configure --host=ia64-suse-linux --enable-shared --enable-threads --with-system-zlib
>Description:
The C++ compiler cannot handle offsetof.
>How-To-Repeat:
$ cat offsetof.cc
typedef long unsigned int size_t;
struct sigcontext
{
  unsigned long int sc_gr[32];
};
typedef struct ucontext
{
  union
  {
    struct
    {
      unsigned long _pad[((size_t) &((struct sigcontext *)0)->sc_gr[0])];
    } _uc;
  } _u;
} ucontext_t;
$ /tmp/cvs/gcc-20020814/Build/gcc/xgcc -B/tmp/cvs/gcc-20020814/Build/gcc/ -S offsetof.cc -v
Reading specs from /tmp/cvs/gcc-20020814/Build/gcc/specs
Configured with: ../configure --host=ia64-suse-linux --enable-shared --enable-threads --with-system-zlib
Thread model: posix
gcc version 3.3 20020814 (experimental)
 /tmp/cvs/gcc-20020814/Build/gcc/cc1plus -quiet -v -iprefix /tmp/cvs/gcc-20020814/Build/gcc/../lib/gcc-lib/ia64-suse-linux/3.3/ -isystem /tmp/cvs/gcc-20020814/Build/gcc/include -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 -D__gnu_linux__ -D__linux -D__linux__ -D_LONGLONG -Dlinux -Dunix -D__gnu_linux__ -D__linux -D__linux__ -D_LONGLONG -D__linux__ -D__unix__ -D__linux -D__unix -Asystem=linux -D_GNU_SOURCE -Acpu=ia64 -Amachine=ia64 -D__ia64 -D__ia64__ -D_LP64 -D__LP64__ -D__ELF__ offsetof.cc -D__GNUG__=3 -quiet -dumpbase offsetof.cc -auxbase offsetof -version -o offsetof.s
GNU C++ version 3.3 20020814 (experimental) (ia64-suse-linux)
        compiled by GNU C version 3.3 20020814 (experimental).
ignoring nonexistent directory "/tmp/cvs/gcc-20020814/Build/lib/gcc-lib/ia64-suse-linux/3.3/../../../../include/c++/3.3"
ignoring nonexistent directory "/tmp/cvs/gcc-20020814/Build/lib/gcc-lib/ia64-suse-linux/3.3/../../../../include/c++/3.3/ia64-suse-linux"
ignoring nonexistent directory "/tmp/cvs/gcc-20020814/Build/lib/gcc-lib/ia64-suse-linux/3.3/../../../../include/c++/3.3/backward"
ignoring nonexistent directory "/tmp/cvs/gcc-20020814/Build/lib/gcc-lib/ia64-suse-linux/3.3/include"
ignoring nonexistent directory "/tmp/cvs/gcc-20020814/Build/lib/gcc-lib/ia64-suse-linux/3.3/../../../../ia64-suse-linux/include"
ignoring nonexistent directory "/usr/local/include/c++/3.3"
ignoring nonexistent directory "/usr/local/include/c++/3.3/ia64-suse-linux"
ignoring nonexistent directory "/usr/local/include/c++/3.3/backward"
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/lib/gcc-lib/ia64-suse-linux/3.3/include"
ignoring nonexistent directory "/usr/local/ia64-suse-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /tmp/cvs/gcc-20020814/Build/gcc/include
 /usr/local/include
 /usr/include
End of search list.
offsetof.cc:12: error: size of member `_pad' is not constant
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:


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