bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug in the linker


From: johnny dude
Subject: Bug in the linker
Date: Wed, 21 Aug 2019 14:59:15 +0300

Hi,

I found a possible bug, ld does not produce an error message: "multiple
definitions" when it is a constructor defined in the structure declaration.

How to reproduce it:
I'm using the gcc:9.2.0 docker, created two files and the result listed
below:

root@44027fc60f45:/# cat a.cpp
#include <iostream>
struct A { int n; A(int n) : n(n + 10) {} };
int a(int n) { return A(n).n; }
extern int b(int n);
int main(int, char**) { std::clog << a(5) << ", " << b(5) << "\n"; }

root@44027fc60f45:/# cat b.cpp
#include <iostream>
struct A { int n; A(int n) : n(n + 100) {} };
int b(int n) { return A(n).n; }

root@44027fc60f45:/# g++ a.cpp b.cpp -o ab && ./ab
15, 15

root@44027fc60f45:/# g++ b.cpp a.cpp -o ba && ./ba
105, 105
root@44027fc60f45:/#


reply via email to

[Prev in Thread] Current Thread [Next in Thread]