MC: When parsing a variable reference, substitute absolute variables immediately
since they are allowed to be redefined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84230 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/MC/AsmParser/labels.s b/test/MC/AsmParser/labels.s
index 53da7ed..456d61f 100644
--- a/test/MC/AsmParser/labels.s
+++ b/test/MC/AsmParser/labels.s
@@ -12,21 +12,21 @@
         .long 0
 
         .text
-foo:    
+foo:
 // CHECK: addl $24, a$b(%eax)
-        addl $24, "a$b"(%eax)    
+        addl $24, "a$b"(%eax)
 // CHECK: addl $24, a$b+10(%eax)
         addl $24, ("a$b" + 10)(%eax)
-        
+
 // CHECK: b$c = 10
 "b$c" = 10
-// CHECK: addl $b$c, %eax
+// CHECK: addl $10, %eax
         addl "b$c", %eax
-        
+
 // CHECK: "a 0" = 11
         .set "a 0", 11
-        
-// CHECK: .long "a 0"
+
+// CHECK: .long 11
         .long "a 0"
 
 // XXCHCK: .section "a 1,a 2"
@@ -48,12 +48,12 @@
         .lcomm "a 7", 1
 
 // FIXME: We don't bother to support .lsym.
-        
+
 // CHECX: .lsym "a 8",1
 //        .lsym "a 8", 1
 
 // CHECK: "a 9" = a-b
         .set "a 9", a - b
-        
+
 // CHECK: .long "a 9"
         .long "a 9"
diff --git a/test/MC/AsmParser/variables.s b/test/MC/AsmParser/variables.s
new file mode 100644
index 0000000..86fea27
--- /dev/null
+++ b/test/MC/AsmParser/variables.s
@@ -0,0 +1,15 @@
+// RUN: llvm-mc %s
+
+        .data
+        t0_v0 = 1
+        t0_v1 = t0_v0
+        .if t0_v1 != 1
+        .abort "invalid value"
+        .endif
+
+        t1_v0 = 1
+        t1_v1 = t0_v0
+        t1_v0 = 2
+        .if t0_v1 != 1
+        .abort "invalid value"
+        .endif