mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-03-04 02:18:46 +00:00
[MC] Do not consider .ifdef/.ifndef as a use
This is allowed by GAS and seems correct. Differential Revision: https://reviews.llvm.org/D55439 llvm-svn: 352414
This commit is contained in:
parent
2379ffe16f
commit
34a4acdde6
@ -5038,9 +5038,9 @@ bool AsmParser::parseDirectiveIfdef(SMLoc DirectiveLoc, bool expect_defined) {
|
||||
MCSymbol *Sym = getContext().lookupSymbol(Name);
|
||||
|
||||
if (expect_defined)
|
||||
TheCondState.CondMet = (Sym && !Sym->isUndefined());
|
||||
TheCondState.CondMet = (Sym && !Sym->isUndefined(false));
|
||||
else
|
||||
TheCondState.CondMet = (!Sym || Sym->isUndefined());
|
||||
TheCondState.CondMet = (!Sym || Sym->isUndefined(false));
|
||||
TheCondState.Ignore = !TheCondState.CondMet;
|
||||
}
|
||||
|
||||
|
@ -27,3 +27,17 @@ defined:
|
||||
.else
|
||||
.byte 1
|
||||
.endif
|
||||
|
||||
# .ifdef directive does not count as a use, so ensure redefinition is permitted
|
||||
.set var, 1
|
||||
.ifdef var
|
||||
.set var, 2
|
||||
.else
|
||||
.set var, 3
|
||||
.endif
|
||||
# CHECK: .byte 2
|
||||
.byte var
|
||||
|
||||
.set var, 4
|
||||
# CHECK: .byte 4
|
||||
.byte var
|
||||
|
@ -27,3 +27,17 @@ defined:
|
||||
.else
|
||||
.byte 0
|
||||
.endif
|
||||
|
||||
# .ifndef directive does not count as a use, so ensure redefinition is permitted
|
||||
.set var, 1
|
||||
.ifndef var
|
||||
.set var, 2
|
||||
.else
|
||||
.set var, 3
|
||||
.endif
|
||||
# CHECK: .byte 3
|
||||
.byte var
|
||||
|
||||
.set var, 4
|
||||
# CHECK: .byte 4
|
||||
.byte var
|
||||
|
Loading…
x
Reference in New Issue
Block a user