diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-09-06 22:44:16 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-09-07 10:32:58 -0700 |
| commit | 9946e467ff682820826fe14eae24b64418269b1f (patch) | |
| tree | 1344fce2cc5fd65e8be29be13f12ba02d0d7ad66 /src | |
| parent | c047cfb710f3ea161b71cc4eb830275ec2c47eea (diff) | |
| download | rust-9946e467ff682820826fe14eae24b64418269b1f.tar.gz rust-9946e467ff682820826fe14eae24b64418269b1f.zip | |
Export tag discriminants even for single-variant tags
I don't know exactly what's going on but this optimization is giving me problems with the check-fast runner. I also don't see how it is correct for external tags.
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/middle/trans.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index e8152dc1dd6..c43d5d88f8f 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -5873,10 +5873,8 @@ fn trans_constant(ccx: @crate_ctxt, it: &@ast::item, pt: &[str], {|buf| llvm::LLVMAddGlobal(ccx.llmod, T_int(), buf) }); - if n_variants != 1u { - llvm::LLVMSetInitializer(discrim_gvar, C_int(i as int)); - llvm::LLVMSetGlobalConstant(discrim_gvar, True); - } + llvm::LLVMSetInitializer(discrim_gvar, C_int(i as int)); + llvm::LLVMSetGlobalConstant(discrim_gvar, True); ccx.discrims.insert(variant.node.id, discrim_gvar); ccx.discrim_symbols.insert(variant.node.id, s); i += 1u; |
