I get an "undefined reference" error when linking two files but that variable
is static.  This only happens with gcc 4.2, and only when I enable both -g and
-O1 (or higher).

(sid)473:[EMAIL PROTECTED]: ~] cat test.c
static const char utf8_skip_data[1] = {1};
static const char * const gconf_g_utf8_skip = utf8_skip_data;
(sid)474:[EMAIL PROTECTED]: ~] cat main.c
int main() {
}
(sid)475:[EMAIL PROTECTED]: ~] gcc -c -o main.o main.c
(sid)476:[EMAIL PROTECTED]: ~] gcc -c -g -O2 -o test.o test.c
(sid)477:[EMAIL PROTECTED]: ~] gcc main.o test.o
test.o:(.debug_info+0x93): undefined reference to `utf8_skip_data'
collect2: ld returned 1 exit status
zsh: exit 1     gcc main.o test.o
(sid)478:[EMAIL PROTECTED]: ~] gcc-4.1 -c -g -O2 -o test.o test.c
(sid)479:[EMAIL PROTECTED]: ~] gcc main.o test.o
(sid)480:[EMAIL PROTECTED]: ~] gcc -c -g -O0 -o test.o test.c
(sid)481:[EMAIL PROTECTED]: ~] gcc main.o test.o
(sid)482:[EMAIL PROTECTED]: ~]

This is with 4.2.0 20060419.  20060517 shows the same.


-- 
           Summary: [4.2 regression] bogus undefined reference error to
                    static var with -g and -O
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tbm at cyrius dot com
 GCC build triplet: powerpc-linux-gnu
  GCC host triplet: powerpc-linux-gnu
GCC target triplet: powerpc-linux-gnu


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

Reply via email to