This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/37267] New: #pragma inside structure initialization causes error
- From: "neale at sinenomine dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Aug 2008 18:50:35 -0000
- Subject: [Bug c/37267] New: #pragma inside structure initialization causes error
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
We?ve implemented the #pragma ident which simply generates information in the
comment section of an elf object. Solaris uses it throughout its source tree.
However, it?s causing some grief when used in a manner like this:
#include <stdio.h>
typedef struct X {
int a;
int b;
} X_t;
int z;
X_t x[] = {
#pragma weak Y = z
{0,1},
{2,3}
};
int
main(int argc, char **argv)
{
printf("%x",x[0].a);
return x[1].b;
}
I?ve replaced ident with weak so it will run on other platforms. For gcc 4.0.1
there?s no problem but with 4.2.3 I get the following:
/tmp/test.c:11: error: expected expression before '#pragma'
The context in which I am seeing a problem is that the C code does something
like this:
tuple_t x[] = {
#include ?a.h?
#include ?b.h?
};
Each of the ?.h? files have the contents of the structure but they also contain
a #pragma ident which causes the compiler to emit the error.
Neale
--
Summary: #pragma inside structure initialization causes error
Product: gcc
Version: 4.2.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: neale at sinenomine dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37267