Marijn Haverbeke
be5537e95f
Be more strict about what constitutes a block expression
...
Blocks (or statements involving blocks) that end in a semicolon are no
longer considered the block-expression of their outer block. This used
to be an expression block, but now is a statement block:
{ if foo { ret 1; } else { ret 10; } }
This helps clear up some ambiguities in our grammar.
2011-09-13 15:50:03 +02:00
Marijn Haverbeke
e945164879
Always warn when implicitly copying a generic type
2011-09-13 13:40:38 +02:00
Marijn Haverbeke
38e86d708b
Properly alias-check bindings in for-each loops
2011-09-13 13:34:08 +02:00
Marijn Haverbeke
45bdff01b2
Clean up copy bookkeeping in alias.rs
2011-09-13 13:23:32 +02:00
Marijn Haverbeke
2f402343c9
Make for loop alias-safe
2011-09-13 13:05:59 +02:00
Marijn Haverbeke
3e92f90952
Apply implicit copying for unsafe references to alt patterns
2011-09-13 12:23:36 +02:00
Graydon Hoare
7f94957721
Kill trailing whitespace.
2011-09-12 16:33:43 -07:00
Graydon Hoare
a4815b6742
Factor imports mindlessly.
2011-09-12 16:13:28 -07:00
Graydon Hoare
71297a5e17
Remove redundant line.
2011-09-12 14:17:32 -07:00
Brian Anderson
393deeb06f
Merge branch 'unwind'
...
Conflicts:
src/comp/middle/trans.rs
src/comp/middle/trans_build.rs
src/lib/run_program.rs
src/test/compiletest/runtest.rs
2011-09-12 09:36:51 -07:00
Marijn Haverbeke
edde2e0c45
Undo some pretty-printer damage in ty.rs
2011-09-12 14:43:41 +02:00
Marijn Haverbeke
982a1a4783
Rename alias to reference in docs and error messages
...
Update docs to reflect new approach to aliases
2011-09-12 14:24:46 +02:00
Marijn Haverbeke
bcf60c6600
Warn when inserting an implicit copy that may be expensive
2011-09-12 13:54:02 +02:00
Marijn Haverbeke
8dd46d4384
Properly implement copy expressions
...
(And use them in some places that were doing {expr} before.)
2011-09-12 13:13:20 +02:00
Marijn Haverbeke
f4b6264f8c
Remove backwards-compatibility with old arg-mode syntax
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
ca1df2b111
Pretty-print for new arg-mode syntax
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
5bc424e4ea
Register second snapshot for argument-mode transition
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
bfa021de0d
Switch pretty-printer to new arg-mode syntax
2011-09-12 12:48:59 +02:00
Marijn Haverbeke
3667137a41
Accept {|| ... } for argument-less block syntax
...
Closes #880
2011-09-12 12:04:41 +02:00
Marijn Haverbeke
fc6b7c8b38
Reformat for new mode syntax, step 1
...
Long lines were fixed in a very crude way, as I'll be following up
with another reformat in a bit.
2011-09-12 12:04:14 +02:00
Marijn Haverbeke
64a6376da5
Register new snapshot
2011-09-12 11:25:19 +02:00
Marijn Haverbeke
8b7909afd7
Fix tests for new argument-passing convention
2011-09-12 11:07:20 +02:00
Marijn Haverbeke
0e6e56ca60
Make the names of the arg mode tag reflect their (revised) meaning
2011-09-12 11:07:17 +02:00
Marijn Haverbeke
4be7e1e5cd
Pass all arguments by reference, make immut alias mode equiv to value
...
Arguments that can't be safely referenced will be implicitly copied.
(Warnings for expensive copies will be forthcoming.)
This will allow us to get rid of most of the ampersands in function
signatures. See [1].
[1] https://mail.mozilla.org/pipermail/rust-dev/2011-September/000759.html
2011-09-12 11:06:54 +02:00
Brian Anderson
6ffcfba6b9
XFAIL bench/shootout-nbody
...
This is the only file in the whole codebase that depends on the (broken) llvm
native ABI.
2011-09-11 23:19:05 -07:00
Brian Anderson
cb50e4329a
Add an XFAILed test for native "llvm" modules
...
This functionality is completely broken
2011-09-11 23:14:42 -07:00
Brian Anderson
fda196769a
Actually fail the process when compiletest has a test failure
...
We previously failed by coincidence because of memory leaks.
2011-09-11 21:13:59 -07:00
Brian Anderson
69d6e0d208
Add some more unwind tests
...
They worked without modifications, but I wrote them so we're keeping them.
Issue #236
2011-09-11 17:31:41 -07:00
Brian Anderson
e193c9c1d6
Don't check-fast xfail-win32 tests
2011-09-11 17:31:41 -07:00
Brian Anderson
7940382070
XFAIL run-pass/task-comm-15 on win32 again
...
Maybe it works with check-fast, but it stills fails for me
2011-09-11 17:31:41 -07:00
Brian Anderson
be9fe24220
XFAIL some run-pass unwinding tests on win32
...
Curiously, because of some unfortunate interaction between win32 hacks, all the
run-fail unwind tests actually pass (that wouldn't be the case if we were
valgrinding though).
2011-09-11 17:31:40 -07:00
Brian Anderson
d00be1d962
Add the ability to xfail tests by platform
...
We'll use this to xfail some unwinding tests on windows
2011-09-11 17:31:40 -07:00
Brian Anderson
22001d1dce
Remove hack_allow_leaks
...
Happy to close the loop on this one.
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
d267e7486e
Zero locals when the initializer might call a function
...
The function might fail, leaving the local uninitialized
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
0ea55ffdc8
Use a unique exit status when the runtime fails normally
...
Check for it in run-fail tests
2011-09-11 17:31:40 -07:00
Brian Anderson
6f6f36172b
Remove unused task_exit function
...
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
118194381c
Invoke put functions
...
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
5b7145a9f4
Add an XFAILed test for failing destructors
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
53f7d6119a
Add some FIXMEs about unwinding implementation
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
e8a16353ea
Remove the no-valgrind test directive now that unwinding is more worky
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
a7c9f817bb
XFAIL run-fail/linked-failure
...
This test is hitting a bug in the runtime that makes it fail incorrectly and
not valgrind-clean
2011-09-11 17:31:39 -07:00
Brian Anderson
f28bbb2f95
Begin valgrinding some run-fail tests that unwind correctly
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
f99cf2d62f
Add a number of unwinding tests
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
4fba02c7e9
Invoke upcall_fail
...
This allows landing pads to be generated around fail statements
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4c9eee8aa4
Run cleanups during unwinding
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
587b863772
Zero locals that have initializers that might fail
...
This will avoid running cleanups on uninitialized memory
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4eb3ce3280
Add landing pads to invokes
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
5e4637b61f
Add Rust definitions for new LLVM EH instructions
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4bced5e5f2
Use invoke to call (most) rust functions
...
No landing pads yet.
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
9f4b4d89ce
Add upcall_rust_personality
...
This just wraps __gxx_personality_v0 with our upcall naming convention
Issue #236
2011-09-11 17:31:38 -07:00