http://llvm.org/bugs/show_bug.cgi?id=8457
Summary: clang++ emits hidden symbols instead of extern.
Product: clang
Version: trunk
Platform: Macintosh
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: C++
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected], [email protected]
When using the -fvisibility=hidden flag, clang tag structs as hidden (even if
declared in extern "C" block) and propagate this visibility to the functions
that use them as arguments, even is they are declared explicitly extern.
--------------- Foo.cpp ------------------
struct AudioTimeStamp { int field; };
void __attribute__((visibility("default"))) Foo(struct AudioTimeStamp
*timeStamp) { }
----------------------------------------
clang++ -S -emit-llvm -fvisibility=hidden Foo.cpp
--------------- Foo.s ------------------
…
define hidden void @_Z3FooP14AudioTimeStamp(%struct.AudioTimeStamp* %timeStamp)
nounwind ssp {
…
----------------------------------------
If compiled in C mode or with GCC, the Foo symbol is properly exported.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs