Bug 149469 - assembler messages when trying to compile VNC with GCC 4
assembler messages when trying to compile VNC with GCC 4
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: gcc4 (Show other bugs)
rawhide
x86_64 Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-02-23 08:08 EST by Tim Waugh
Modified: 2007-11-30 17:11 EST (History)
0 users

See Also:
Fixed In Version: 4.0.0-0.30
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-03-01 07:12:29 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


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


External Trackers
Tracker ID Priority Status Summary Last Updated
GNU Compiler Collection 20206 None None None Never

  None (edit)
Description Tim Waugh 2005-02-23 08:08:25 EST
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 08:08:26 EST
Created attachment 111332 [details]
CConn.ii
Comment 2 Jakub Jelinek 2005-02-24 10:25:30 EST
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 12:26:24 EST
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.