Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macro goto always gets evaluated in a Short-circuiting boolean AND. #15600

Closed
KDr2 opened this issue Mar 23, 2016 · 0 comments
Closed

macro goto always gets evaluated in a Short-circuiting boolean AND. #15600

KDr2 opened this issue Mar 23, 2016 · 0 comments
Assignees
Labels
compiler:lowering Syntax lowering (compiler front end, 2nd stage)

Comments

@KDr2
Copy link
Contributor

KDr2 commented Mar 23, 2016

julia> function t0(flag)
       flag && @goto return2
       return 1
       @label return2
       return 2
       end
t0 (generic function with 1 method)
julia> t0(true)
2
julia> t0(false)
2
julia>

and Julia gets crashed while using a goto in a Short-circuiting boolean OR:

julia> function t1(flag)
       flag || @goto return2
       return 1
       @label return2
       return 2
       end
t1 (generic function with 1 method)

julia> t1(true)
"WARNING: An error occured during inference. Type inference is now partially disabled."
ErrorException("label 0 not found")
rec_backtrace at /Users/zhuoql/Work/opensrc/julia/src/stackwalk.c:82
[inline] at /Users/zhuoql/Work/opensrc/julia/src/task.c:234
record_backtrace at /Users/zhuoql/Work/opensrc/julia/src/task.c:520
findlabel at /Users/zhuoql/Work/opensrc/julia/usr/lib/julia/sys.dylib (unknown line)
typeinf_frame at ./inference.jl:1796
typeinf_loop at ./inference.jl:1699
jlcall_typeinf_loop_231 at /Users/zhuoql/Work/opensrc/julia/usr/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:878
typeinf_edge at ./inference.jl:1656
jlcall_typeinf_edge_5 at /Users/zhuoql/Work/opensrc/julia/usr/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:878
typeinf_ext at ./inference.jl:1673
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:878
[inline] at /Users/zhuoql/Work/opensrc/julia/src/./julia.h:1262
jl_apply at /Users/zhuoql/Work/opensrc/julia/src/gf.c:831
jl_mt_assoc_by_type at /Users/zhuoql/Work/opensrc/julia/src/gf.c:984
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:1840
do_call at /Users/zhuoql/Work/opensrc/julia/src/interpreter.c:61
eval at /Users/zhuoql/Work/opensrc/julia/src/interpreter.c:422
jl_toplevel_eval_flex at /Users/zhuoql/Work/opensrc/julia/src/toplevel.c:541
jl_toplevel_eval_in_warn at /Users/zhuoql/Work/opensrc/julia/src/builtins.c:551
eval at ./boot.jl:243
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:878
[inline] at REPL.jl:3
eval_user_input at REPL.jl:62
jlcall_eval_user_input_32760 at  (unknown line)
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:878
[inline] at REPL.jl:92
#1 at event.jl:46
jlcall_#1_32675 at  (unknown line)
jl_apply_generic at /Users/zhuoql/Work/opensrc/julia/src/gf.c:878
Assertion failed: (ifnot), function emit_expr, file /Users/zhuoql/Work/opensrc/julia/src/codegen.cpp, line 3303.
Abort trap: 6

My Julia Version:

julia> versioninfo()
Julia Version 0.5.0-dev+3235
Commit c29bff1 (2016-03-23 05:32 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin15.0.0)
  CPU: Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT NO_AFFINITY SANDYBRIDGE)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3 (Unknown, corei7-avx)
@JeffBezanson JeffBezanson self-assigned this Mar 23, 2016
@JeffBezanson JeffBezanson added the compiler:lowering Syntax lowering (compiler front end, 2nd stage) label Mar 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:lowering Syntax lowering (compiler front end, 2nd stage)
Projects
None yet
Development

No branches or pull requests

2 participants