diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-05-01 19:02:03 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-05-01 19:02:03 +0000 |
| commit | ea9f9d4030ec110862c53a5ca8b63999c88bc1a5 (patch) | |
| tree | a09343e8bdf814698c13d6876e0079e8785d763b /llvm | |
| parent | cd1a98bf749f396288715bcf719fbbca78e3199e (diff) | |
| download | bcm5719-llvm-ea9f9d4030ec110862c53a5ca8b63999c88bc1a5.tar.gz bcm5719-llvm-ea9f9d4030ec110862c53a5ca8b63999c88bc1a5.zip | |
Don't propagate StorageClass and ComplexType to aliases.
This matches gas' behaviour on COFF.
I think that this yak is now sufficiently shaved for aliases with offset
to work.
llvm-svn: 207786
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/MC/WinCOFFObjectWriter.cpp | 3 | ||||
| -rw-r--r-- | llvm/test/MC/COFF/alias.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/COFF/symbol-alias.s | 2 |
3 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/MC/WinCOFFObjectWriter.cpp b/llvm/lib/MC/WinCOFFObjectWriter.cpp index 5cc239dce6e..7ae83134f3c 100644 --- a/llvm/lib/MC/WinCOFFObjectWriter.cpp +++ b/llvm/lib/MC/WinCOFFObjectWriter.cpp @@ -439,8 +439,7 @@ void WinCOFFObjectWriter::DefineSymbol(MCSymbolData const &SymbolData, coff_symbol->MCData = &SymbolData; } else { - const MCSymbolData &ResSymData = - Assembler.getSymbolData(Symbol.AliasedSymbol()); + const MCSymbolData &ResSymData = Assembler.getSymbolData(Symbol); const MCSymbol *Base = Layout.getBaseSymbol(Symbol); coff_symbol->Data.Value = getSymbolValue(ResSymData, Layout); diff --git a/llvm/test/MC/COFF/alias.s b/llvm/test/MC/COFF/alias.s index f6f6d46bf6a..dc4f65acf74 100644 --- a/llvm/test/MC/COFF/alias.s +++ b/llvm/test/MC/COFF/alias.s @@ -68,7 +68,7 @@ weak_aliased_to_external = external2 // CHECK-NEXT: Section: .text (1) // CHECK-NEXT: BaseType: Null (0x0) // CHECK-NEXT: ComplexType: Null (0x0) -// CHECK-NEXT: StorageClass: Static (0x3) +// CHECK-NEXT: StorageClass: External (0x2) // CHECK-NEXT: AuxSymbolCount: 0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { diff --git a/llvm/test/MC/COFF/symbol-alias.s b/llvm/test/MC/COFF/symbol-alias.s index ccada3793ca..71ccec31b82 100644 --- a/llvm/test/MC/COFF/symbol-alias.s +++ b/llvm/test/MC/COFF/symbol-alias.s @@ -51,7 +51,7 @@ _bar_alias = _bar // CHECK-NEXT: Value: [[FOO_VALUE]] // CHECK-NEXT: Section: [[FOO_SECTION_NUMBER]] // CHECK-NEXT: BaseType: [[FOO_SIMPLE_TYPE]] -// CHECK-NEXT: ComplexType: [[FOO_COMPLEX_TYPE]] +// CHECK-NEXT: ComplexType: Null (0x0) // CHECK-NEXT: StorageClass: [[FOO_STORAGE_CLASS]] // CHECK-NEXT: AuxSymbolCount: [[FOO_NUMBER_OF_AUX_SYMBOLS]] |

