[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ld resolving different types
From: |
Norman Goldstein |
Subject: |
ld resolving different types |
Date: |
Sat, 15 Feb 2020 16:51:14 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
LD version:
GNU ld version 2.31.1-37.fc30
Platform:
Linux 5.4.17-100.fc30.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
Compile/Link command:
gcc tlink.cpp tlink2.cpp -o tlink -lstdc++
The programs compiles and links without warning or error, but resolves
/extern int foo/ with /double foo/. The result of running the program
is, of course, garbage:
foo= -858993459
The program contains only 1 definition for foo (the extern statement is
a declaration), so the program is not violating the One Definition Rule.
Thank you.
tlink.cpp
Description: Text Data
tlink2.cpp
Description: Text Data
- ld resolving different types,
Norman Goldstein <=