diff --git a/spec/compiler/codegen/void_spec.cr b/spec/compiler/codegen/void_spec.cr
index 75c643b5378f0fb8dc6538edfb2d449c01ce316c..36e46fcf9386e17544e5fa48b1771fa01d11b232 100644
--- a/spec/compiler/codegen/void_spec.cr
+++ b/spec/compiler/codegen/void_spec.cr
@@ -64,4 +64,15 @@ describe "Code gen: void" do
       end
       ))
   end
+
+  it "codegens no return assignment" do
+    build("
+      lib C
+        fun exit : NoReturn
+      end
+
+      a = C.exit
+      a
+      ")
+  end
 end
diff --git a/spec/spec_helper.cr b/spec/spec_helper.cr
index 955807d01fe583c13dd50794ce5127c60e2210a2..032644927b9dcbcfb08e23fe24a7da2503c5d18e 100644
--- a/spec/spec_helper.cr
+++ b/spec/spec_helper.cr
@@ -1,10 +1,11 @@
+ENV["CRYSTAL_PATH"] = "#{__DIR__}/../src"
+ENV["VERIFY"] = "1"
+
 require "spec"
 require "../src/compiler/crystal/**"
 
 include Crystal
 
-ENV["CRYSTAL_PATH"] = "#{__DIR__}/../src"
-
 class Crystal::Program
   def union_of(type1, type2)
     union_of([type1, type2] of Type).not_nil!
diff --git a/src/compiler/crystal/codegen.cr b/src/compiler/crystal/codegen.cr
index 475896149a69b2f65aebf69aad7adc62ae8ce2e2..ae25960d293141b383aaf2d1cbb75ad8ffe27e9d 100644
--- a/src/compiler/crystal/codegen.cr
+++ b/src/compiler/crystal/codegen.cr
@@ -8,8 +8,6 @@ require "codegen/*"
 LLVM.init_x86
 
 module Crystal
-  VERIFY_LLVM = ENV["VERIFY"] == "1"
-
   MAIN_NAME = "__crystal_main"
   RAISE_NAME = "__crystal_raise"
   MALLOC_NAME = "__crystal_malloc"
@@ -192,6 +190,7 @@ module Crystal
       end
 
       env_dump = ENV["DUMP"]
+      env_verify = ENV["VERIFY"] == "1"
       case env_dump
       when Nil
         # Nothing
@@ -203,7 +202,7 @@ module Crystal
 
       @modules.each do |name, mod|
         mod.dump if dump_all_llvm || name =~ dump_llvm_regex
-        mod.verify if Crystal::VERIFY_LLVM
+        mod.verify if env_verify
 
         if @debug
           add_compile_unit_metadata(mod, name == "" ? "main" : name)
@@ -1611,6 +1610,8 @@ module Crystal
 
           if var_type.void?
             context.vars[name] = LLVMVar.new(llvm_nil, @mod.void)
+          elsif var_type.no_return?
+            # No alloca for NoReturn
           elsif var.closure_in?(obj)
             # We deal with closured vars later
           elsif !obj || var.belongs_to?(obj)