mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 00:17:01 +00:00
Implement protected visibility. This partly implements PR1363. Linker
should be taught to deal with protected symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36565 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1532,6 +1532,7 @@ void BytecodeReader::ParseFunctionBody(Function* F) {
|
||||
switch (VisibilityID) {
|
||||
case 0: Visibility = GlobalValue::DefaultVisibility; break;
|
||||
case 1: Visibility = GlobalValue::HiddenVisibility; break;
|
||||
case 2: Visibility = GlobalValue::ProtectedVisibility; break;
|
||||
default:
|
||||
error("Unknown visibility type: " + utostr(VisibilityID));
|
||||
Visibility = GlobalValue::DefaultVisibility;
|
||||
@@ -1767,6 +1768,7 @@ void BytecodeReader::ParseModuleGlobalInfo() {
|
||||
switch (VisibilityID) {
|
||||
case 0: Visibility = GlobalValue::DefaultVisibility; break;
|
||||
case 1: Visibility = GlobalValue::HiddenVisibility; break;
|
||||
case 2: Visibility = GlobalValue::ProtectedVisibility; break;
|
||||
default:
|
||||
error("Unknown visibility type: " + utostr(VisibilityID));
|
||||
Visibility = GlobalValue::DefaultVisibility;
|
||||
|
||||
@@ -957,8 +957,9 @@ static unsigned getEncodedLinkage(const GlobalValue *GV) {
|
||||
static unsigned getEncodedVisibility(const GlobalValue *GV) {
|
||||
switch (GV->getVisibility()) {
|
||||
default: assert(0 && "Invalid visibility!");
|
||||
case GlobalValue::DefaultVisibility: return 0;
|
||||
case GlobalValue::HiddenVisibility: return 1;
|
||||
case GlobalValue::DefaultVisibility: return 0;
|
||||
case GlobalValue::HiddenVisibility: return 1;
|
||||
case GlobalValue::ProtectedVisibility: return 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user