about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-01-11 22:20:21 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-01-11 22:20:21 -0800
commit5e1c9b1866744343d81ea9df6f78ab3b2a4b38dc (patch)
tree19e3a60f40806512e8c179acc6048b7c6dbb9894
parent5a49cfeccb068b0e1cbe6eef539eda2eacd6273f (diff)
downloadmu-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.cc126
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