File tree Expand file tree Collapse file tree 7 files changed +93
-9
lines changed Expand file tree Collapse file tree 7 files changed +93
-9
lines changed Original file line number Diff line number Diff line change 1
1
---
2
2
refs/heads/master: 5f13e9ccc2e3328d4cd8ca49f84e6840dd998346
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
- refs/heads/snap-stage3: 518c295a03c5422aec26ac067307c32d11a92e66
4
+ refs/heads/snap-stage3: bda4dd3c911ba54e342de2ff1b59e371442e58dd
5
5
refs/heads/try: 8eb2bab100b42f0ba751552d8eff00eb2134c55a
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
Original file line number Diff line number Diff line change 881
881
;;
882
882
esac
883
883
need_ok " LLVM configure failed"
884
+
885
+ # Hack the tools Makefile to turn off the clang build
886
+ sed -i ' s/clang//g' tools/Makefile
887
+
884
888
cd $CFG_BUILD_DIR
885
889
fi
886
890
Original file line number Diff line number Diff line change @@ -681,6 +681,45 @@ impl vtable_decoder_helpers for reader::Decoder {
681
681
@self.read_to_vec(|| self.read_vtable_origin(xcx) )
682
682
}
683
683
684
+ #[cfg(stage0)]
685
+ fn read_vtable_origin(&self, xcx: @ExtendedDecodeContext)
686
+ -> typeck::vtable_origin {
687
+ do self.read_enum(~" vtable_origin") {
688
+ do self.read_enum_variant |i| {
689
+ match i {
690
+ 0 => {
691
+ typeck::vtable_static(
692
+ do self.read_enum_variant_arg(0u) {
693
+ self.read_def_id(xcx)
694
+ },
695
+ do self.read_enum_variant_arg(1u) {
696
+ self.read_tys(xcx)
697
+ },
698
+ do self.read_enum_variant_arg(2u) {
699
+ self.read_vtable_res(xcx)
700
+ }
701
+ )
702
+ }
703
+ 1 => {
704
+ typeck::vtable_param(
705
+ do self.read_enum_variant_arg(0u) {
706
+ self.read_uint()
707
+ },
708
+ do self.read_enum_variant_arg(1u) {
709
+ self.read_uint()
710
+ }
711
+ )
712
+ }
713
+ // hard to avoid - user input
714
+ _ => fail!(~" bad enum variant")
715
+ }
716
+ }
717
+ }
718
+ }
719
+
720
+ #[cfg(stage1)]
721
+ #[cfg(stage2)]
722
+ #[cfg(stage3)]
684
723
fn read_vtable_origin(&self, xcx: @ExtendedDecodeContext)
685
724
-> typeck::vtable_origin {
686
725
do self.read_enum(" vtable_origin") {
Original file line number Diff line number Diff line change @@ -334,6 +334,19 @@ pub mod reader {
334
334
self.push_doc(self.next_doc(EsEnum), f)
335
335
}
336
336
337
+ #[cfg(stage0)]
338
+ fn read_enum_variant<T>(&self, f: &fn(uint) -> T) -> T {
339
+ debug!(" read_enum_variant( ) ");
340
+ let idx = self._next_uint(EsEnumVid);
341
+ debug!(" idx=%u", idx);
342
+ do self.push_doc(self.next_doc(EsEnumBody)) {
343
+ f(idx)
344
+ }
345
+ }
346
+
347
+ #[cfg(stage1)]
348
+ #[cfg(stage2)]
349
+ #[cfg(stage3)]
337
350
fn read_enum_variant<T>(&self, _names: &[&str], f: &fn(uint) -> T) -> T {
338
351
debug!(" read_enum_variant( ) ");
339
352
let idx = self._next_uint(EsEnumVid);
@@ -397,6 +410,23 @@ pub mod reader {
397
410
f()
398
411
}
399
412
413
+ #[cfg(stage0)]
414
+ fn read_option<T>(&self, f: &fn(bool) -> T) -> T {
415
+ debug!(" read_option( ) ");
416
+ do self.read_enum(" Option ") || {
417
+ do self.read_enum_variant |idx| {
418
+ match idx {
419
+ 0 => f(false),
420
+ 1 => f(true),
421
+ _ => fail!(),
422
+ }
423
+ }
424
+ }
425
+ }
426
+
427
+ #[cfg(stage1)]
428
+ #[cfg(stage2)]
429
+ #[cfg(stage3)]
400
430
fn read_option<T>(&self, f: &fn(bool) -> T) -> T {
401
431
debug!(" read_option( ) ");
402
432
do self.read_enum(" Option ") || {
Original file line number Diff line number Diff line change @@ -854,6 +854,19 @@ impl<'self> serialize::Decoder for Decoder<'self> {
854
854
f()
855
855
}
856
856
857
+ #[cfg(stage0)]
858
+ fn read_enum_variant<T>(&self, f: &fn(uint) -> T) -> T {
859
+ debug!(" read_enum_variant( ) ");
860
+ let idx = match *self.peek() {
861
+ Null => 0,
862
+ _ => 1,
863
+ };
864
+ f(idx)
865
+ }
866
+
867
+ #[cfg(stage1)]
868
+ #[cfg(stage2)]
869
+ #[cfg(stage3)]
857
870
fn read_enum_variant<T>(&self, names: &[&str], f: &fn(uint) -> T) -> T {
858
871
debug!(" read_enum_variant( names=%?) ", names);
859
872
let name = match *self.peek() {
Original file line number Diff line number Diff line change @@ -93,6 +93,12 @@ pub trait Decoder {
93
93
// Compound types:
94
94
fn read_enum < T > ( & self , name : & str , f : & fn ( ) -> T ) -> T ;
95
95
96
+ #[ cfg( stage0) ]
97
+ fn read_enum_variant < T > ( & self , f : & fn ( uint ) -> T ) -> T ;
98
+
99
+ #[ cfg( stage1) ]
100
+ #[ cfg( stage2) ]
101
+ #[ cfg( stage3) ]
96
102
fn read_enum_variant < T > ( & self , names : & [ & str ] , f : & fn ( uint ) -> T ) -> T ;
97
103
98
104
fn read_enum_variant_arg < T > ( & self , idx : uint , f : & fn ( ) -> T ) -> T ;
Original file line number Diff line number Diff line change 1
- S 2013-03-28 f7a2371
2
- macos-i386 2e05a33716fc4982db53946c3b0dccf0194826fe
3
- macos-x86_64 fbd3feec8dd17a6b6c8df114e6e9b4cd17cc6172
4
- linux-i386 b89197edd3ba5be7c2ee6577f048d7663640e1d1
5
- linux-x86_64 61a4377c6d0ca5814c2b2b752d73b61b741a23c9
6
- winnt-i386 858a74afb210b30697227a87b67e44786b383a0c
7
- freebsd-x86_64 01f1e4b94504045e763eecb71c7e0852f6e85036
8
-
9
1
S 2013-03-27 8c15409
10
2
macos-x86_64 05eb3801b60056d95715c891d00c5d372e34d00c
11
3
macos-i386 4119e3fa614fa86adf60ed0183d00db3ce6d0dbc
You can’t perform that action at this time.
0 commit comments