rust/src/test
bors 98fa0f89b1 auto merge of #12798 : pczarn/rust/inline-asm, r=alexcrichton
## read+write modifier '+'
This small sugar was left out in the original implementation (#5359).
 
When an output operand with the '+' modifier is encountered, we store the index of that operand alongside the expression to create and append an input operand later. The following lines are equivalent:
```
asm!("" : "+m"(expr));
asm!("" : "=m"(expr) : "0"(expr));
```
## misplaced options and clobbers give a warning
It's really annoying when a small typo might change behavior without any warning.
```
asm!("mov $1, $0" : "=r"(x) : "r"(8u) : "cc" , "volatile");
//~^ WARNING expected a clobber, but found an option
```
## liveness
Fixed incorrect order of propagation.
Sometimes it caused spurious warnings in code: `warning: value assigned to `i` is never read, #[warn(dead_assignment)] on by default`

~~Note: Rebased on top of another PR. (uses other changes)~~

* [x] Implement read+write
* [x] Warn about misplaced options
* [x] Fix liveness (`dead_assignment` lint)
* [x] Add all tests
2014-03-13 18:41:35 -07:00
..
auxiliary std: Rename Chan/Port types and constructor 2014-03-13 13:23:29 -07:00
bench auto merge of #12815 : alexcrichton/rust/chan-rename, r=brson 2014-03-13 14:06:37 -07:00
codegen Add pub to all the codegen tests 2013-10-10 06:00:51 -07:00
compile-fail auto merge of #12798 : pczarn/rust/inline-asm, r=alexcrichton 2014-03-13 18:41:35 -07:00
debug-info std: Rename Chan/Port types and constructor 2014-03-13 13:23:29 -07:00
pretty Fix a pretty printer crash on /***. 2014-02-27 12:16:18 +11:00
run-fail fix typos with with repeated words, just like this sentence. 2014-03-06 20:19:14 +09:00
run-make Update users for the std::rand -> librand move. 2014-03-12 11:31:43 +11:00
run-pass auto merge of #12798 : pczarn/rust/inline-asm, r=alexcrichton 2014-03-13 18:41:35 -07:00
run-pass-fulldeps Add an ItemModifier syntax extension type 2014-03-11 00:28:25 -07:00