diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-01-11 22:20:21 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-01-11 22:20:21 -0800 |
commit | 5e1c9b1866744343d81ea9df6f78ab3b2a4b38dc (patch) | |
tree | 19e3a60f40806512e8c179acc6048b7c6dbb9894 | |
parent | 5a49cfeccb068b0e1cbe6eef539eda2eacd6273f (diff) | |
download | mu-5e1c9b1866744343d81ea9df6f78ab3b2a4b38dc.tar.gz |
2554 - give up on static pointer analysis
Eventually you'll need to create a doubly-linked list, and `isolated` won't save you then.
-rw-r--r-- | 061abandon_checks.cc | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/061abandon_checks.cc b/061abandon_checks.cc deleted file mode 100644 index ae8ab75d..00000000 --- a/061abandon_checks.cc +++ /dev/null @@ -1,126 +0,0 @@ -:(scenarios transform) // many of the tests below are *extremely* unsafe -:(scenario abandon_in_same_recipe_as_new) -recipe test [ - x:address:number <- new number:type - abandon x -] -# no warnings - -:(scenario abandon_in_separate_recipe_from_new) -recipe test [ - x:address:number <- test-new - test-abandon x -] -recipe test-new -> result:address:number [ - result <- new number:type -] -recipe test-abandon x:address:number [ - load-ingredients - abandon x -] -# no warnings - -:(scenario define_after_abandon_in_same_recipe_as_new) -recipe test [ - x:address:number <- new number:type - abandon x - x <- new number:type - reply x -] -# no warnings - -:(scenario define_after_abandon_in_separate_recipe_from_new) -recipe test [ - x:address:number <- test-new - test-abandon x - x <- test-new - reply x -] -recipe test-new -> result:address:number [ - result <- new number:type -] -recipe test-abandon x:address:number [ - load-ingredients - abandon x -] -# no warnings - -:(scenario abandon_inside_loop_initializing_variable) -recipe test [ - { - x:address:number <- new number:type - abandon x - loop - } -] -# no warnings - -:(scenario abandon_inside_loop_initializing_variable_2) -recipe test [ - { - x:address:number <- test-new - test-abandon x - loop - } -] -recipe test-new -> result:address:number [ - result <- new number:type -] -recipe test-abandon x:address:number [ - load-ingredients - abandon x -] -# no warnings - -:(scenario abandon_inside_loop_initializing_variable_3) -recipe test [ - { - x:address:number <- test-new - test-abandon x - x:address:number <- test-new # modify x to a new value - y:address:number <- copy x # use x after reinitialization - loop - } -] -recipe test-new -> result:address:number [ - result <- new number:type -] -recipe test-abandon x:address:number [ - load-ingredients - abandon x -] -# no warnings - -:(scenario abandon_inside_loop_initializing_variable_4) -container test-list [ - value:number - next:address:test-list -] -recipe test-cleanup x:address:test-list [ - load-ingredients - { - next:address:test-list <- test-next x - test-abandon x - x <- copy next - loop - } -] -recipe test-next x:address:test-list -> result:address:test-list/contained-in:x [ - load-ingredients - result <- get *x, next:offset -] -recipe test-abandon x:address:test-list [ - load-ingredients - abandon x -] -# no warnings - -:(scenario abandon_non_unique_address_after_define) -recipe test [ - x:address:number <- new number:type - y:address:number <- copy x - abandon x - y:address:number <- new number:type # overwrite alias - z:address:number <- copy y -] -# no warnings |