diff options
author | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/compiler/test/beam_validator_SUITE_data/bad_catch_try.S | |
download | otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2 otp-84adefa331c4159d432d22840663c38f155cd4c1.zip |
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/compiler/test/beam_validator_SUITE_data/bad_catch_try.S')
-rw-r--r-- | lib/compiler/test/beam_validator_SUITE_data/bad_catch_try.S | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/lib/compiler/test/beam_validator_SUITE_data/bad_catch_try.S b/lib/compiler/test/beam_validator_SUITE_data/bad_catch_try.S new file mode 100644 index 0000000000..2a53f0dd93 --- /dev/null +++ b/lib/compiler/test/beam_validator_SUITE_data/bad_catch_try.S @@ -0,0 +1,168 @@ +{module, bad_catch_try}. %% version = 0 + +{exports, [{bad_1,1}, + {bad_2,1}, + {bad_3,1}, + {bad_4,1}, + {bad_5,1}, + {bad_6,1}, + {foo,1}, + {module_info,0}, + {module_info,1}]}. + +{attributes, []}. + +{labels, 31}. + + +{function, bad_1, 1, 2}. + {label,1}. + {func_info,{atom,bad_catch_try},{atom,bad_1},1}. + {label,2}. + {allocate,1,1}. + {'catch',{x,0},{f,3}}. + {call,1,{f,26}}. + {label,3}. + {catch_end,{x,0}}. + {test,is_tuple,{f,4},[{x,0}]}. + {test,test_arity,{f,4},[{x,0},2]}. + {get_tuple_element,{x,0},0,{x,1}}. + {test,is_eq_exact,{f,4},[{x,1},{atom,'EXIT'}]}. + {move,{atom,error},{x,0}}. + {deallocate,1}. + return. + {label,4}. + {move,{atom,ok},{x,0}}. + {deallocate,1}. + return. + + +{function, bad_2, 1, 6}. + {label,5}. + {func_info,{atom,bad_catch_try},{atom,bad_2},1}. + {label,6}. + {allocate,1,1}. + {'catch',{y,0},{f,7}}. + {call,1,{f,26}}. + {label,7}. + {catch_end,{x,9}}. + {test,is_tuple,{f,8},[{x,0}]}. + {test,test_arity,{f,8},[{x,0},2]}. + {get_tuple_element,{x,0},0,{x,1}}. + {test,is_eq_exact,{f,8},[{x,1},{atom,'EXIT'}]}. + {move,{atom,error},{x,0}}. + {deallocate,1}. + return. + {label,8}. + {move,{atom,ok},{x,0}}. + {deallocate,1}. + return. + + +{function, bad_3, 1, 10}. + {label,9}. + {func_info,{atom,bad_catch_try},{atom,bad_3},1}. + {label,10}. + {allocate,1,1}. + {'catch',{y,0},{f,11}}. + {call,1,{f,26}}. + {label,11}. + {move,{atom,kalle},{y,1}}. + {catch_end,{y,1}}. + {test,is_tuple,{f,12},[{x,0}]}. + {test,test_arity,{f,12},[{x,0},2]}. + {get_tuple_element,{x,0},0,{x,1}}. + {test,is_eq_exact,{f,12},[{x,1},{atom,'EXIT'}]}. + {move,{atom,error},{x,0}}. + {deallocate,1}. + return. + {label,12}. + {move,{atom,ok},{x,0}}. + {deallocate,1}. + return. + + +{function, bad_4, 1, 14}. + {label,13}. + {func_info,{atom,bad_catch_try},{atom,bad_4},1}. + {label,14}. + {allocate_zero,1,1}. + {'try',{x,0},{f,15}}. + {call,1,{f,26}}. + {try_end,{y,0}}. + {move,{atom,ok},{x,0}}. + {jump,{f,16}}. + {label,15}. + {try_case,{y,0}}. + {test,is_ne_exact,{f,16},[{x,0},{atom,error}]}. + {bif,raise,{f,0},[{x,2},{x,1}],{x,0}}. + {'%live',1}. + {label,16}. + {deallocate,1}. + return. + + +{function, bad_5, 1, 18}. + {label,17}. + {func_info,{atom,bad_catch_try},{atom,bad_5},1}. + {label,18}. + {allocate_zero,1,1}. + {'try',{y,0},{f,19}}. + {call,1,{f,26}}. + {try_end,{y,0}}. + {move,{atom,ok},{x,0}}. + {jump,{f,20}}. + {label,19}. + {move,{x,0},{y,1}}. + {try_case,{y,1}}. + {test,is_ne_exact,{f,20},[{x,0},{atom,error}]}. + {bif,raise,{f,0},[{x,2},{x,1}],{x,0}}. + {'%live',1}. + {label,20}. + {deallocate,1}. + return. + + +{function, bad_6, 1, 22}. + {label,21}. + {func_info,{atom,bad_catch_try},{atom,bad_6},1}. + {label,22}. + {allocate_zero,1,1}. + {'try',{y,0},{f,23}}. + {call,1,{f,26}}. + {move,{integer,1},{y,1}}. + {try_end,{y,1}}. + {move,{atom,ok},{x,0}}. + {jump,{f,24}}. + {label,23}. + {try_case,{y,0}}. + {test,is_ne_exact,{f,24},[{x,0},{atom,error}]}. + {bif,raise,{f,0},[{x,2},{x,1}],{x,0}}. + {'%live',1}. + {label,24}. + {deallocate,1}. + return. + + +{function, foo, 1, 26}. + {label,25}. + {func_info,{atom,bad_catch_try},{atom,foo},1}. + {label,26}. + return. + + +{function, module_info, 0, 28}. + {label,27}. + {func_info,{atom,bad_catch_try},{atom,module_info},0}. + {label,28}. + {move,{atom,bad_catch_try},{x,0}}. + {call_ext_only,1,{extfunc,erlang,get_module_info,1}}. + + +{function, module_info, 1, 30}. + {label,29}. + {func_info,{atom,bad_catch_try},{atom,module_info},1}. + {label,30}. + {move,{x,0},{x,1}}. + {move,{atom,bad_catch_try},{x,0}}. + {call_ext_only,2,{extfunc,erlang,get_module_info,2}}. |