Bug 149469 - assembler messages when trying to compile VNC with GCC 4
Summary: assembler messages when trying to compile VNC with GCC 4
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc4
Version: rawhide
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-02-23 13:08 UTC by Tim Waugh
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version: 4.0.0-0.30
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-03-01 12:12:29 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
CConn.ii (583.86 KB, text/plain)
2005-02-23 13:08 UTC, Tim Waugh
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 20206 0 None None None Never

Description Tim Waugh 2005-02-23 13:08:25 UTC
Description of problem:
I get assembler messages when trying to compile VNC with CC=gcc4 CXX=g++4.

Version-Release number of selected component (if applicable):
gcc4-4.0.0-0.27

How reproducible:
100%

Steps to Reproduce:
g++4 -c CConn.ii

Comment 1 Tim Waugh 2005-02-23 13:08:26 UTC
Created attachment 111332 [details]
CConn.ii

Comment 2 Jakub Jelinek 2005-02-24 15:25:30 UTC
Simplified into:
void bar (int);
struct S { S (); virtual ~S (); };
struct T { virtual void foo (int) = 0; };
struct U : public S, public T
{
  bool a;
  U () {}
  virtual ~U () {}
  virtual void foo (int x)
  {
    switch (x)
      {
      case 12:
        break;
      case 9:
        bar (7);
        break;
      case 10:
        bar (12);
        break;
      case 4:
        bar (18);
        break;
      case 2:
        bar (26);
        break;
      }
  }
};
U u;

which fails with g++4 -c 149469.C -m32 as well as -m64.
Seems to be a GCC fault, which messed up COMDAT section names.
there is a thunk in:
.section .gnu.linkonce.t._ZN1U3fooEi,"axG",@progbits,_ZThn8_N1U3fooEi,comdat
as well as start of _ZN1U3fooEi, then it switches temporarily to
.section .gnu.linkonce.r._ZN1U3fooEi,"aG",@progbits,_ZN1U3fooEi,comdat
section and the remainder of _ZN1U3fooEi is put into:
.section .gnu.linkonce.t._ZN1U3fooEi,"axG",@progbits,_ZN1U3fooEi,comdat
which is a different section from the one where the functions tarts (different
COMDAT group).

Comment 3 Jakub Jelinek 2005-02-27 17:26:24 UTC
Fixed in CVS, ought to appear in gcc-4.0.0-0.x hopefully tomorrow.


Note You need to log in before you can comment on or make changes to this bug.