diff options
Diffstat (limited to 'lib/compiler/test/core_SUITE_data')
-rw-r--r-- | lib/compiler/test/core_SUITE_data/dehydrated_itracer.core | 99 | ||||
-rw-r--r-- | lib/compiler/test/core_SUITE_data/nested_tries.core | 36 |
2 files changed, 135 insertions, 0 deletions
diff --git a/lib/compiler/test/core_SUITE_data/dehydrated_itracer.core b/lib/compiler/test/core_SUITE_data/dehydrated_itracer.core new file mode 100644 index 0000000000..e64e981edc --- /dev/null +++ b/lib/compiler/test/core_SUITE_data/dehydrated_itracer.core @@ -0,0 +1,99 @@ +module 'dehydrated_itracer' ['dehydrated_itracer'/0, + 'module_info'/0, + 'module_info'/1] + attributes [] +'dehydrated_itracer'/0 = + %% Line 5 + fun () -> + case <> of + <> when 'true' -> + %% Line 6 + case apply 'itracer'/0 + () of + <{'vector',65536}> when 'true' -> + %% Line 7 + 'ok' + ( <_cor0> when 'true' -> + primop 'match_fail' + ({'badmatch',_cor0}) + -| ['compiler_generated'] ) + end + ( <> when 'true' -> + primop 'match_fail' + ({'function_clause'}) + -| ['compiler_generated'] ) + end +'itracer'/0 = + %% Line 8 + fun () -> + let <Dir> = + %% Line 9 + apply 'vcreate'/3 + (0, 0, 256) + in %% Line 10 + apply 'initialize'/1 + (Dir) +'initialize'/1 = + %% Line 12 + fun (_cor0) -> + %% Line 23 + case _cor0 of + <{'vector',_pre0}> when 'true' -> + let <_cor4> = + call 'erlang':'*' + (_pre0, 2) + in let <Up2> = {'vector',_cor4} + in case Up2 of + <{'vector',_pre0}> when 'true' -> + let <_cor4> = + call 'erlang':'*' + (_pre0, -1) + in let <Down> = {'vector',_cor4} + in case _cor0 of +%%% The case would be optimized away, and pre0 would be used directly, +%%% only it would be the wrong pre0. + <{'vector',_pre0}> when 'true' -> + let <_cor4> = + call 'erlang':'*' + (_pre0, 256) + in {'vector',_cor4} + <_cor7> when 'true' -> + call 'erlang':'error' + ({'badrecord','vector'}) + end + <_cor7> when 'true' -> + call 'erlang':'error' + ({'badrecord','vector'}) + end + <_cor7> when 'true' -> + call 'erlang':'error' + ({'badrecord','vector'}) + end +'vcreate'/3 = + %% Line 19 + fun (_cor2,_cor1,_cor0) -> + %% Line 20 + {'vector',_cor0} +'mul'/2 = + %% Line 22 + fun (_cor1,_cor0) -> + %% Line 23 + case _cor0 of + <{'vector',_pre0}> when 'true' -> + let <_cor4> = + call 'erlang':'*' + (_pre0, _cor1) + in {'vector',_cor4} + <_cor7> when 'true' -> + call 'erlang':'error' + ({'badrecord','vector'}) + end +'module_info'/0 = + fun () -> + call 'erlang':'get_module_info' + ('dehydrated_itracer') +'module_info'/1 = + fun (_cor0) -> + call 'erlang':'get_module_info' + ('dehydrated_itracer', _cor0) +end
\ No newline at end of file diff --git a/lib/compiler/test/core_SUITE_data/nested_tries.core b/lib/compiler/test/core_SUITE_data/nested_tries.core new file mode 100644 index 0000000000..d9010b808b --- /dev/null +++ b/lib/compiler/test/core_SUITE_data/nested_tries.core @@ -0,0 +1,36 @@ +module 'nested_tries' ['nested_tries'/0, 'reg'/2] + attributes [] + +'nested_tries'/0 = + fun () -> 'ok' + +'reg'/2 = + fun (_cor1,_cor0) -> + let <_X_var__238> = 1 + in case %% Line 4 + <_cor1,_cor0> of + <Id,Pid> + when call 'erlang':'and' + (try 'true' + of <_X_var__235> -> _X_var__235 + catch <_X_var__236,_X_var__237> -> 'false', + try + let <_cor2> = + try + call 'erlang':'and' + ('true', + call 'erlang':'is_integer'(call 'erlang':'element'(3, Pid))) + of <_X_var__232> -> _X_var__232 + catch <_X_var__233,_X_var__234> -> 'false' + in let <_cor4> = call 'erlang':'element'(2, Pid) + in let <_cor3> = _X_var__238 + in let <_cor5> = call 'erlang':'=='(_cor4, _cor3) + in call 'erlang':'and'(_cor2, _cor5) + of <Try> -> Try + catch <T,R> -> 'false') -> 'true' + <_cor7,_cor6> when 'true' -> + primop 'match_fail' + ({( 'function_clause' + -| [{'name',{'reg',2}}] ),_cor7,_cor6}) + end +end |