aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlon Zakai <azakai@mozilla.com>2010-11-20 20:00:11 -0800
committerAlon Zakai <azakai@mozilla.com>2010-11-20 20:00:11 -0800
commitfa5bac952a9eb74d4964b8497454aac1b32299a5 (patch)
tree85df12e896ee36fc6345100e032e478874eec01c /tests
parentd61473b75862c62293318ced24a638d322ff2bd9 (diff)
lua test
Diffstat (limited to 'tests')
-rw-r--r--tests/lua/COPYRIGHT34
-rw-r--r--tests/lua/Makefile184
-rw-r--r--tests/lua/lua.ll54637
-rw-r--r--tests/runner.py4
4 files changed, 54857 insertions, 2 deletions
diff --git a/tests/lua/COPYRIGHT b/tests/lua/COPYRIGHT
new file mode 100644
index 00000000..3a53e741
--- /dev/null
+++ b/tests/lua/COPYRIGHT
@@ -0,0 +1,34 @@
+Lua License
+-----------
+
+Lua is licensed under the terms of the MIT license reproduced below.
+This means that Lua is free software and can be used for both academic
+and commercial purposes at absolutely no cost.
+
+For details and rationale, see http://www.lua.org/license.html .
+
+===============================================================================
+
+Copyright (C) 1994-2008 Lua.org, PUC-Rio.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+===============================================================================
+
+(end of COPYRIGHT)
diff --git a/tests/lua/Makefile b/tests/lua/Makefile
new file mode 100644
index 00000000..c6ae126f
--- /dev/null
+++ b/tests/lua/Makefile
@@ -0,0 +1,184 @@
+# makefile for building Lua
+# see ../INSTALL for installation instructions
+# see ../Makefile and luaconf.h for further customization
+
+# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+
+PLAT=generic # Emscripten needs |generic|!
+
+# Fix '...' with the proper absolute path
+CC = "/.../Dev/llvm-2.8/cbuild/Release/bin/clang++" # C++ compiler, so we don't use longjmp/setjmp!
+CFLAGS= -emit-llvm -U__i386__ -U__x86_64__
+AR= "/.../Dev/llvm-2.8/cbuild/Release/bin/llvm-link"
+RANLIB= "/.../Dev/llvm-2.8/cbuild/Release/bin/llvm-dis"
+RM= rm -f
+LIBS= -lm $(MYLIBS)
+
+MYCFLAGS=
+MYLDFLAGS=
+MYLIBS=
+
+# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+
+PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+
+LUA_A= liblua.a
+CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \
+ lundump.o lvm.o lzio.o
+LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
+ lstrlib.o loadlib.o linit.o
+
+LUA_T= lua
+LUA_O= lua.o
+
+LUAC_T= luac
+LUAC_O= luac.o print.o
+
+ALL_O= $(CORE_O) $(LIB_O) $(LUA_O)
+ALL_T= $(LUA_A) $(LUA_T)
+ALL_A= $(LUA_A)
+
+default: $(PLAT)
+
+all: $(ALL_T)
+
+o: $(ALL_O)
+
+a: $(ALL_A)
+
+$(LUA_A): $(CORE_O) $(LIB_O)
+ $(AR) -o=$@ $?
+ $(RANLIB) -show-annotations $@
+
+$(LUA_T): $(LUA_O) $(LUA_A)
+ $(AR) -o=$@ $(MYLDFLAGS) $(LUA_O) $(LUA_A)
+ $(RANLIB) -show-annotations $@
+
+$(LUAC_T): $(LUAC_O) $(LUA_A)
+ $(AR) -o=$@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A)
+ $(RANLIB) -show-annotations $@
+
+clean:
+ $(RM) $(ALL_T) $(ALL_O)
+
+depend:
+ @$(CC) $(CFLAGS) -MM l*.c print.c
+
+echo:
+ @echo "PLAT = $(PLAT)"
+ @echo "CC = $(CC)"
+ @echo "CFLAGS = $(CFLAGS)"
+ @echo "AR = $(AR)"
+ @echo "RANLIB = $(RANLIB)"
+ @echo "RM = $(RM)"
+ @echo "MYCFLAGS = $(MYCFLAGS)"
+ @echo "MYLDFLAGS = $(MYLDFLAGS)"
+ @echo "MYLIBS = $(MYLIBS)"
+
+# convenience targets for popular platforms
+
+none:
+ @echo "Please choose a platform:"
+ @echo " $(PLATS)"
+
+aix:
+ $(MAKE) all CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl" MYLDFLAGS="-brtl -bexpall"
+
+ansi:
+ $(MAKE) all MYCFLAGS=-DLUA_ANSI
+
+bsd:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E"
+
+freebsd:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX" MYLIBS="-Wl,-E -lreadline"
+
+generic:
+ $(MAKE) all MYCFLAGS=
+
+linux:
+ $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"
+
+macosx:
+ $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"
+# use this on Mac OS X 10.3-
+# $(MAKE) all MYCFLAGS=-DLUA_USE_MACOSX
+
+mingw:
+ $(MAKE) "LUA_A=lua51.dll" "LUA_T=lua.exe" \
+ "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
+ "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua.exe
+ $(MAKE) "LUAC_T=luac.exe" luac.exe
+
+posix:
+ $(MAKE) all MYCFLAGS=-DLUA_USE_POSIX
+
+solaris:
+ $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl"
+
+# list targets that do not create files (but not all makes understand .PHONY)
+.PHONY: all $(PLATS) default o a clean depend echo none
+
+# DO NOT DELETE
+
+lapi.o: lapi.c lua.h luaconf.h lapi.h lobject.h llimits.h ldebug.h \
+ lstate.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h \
+ lundump.h lvm.h
+lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h
+lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h
+lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
+ lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \
+ ltable.h
+ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h
+ldebug.o: ldebug.c lua.h luaconf.h lapi.h lobject.h llimits.h lcode.h \
+ llex.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \
+ lfunc.h lstring.h lgc.h ltable.h lvm.h
+ldo.o: ldo.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
+ lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h lstring.h \
+ ltable.h lundump.h lvm.h
+ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \
+ lzio.h lmem.h lundump.h
+lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h lmem.h \
+ lstate.h ltm.h lzio.h
+lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
+ lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h
+linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h
+liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h
+llex.o: llex.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h ltm.h \
+ lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h
+lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h
+lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h ldo.h
+loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h
+lobject.o: lobject.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h \
+ ltm.h lzio.h lmem.h lstring.h lgc.h lvm.h
+lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h
+loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h
+lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
+ lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h \
+ lfunc.h lstring.h lgc.h ltable.h
+lstate.o: lstate.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h llex.h lstring.h ltable.h
+lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \
+ ltm.h lzio.h lstring.h lgc.h
+lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h
+ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h ldo.h lgc.h ltable.h
+ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h
+ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \
+ lmem.h lstring.h lgc.h ltable.h
+lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h
+luac.o: luac.c lua.h luaconf.h lauxlib.h ldo.h lobject.h llimits.h \
+ lstate.h ltm.h lzio.h lmem.h lfunc.h lopcodes.h lstring.h lgc.h \
+ lundump.h
+lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \
+ llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h
+lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
+ lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h
+lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
+ lzio.h
+print.o: print.c ldebug.h lstate.h lua.h luaconf.h lobject.h llimits.h \
+ ltm.h lzio.h lmem.h lopcodes.h lundump.h
+
+# (end of Makefile)
diff --git a/tests/lua/lua.ll b/tests/lua/lua.ll
new file mode 100644
index 00000000..9a15a65f
--- /dev/null
+++ b/tests/lua/lua.ll
@@ -0,0 +1,54637 @@
+; ModuleID = 'lua'
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
+target triple = "i386-pc-linux-gnu"
+
+%0 = type { %struct.lua_TValue }
+%1 = type { %union.anon, i32, %struct.Node* }
+%2 = type { %3 }
+%3 = type { i32, i32 }
+%4 = type { %union.GCObject*, i8, i8, %struct.Table*, %struct.Table*, i32 }
+%5 = type { i8*, i8* }
+%6 = type { i8*, i8*, i32, i8* }
+%7 = type { %8, i32 }
+%8 = type { %union.GCObject*, [4 x i8] }
+%9 = type { %7, %10 }
+%10 = type { %11 }
+%11 = type { %8, i32, %struct.Node* }
+%12 = type { %struct.lua_State*, i32 (%struct.lua_State*, i8*, i32, i8*)*, i8*, i32, i32 }
+%13 = type { %struct.UpVal*, %struct.UpVal* }
+%14 = type { %struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, i8* }
+%enum.BinOpr = type i32
+%enum.OpArgMask = type i32
+%enum.OpMode = type i32
+%enum.UnOpr = type i32
+%enum.anon = type i32
+%struct.BlockCnt = type { %struct.BlockCnt*, i32, i8, i8, i8 }
+%struct.CCallS = type { i32 (%struct.lua_State*)*, i8* }
+%struct.CClosure = type { %union.GCObject*, i8, i8, i8, i8, %union.GCObject*, %struct.Table*, i32 (%struct.lua_State*)*, [1 x %struct.lua_TValue] }
+%struct.CallInfo = type { %struct.lua_TValue*, %struct.lua_TValue*, %struct.lua_TValue*, i32*, i32, i32 }
+%struct.CallS = type { %struct.lua_TValue*, i32 }
+%struct.ConsControl = type { %struct.expdesc, %struct.expdesc*, i32, i32, i32 }
+%struct.FuncState = type { %struct.Proto*, %struct.Table*, %struct.FuncState*, %struct.LexState*, %struct.lua_State*, %struct.BlockCnt*, i32, i32, i32, i32, i32, i32, i16, i8, [60 x %struct.upvaldesc], [200 x i16] }
+%struct.GCheader = type { %union.GCObject*, i8, i8 }
+%struct.LClosure = type { %union.GCObject*, i8, i8, i8, i8, %union.GCObject*, %struct.Table*, %struct.Proto*, [1 x %struct.UpVal*] }
+%struct.LG = type { %struct.lua_State, %struct.global_State }
+%struct.LHS_assign = type { %struct.LHS_assign*, %struct.expdesc }
+%struct.LexState = type { i32, i32, i32, %struct.Token, %struct.Token, %struct.FuncState*, %struct.lua_State*, %struct.Zio*, %struct.Mbuffer*, %union.TString*, i8 }
+%struct.LoadF = type { i32, %struct._IO_FILE*, [8192 x i8] }
+%struct.LoadS = type { i8*, i32 }
+%struct.LocVar = type { %union.TString*, i32, i32 }
+%struct.MatchState = type { i8*, i8*, %struct.lua_State*, i32, [32 x %struct.LoadS] }
+%struct.Mbuffer = type { i8*, i32, i32 }
+%struct.Node = type { %struct.lua_TValue, %union.TKey }
+%struct.Proto = type { %union.GCObject*, i8, i8, %struct.lua_TValue*, i32*, %struct.Proto**, i32*, %struct.LocVar*, %union.TString**, %union.TString*, i32, i32, i32, i32, i32, i32, i32, i32, %union.GCObject*, i8, i8, i8, i8 }
+%struct.SParser = type { %struct.Zio*, %struct.Mbuffer, i8* }
+%struct.Smain = type { i32, i8**, i32 }
+%struct.Table = type { %union.GCObject*, i8, i8, i8, i8, %struct.Table*, %struct.lua_TValue*, %struct.Node*, %struct.Node*, %union.GCObject*, i32 }
+%struct.Token = type { i32, %union.anon }
+%struct.UpVal = type { %union.GCObject*, i8, i8, %struct.lua_TValue*, %0 }
+%struct.Zio = type { i32, i8*, i8* (%struct.lua_State*, i8*, i32*)*, i8*, %struct.lua_State* }
+%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
+%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
+%struct.anon = type { %union.GCObject*, i8, i8, i8, i32, i32 }
+%struct.expdesc = type { i32, %2, i32, i32 }
+%struct.global_State = type { %struct.stringtable, i8* (i8*, i8*, i32, i32)*, i8*, i8, i8, i32, %union.GCObject*, %union.GCObject**, %union.GCObject*, %union.GCObject*, %union.GCObject*, %union.GCObject*, %struct.Mbuffer, i32, i32, i32, i32, i32, i32, i32 (%struct.lua_State*)*, %struct.lua_TValue, %struct.lua_State*, %struct.UpVal, [9 x %struct.Table*], [17 x %union.TString*] }
+%struct.lconv = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
+%struct.luaL_Buffer = type { i8*, i32, %struct.lua_State*, [8192 x i8] }
+%struct.luaL_Reg = type { i8*, i32 (%struct.lua_State*)* }
+%struct.lua_Debug = type { i32, i8*, i8*, i8*, i8*, i32, i32, i32, i32, [60 x i8], i32 }
+%struct.lua_State = type { %union.GCObject*, i8, i8, i8, %struct.lua_TValue*, %struct.lua_TValue*, %struct.global_State*, %struct.CallInfo*, i32*, %struct.lua_TValue*, %struct.lua_TValue*, %struct.CallInfo*, %struct.CallInfo*, i32, i32, i16, i16, i8, i8, i32, i32, void (%struct.lua_State*, %struct.lua_Debug*)*, %struct.lua_TValue, %struct.lua_TValue, %union.GCObject*, %union.GCObject*, %struct.lua_longjmp*, i32 }
+%struct.lua_TValue = type { %union.anon, i32 }
+%struct.lua_longjmp = type { %struct.lua_longjmp*, i32, i32 }
+%struct.stringtable = type { %union.GCObject**, i32, i32 }
+%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
+%struct.upvaldesc = type { i8, i8 }
+%union.Closure = type { %struct.CClosure }
+%union.GCObject = type { %struct.lua_State }
+%union.TKey = type { %1 }
+%union.TString = type { %struct.anon }
+%union.Udata = type { %4 }
+%union.anon = type { double }
+
+@_ZL7globalL = internal global %struct.lua_State* null, align 4 ; [#uses=2]
+@.str = private constant [39 x i8] c"cannot create state: not enough memory\00" ; [#uses=1]
+@.str1 = private constant [31 x i8] c"(error object is not a string)\00" ; [#uses=1]
+@_ZL8progname = internal global i8* getelementptr inbounds ([4 x i8]* @.str2, i32 0, i32 0), align 4 ; [#uses=7]
+@.str2 = private constant [4 x i8] c"lua\00" ; [#uses=1]
+@.str3 = private constant [6 x i8] c"print\00" ; [#uses=1]
+@.str4 = private constant [27 x i8] c"error calling 'print' (%s)\00" ; [#uses=1]
+@.str5 = private constant [2 x i8] c"\0A\00" ; [#uses=1]
+@stdout = external global %struct._IO_FILE* ; [#uses=8]
+@.str6 = private constant [13 x i8] c"interrupted!\00" ; [#uses=1]
+@.str7 = private constant [6 x i8] c"debug\00" ; [#uses=1]
+@.str8 = private constant [10 x i8] c"traceback\00" ; [#uses=1]
+@.str9 = private constant [7 x i8] c"=stdin\00" ; [#uses=1]
+@.str10 = private constant [8 x i8] c"'<eof>'\00" ; [#uses=1]
+@stdin = external global %struct._IO_FILE* ; [#uses=4]
+@.str11 = private constant [10 x i8] c"return %s\00" ; [#uses=1]
+@.str12 = private constant [8 x i8] c"_PROMPT\00" ; [#uses=1]
+@.str13 = private constant [9 x i8] c"_PROMPT2\00" ; [#uses=1]
+@.str14 = private constant [3 x i8] c"> \00" ; [#uses=1]
+@.str15 = private constant [4 x i8] c">> \00" ; [#uses=1]
+@.str16 = private constant [4 x i8] c"arg\00" ; [#uses=1]
+@.str17 = private constant [2 x i8] c"-\00" ; [#uses=1]
+@.str18 = private constant [3 x i8] c"--\00" ; [#uses=1]
+@.str19 = private constant [29 x i8] c"too many arguments to script\00" ; [#uses=1]
+@.str20 = private constant [16 x i8] c"=(command line)\00" ; [#uses=1]
+@.str21 = private constant [8 x i8] c"require\00" ; [#uses=1]
+@.str22 = private constant [52 x i8] c"Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio\00" ; [#uses=1]
+@stderr = external global %struct._IO_FILE* ; [#uses=10]
+@.str23 = private constant [307 x i8] c"usage: %s [options] [script [args]].\0AAvailable options are:\0A -e stat execute string 'stat'\0A -l name require library 'name'\0A -i enter interactive mode after executing 'script'\0A -v show version information\0A -- stop handling options\0A - execute stdin and stop handling options\0A\00" ; [#uses=1]
+@.str24 = private constant [9 x i8] c"LUA_INIT\00" ; [#uses=1]
+@.str25 = private constant [10 x i8] c"=LUA_INIT\00" ; [#uses=1]
+@.str26 = private constant [5 x i8] c"%s: \00" ; [#uses=1]
+@.str27 = private constant [4 x i8] c"%s\0A\00" ; [#uses=1]
+@.str28 = private constant [23 x i8] c"no calling environment\00" ; [#uses=1]
+@.str129 = private constant [9 x i8] c"no value\00" ; [#uses=1]
+@.str230 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str331 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str432 = private constant [35 x i8] c"function or expression too complex\00" ; [#uses=1]
+@.str1533 = private constant [19 x i8] c"code size overflow\00" ; [#uses=1]
+@.str2634 = private constant [24 x i8] c"constant table overflow\00" ; [#uses=1]
+@.str37 = private constant [27 x i8] c"control structure too long\00" ; [#uses=1]
+@.str835 = private constant [35 x i8] c"attempt to %s %s '%s' (a %s value)\00" ; [#uses=1]
+@.str1936 = private constant [25 x i8] c"attempt to %s a %s value\00" ; [#uses=1]
+@.str210 = private constant [12 x i8] c"concatenate\00" ; [#uses=1]
+@.str311 = private constant [22 x i8] c"perform arithmetic on\00" ; [#uses=1]
+@.str412 = private constant [33 x i8] c"attempt to compare two %s values\00" ; [#uses=1]
+@.str537 = private constant [30 x i8] c"attempt to compare %s with %s\00" ; [#uses=1]
+@.str638 = private constant [10 x i8] c"%s:%d: %s\00" ; [#uses=1]
+@.str739 = private constant [6 x i8] c"local\00" ; [#uses=1]
+@.str813 = private constant [7 x i8] c"global\00" ; [#uses=1]
+@.str940 = private constant [6 x i8] c"field\00" ; [#uses=1]
+@.str1041 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str1142 = private constant [8 x i8] c"upvalue\00" ; [#uses=1]
+@.str1243 = private constant [7 x i8] c"method\00" ; [#uses=1]
+@.str1344 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str1445 = private constant [5 x i8] c"=[C]\00" ; [#uses=1]
+@.str1514 = private constant [2 x i8] c"C\00" ; [#uses=1]
+@.str1646 = private constant [5 x i8] c"main\00" ; [#uses=1]
+@.str1747 = private constant [4 x i8] c"Lua\00" ; [#uses=1]
+@.str1848 = private constant [5 x i8] c"tail\00" ; [#uses=1]
+@.str1915 = private constant [13 x i8] c"=(tail call)\00" ; [#uses=1]
+@.str2049 = private constant [13 x i8] c"(*temporary)\00" ; [#uses=1]
+@.str2150 = private constant [18 x i8] c"not enough memory\00" ; [#uses=1]
+@.str122 = private constant [24 x i8] c"error in error handling\00" ; [#uses=1]
+@_ZTVN10__cxxabiv119__pointer_type_infoE = external global i8* ; [#uses=1]
+@_ZTSP11lua_longjmp = weak_odr constant [15 x i8] c"P11lua_longjmp\00" ; [#uses=1]
+@_ZTVN10__cxxabiv117__class_type_infoE = external global i8* ; [#uses=1]
+@_ZTS11lua_longjmp = weak_odr constant [14 x i8] c"11lua_longjmp\00" ; [#uses=1]
+@_ZTI11lua_longjmp = weak_odr constant %5 { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([14 x i8]* @_ZTS11lua_longjmp, i32 0, i32 0) } ; [#uses=1]
+@_ZTIP11lua_longjmp = weak_odr constant %6 { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv119__pointer_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([15 x i8]* @_ZTSP11lua_longjmp, i32 0, i32 0), i32 0, i8* bitcast (%5* @_ZTI11lua_longjmp to i8*) } ; [#uses=1]
+@.str223 = private constant [17 x i8] c"C stack overflow\00" ; [#uses=1]
+@.str324 = private constant [38 x i8] c"cannot resume non-suspended coroutine\00" ; [#uses=1]
+@.str425 = private constant [51 x i8] c"attempt to yield across metamethod/C-call boundary\00" ; [#uses=1]
+@.str526 = private constant [5 x i8] c"\1BLua\00" ; [#uses=1]
+@.str627 = private constant [15 x i8] c"stack overflow\00" ; [#uses=1]
+@.str728 = private constant [2 x i8] c"n\00" ; [#uses=1]
+@.str829 = private constant [5 x i8] c"call\00" ; [#uses=1]
+@.str47 = private constant [4 x i8] c"and\00" ; [#uses=1]
+@.str148 = private constant [6 x i8] c"break\00" ; [#uses=1]
+@.str249 = private constant [3 x i8] c"do\00" ; [#uses=1]
+@.str350 = private constant [5 x i8] c"else\00" ; [#uses=1]
+@.str451 = private constant [7 x i8] c"elseif\00" ; [#uses=1]
+@.str552 = private constant [4 x i8] c"end\00" ; [#uses=1]
+@.str653 = private constant [6 x i8] c"false\00" ; [#uses=1]
+@.str754 = private constant [4 x i8] c"for\00" ; [#uses=1]
+@.str855 = private constant [9 x i8] c"function\00" ; [#uses=1]
+@.str956 = private constant [3 x i8] c"if\00" ; [#uses=1]
+@.str1057 = private constant [3 x i8] c"in\00" ; [#uses=1]
+@.str1158 = private constant [6 x i8] c"local\00" ; [#uses=1]
+@.str1259 = private constant [4 x i8] c"nil\00" ; [#uses=1]
+@.str1360 = private constant [4 x i8] c"not\00" ; [#uses=1]
+@.str1461 = private constant [3 x i8] c"or\00" ; [#uses=1]
+@.str1562 = private constant [7 x i8] c"repeat\00" ; [#uses=1]
+@.str1663 = private constant [7 x i8] c"return\00" ; [#uses=1]
+@.str1764 = private constant [5 x i8] c"then\00" ; [#uses=1]
+@.str1865 = private constant [5 x i8] c"true\00" ; [#uses=1]
+@.str1966 = private constant [6 x i8] c"until\00" ; [#uses=1]
+@.str2067 = private constant [6 x i8] c"while\00" ; [#uses=1]
+@.str2168 = private constant [3 x i8] c"..\00" ; [#uses=1]
+@.str2251 = private constant [4 x i8] c"...\00" ; [#uses=1]
+@.str2352 = private constant [3 x i8] c"==\00" ; [#uses=1]
+@.str2453 = private constant [3 x i8] c">=\00" ; [#uses=1]
+@.str2554 = private constant [3 x i8] c"<=\00" ; [#uses=1]
+@.str2669 = private constant [3 x i8] c"~=\00" ; [#uses=1]
+@.str2755 = private constant [9 x i8] c"<number>\00" ; [#uses=1]
+@.str2856 = private constant [7 x i8] c"<name>\00" ; [#uses=1]
+@.str29 = private constant [9 x i8] c"<string>\00" ; [#uses=1]
+@.str30 = private constant [6 x i8] c"<eof>\00" ; [#uses=1]
+@luaX_tokens = hidden constant [32 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str47, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str148, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str249, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str350, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str451, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str552, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str653, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str754, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str855, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str956, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str1057, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str1158, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str1259, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str1360, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str1461, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str1562, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str1663, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str1764, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str1865, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str1966, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str2067, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2168, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str2251, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2352, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2453, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2554, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str2669, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str2755, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str2856, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str29, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str30, i32 0, i32 0), i8* null], align 4 ; [#uses=3]
+@.str31 = private constant [9 x i8] c"char(%d)\00" ; [#uses=1]
+@.str32 = private constant [3 x i8] c"%c\00" ; [#uses=1]
+@.str33 = private constant [10 x i8] c"%s:%d: %s\00" ; [#uses=1]
+@.str34 = private constant [13 x i8] c"%s near '%s'\00" ; [#uses=1]
+@.str35 = private constant [30 x i8] c"invalid long string delimiter\00" ; [#uses=1]
+@.str36 = private constant [2 x i8] c".\00" ; [#uses=1]
+@.str3770 = private constant [3 x i8] c"Ee\00" ; [#uses=1]
+@.str38 = private constant [3 x i8] c"+-\00" ; [#uses=1]
+@.str39 = private constant [17 x i8] c"malformed number\00" ; [#uses=1]
+@.str40 = private constant [25 x i8] c"lexical element too long\00" ; [#uses=1]
+@.str41 = private constant [18 x i8] c"unfinished string\00" ; [#uses=1]
+@.str42 = private constant [26 x i8] c"escape sequence too large\00" ; [#uses=1]
+@.str43 = private constant [23 x i8] c"unfinished long string\00" ; [#uses=1]
+@.str44 = private constant [24 x i8] c"unfinished long comment\00" ; [#uses=1]
+@.str45 = private constant [33 x i8] c"nesting of [[...]] is deprecated\00" ; [#uses=1]
+@.str46 = private constant [25 x i8] c"chunk has too many lines\00" ; [#uses=1]
+@.str72 = private constant [39 x i8] c"memory allocation error: block too big\00" ; [#uses=1]
+@luaO_nilobject_ = hidden global %7 { %8 { %union.GCObject* null, [4 x i8] undef }, i32 0 }, align 4 ; [#uses=1]
+@_ZZ9luaO_log2jE5log_2 = internal constant [256 x i8] c"\00\01\02\02\03\03\03\03\04\04\04\04\04\04\04\04\05\05\05\05\05\05\05\05\05\05\05\05\05\05\05\05\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\07\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08\08", align 1 ; [#uses=1]
+@.str77 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str178 = private constant [7 x i8] c"(null)\00" ; [#uses=1]
+@.str279 = private constant [3 x i8] c"%p\00" ; [#uses=1]
+@.str380 = private constant [2 x i8] c"%\00" ; [#uses=1]
+@.str481 = private constant [4 x i8] c"...\00" ; [#uses=1]
+@.str582 = private constant [3 x i8] c"\0A\0D\00" ; [#uses=1]
+@.str683 = private constant [10 x i8] c"[string \22\00" ; [#uses=1]
+@.str784 = private constant [3 x i8] c"\22]\00" ; [#uses=1]
+@.str90 = private constant [5 x i8] c"MOVE\00" ; [#uses=1]
+@.str191 = private constant [6 x i8] c"LOADK\00" ; [#uses=1]
+@.str292 = private constant [9 x i8] c"LOADBOOL\00" ; [#uses=1]
+@.str393 = private constant [8 x i8] c"LOADNIL\00" ; [#uses=1]
+@.str494 = private constant [9 x i8] c"GETUPVAL\00" ; [#uses=1]
+@.str595 = private constant [10 x i8] c"GETGLOBAL\00" ; [#uses=1]
+@.str696 = private constant [9 x i8] c"GETTABLE\00" ; [#uses=1]
+@.str797 = private constant [10 x i8] c"SETGLOBAL\00" ; [#uses=1]
+@.str898 = private constant [9 x i8] c"SETUPVAL\00" ; [#uses=1]
+@.str999 = private constant [9 x i8] c"SETTABLE\00" ; [#uses=1]
+@.str10100 = private constant [9 x i8] c"NEWTABLE\00" ; [#uses=1]
+@.str11101 = private constant [5 x i8] c"SELF\00" ; [#uses=1]
+@.str12102 = private constant [4 x i8] c"ADD\00" ; [#uses=1]
+@.str13103 = private constant [4 x i8] c"SUB\00" ; [#uses=1]
+@.str14104 = private constant [4 x i8] c"MUL\00" ; [#uses=1]
+@.str15105 = private constant [4 x i8] c"DIV\00" ; [#uses=1]
+@.str16106 = private constant [4 x i8] c"MOD\00" ; [#uses=1]
+@.str17107 = private constant [4 x i8] c"POW\00" ; [#uses=1]
+@.str18108 = private constant [4 x i8] c"UNM\00" ; [#uses=1]
+@.str19109 = private constant [4 x i8] c"NOT\00" ; [#uses=1]
+@.str20110 = private constant [4 x i8] c"LEN\00" ; [#uses=1]
+@.str21111 = private constant [7 x i8] c"CONCAT\00" ; [#uses=1]
+@.str22112 = private constant [4 x i8] c"JMP\00" ; [#uses=1]
+@.str23113 = private constant [3 x i8] c"EQ\00" ; [#uses=1]
+@.str24114 = private constant [3 x i8] c"LT\00" ; [#uses=1]
+@.str25115 = private constant [3 x i8] c"LE\00" ; [#uses=1]
+@.str26116 = private constant [5 x i8] c"TEST\00" ; [#uses=1]
+@.str27117 = private constant [8 x i8] c"TESTSET\00" ; [#uses=1]
+@.str28118 = private constant [5 x i8] c"CALL\00" ; [#uses=1]
+@.str29119 = private constant [9 x i8] c"TAILCALL\00" ; [#uses=1]
+@.str30120 = private constant [7 x i8] c"RETURN\00" ; [#uses=1]
+@.str31121 = private constant [8 x i8] c"FORLOOP\00" ; [#uses=1]
+@.str32122 = private constant [8 x i8] c"FORPREP\00" ; [#uses=1]
+@.str33123 = private constant [9 x i8] c"TFORLOOP\00" ; [#uses=1]
+@.str34124 = private constant [8 x i8] c"SETLIST\00" ; [#uses=1]
+@.str35125 = private constant [6 x i8] c"CLOSE\00" ; [#uses=1]
+@.str36126 = private constant [8 x i8] c"CLOSURE\00" ; [#uses=1]
+@.str37127 = private constant [7 x i8] c"VARARG\00" ; [#uses=1]
+@luaP_opnames = hidden constant [39 x i8*] [i8* getelementptr inbounds ([5 x i8]* @.str90, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str191, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str292, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str393, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str494, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str595, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str696, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8]* @.str797, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str898, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str999, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str10100, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str11101, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str12102, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str13103, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str14104, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str15105, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str16106, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str17107, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str18108, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str19109, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str20110, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str21111, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8]* @.str22112, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str23113, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str24114, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8]* @.str25115, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str26116, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str27117, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str28118, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str29119, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str30120, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str31121, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str32122, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str33123, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str34124, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str35125, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str36126, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str37127, i32 0, i32 0), i8* null], align 4 ; [#uses=0]
+@luaP_opmodes = hidden constant [38 x i8] c"`qT`Pql1\10<Tl||||||```h\22\BC\BC\BC\E4\E4TT\10bb\84\14\00QP", align 1 ; [#uses=8]
+@.str12957 = private constant [13 x i8] c"syntax error\00" ; [#uses=1]
+@.str1130 = private constant [24 x i8] c"variables in assignment\00" ; [#uses=1]
+@_ZL8priority = internal global [15 x %struct.upvaldesc] [%struct.upvaldesc { i8 6, i8 6 }, %struct.upvaldesc { i8 6, i8 6 }, %struct.upvaldesc { i8 7, i8 7 }, %struct.upvaldesc { i8 7, i8 7 }, %struct.upvaldesc { i8 7, i8 7 }, %struct.upvaldesc { i8 10, i8 9 }, %struct.upvaldesc { i8 5, i8 4 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 3, i8 3 }, %struct.upvaldesc { i8 2, i8 2 }, %struct.upvaldesc { i8 1, i8 1 }], align 1 ; [#uses=2]
+@.str2131 = private constant [43 x i8] c"cannot use '...' outside a vararg function\00" ; [#uses=1]
+@.str3132 = private constant [5 x i8] c"self\00" ; [#uses=1]
+@.str4133 = private constant [24 x i8] c"constant table overflow\00" ; [#uses=1]
+@.str5134 = private constant [4 x i8] c"arg\00" ; [#uses=1]
+@.str6135 = private constant [25 x i8] c"<name> or '...' expected\00" ; [#uses=1]
+@.str7136 = private constant [16 x i8] c"local variables\00" ; [#uses=1]
+@.str8137 = private constant [25 x i8] c"too many local variables\00" ; [#uses=1]
+@.str9138 = private constant [23 x i8] c"items in a constructor\00" ; [#uses=1]
+@.str10139 = private constant [34 x i8] c"main function has more than %d %s\00" ; [#uses=1]
+@.str11140 = private constant [40 x i8] c"function at line %d has more than %d %s\00" ; [#uses=1]
+@.str12141 = private constant [49 x i8] c"ambiguous syntax (function call x new statement)\00" ; [#uses=1]
+@.str13142 = private constant [28 x i8] c"function arguments expected\00" ; [#uses=1]
+@.str14143 = private constant [18 x i8] c"unexpected symbol\00" ; [#uses=1]
+@.str15144 = private constant [9 x i8] c"upvalues\00" ; [#uses=1]
+@.str16145 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str17146 = private constant [17 x i8] c"no loop to break\00" ; [#uses=1]
+@.str18147 = private constant [21 x i8] c"'=' or 'in' expected\00" ; [#uses=1]
+@.str19148 = private constant [16 x i8] c"(for generator)\00" ; [#uses=1]
+@.str20149 = private constant [12 x i8] c"(for state)\00" ; [#uses=1]
+@.str21150 = private constant [14 x i8] c"(for control)\00" ; [#uses=1]
+@.str22151 = private constant [12 x i8] c"(for index)\00" ; [#uses=1]
+@.str23152 = private constant [12 x i8] c"(for limit)\00" ; [#uses=1]
+@.str24153 = private constant [11 x i8] c"(for step)\00" ; [#uses=1]
+@.str25154 = private constant [41 x i8] c"'%s' expected (to close '%s' at line %d)\00" ; [#uses=1]
+@.str26155 = private constant [14 x i8] c"'%s' expected\00" ; [#uses=1]
+@.str27156 = private constant [33 x i8] c"chunk has too many syntax levels\00" ; [#uses=1]
+@.str158 = private constant [18 x i8] c"not enough memory\00" ; [#uses=1]
+@_ZL10dummynode_ = internal global %9 { %7 { %8 { %union.GCObject* null, [4 x i8] undef }, i32 0 }, %10 { %11 { %8 { %union.GCObject* null, [4 x i8] undef }, i32 0, %struct.Node* null } } }, align 4 ; [#uses=1]
+@.str164 = private constant [19 x i8] c"table index is nil\00" ; [#uses=1]
+@.str1165 = private constant [19 x i8] c"table index is NaN\00" ; [#uses=1]
+@.str2166 = private constant [15 x i8] c"table overflow\00" ; [#uses=1]
+@.str3167 = private constant [22 x i8] c"invalid key to 'next'\00" ; [#uses=1]
+@.str177 = private constant [4 x i8] c"nil\00" ; [#uses=1]
+@.str1178 = private constant [8 x i8] c"boolean\00" ; [#uses=1]
+@.str2179 = private constant [9 x i8] c"userdata\00" ; [#uses=1]
+@.str3180 = private constant [7 x i8] c"number\00" ; [#uses=1]
+@.str4181 = private constant [7 x i8] c"string\00" ; [#uses=1]
+@.str5182 = private constant [6 x i8] c"table\00" ; [#uses=1]
+@.str6183 = private constant [9 x i8] c"function\00" ; [#uses=1]
+@.str7184 = private constant [7 x i8] c"thread\00" ; [#uses=1]
+@.str8185 = private constant [6 x i8] c"proto\00" ; [#uses=1]
+@.str9186 = private constant [6 x i8] c"upval\00" ; [#uses=1]
+@luaT_typenames = hidden constant [11 x i8*] [i8* getelementptr inbounds ([4 x i8]* @.str177, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8]* @.str1178, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str2179, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str3180, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str4181, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str5182, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str6183, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str2179, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str7184, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str8185, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str9186, i32 0, i32 0)], align 4 ; [#uses=1]
+@_ZZ9luaT_initP9lua_StateE14luaT_eventname = internal constant [17 x i8*] [i8* getelementptr inbounds ([8 x i8]* @.str10188, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8]* @.str11189, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str12190, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str13191, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str14192, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str15193, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str16194, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str17195, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str18196, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str19197, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str20198, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str21199, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @.str22200, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str23201, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8]* @.str24202, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8]* @.str25203, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8]* @.str26204, i32 0, i32 0)], align 4 ; [#uses=2]
+@.str10188 = private constant [8 x i8] c"__index\00" ; [#uses=1]
+@.str11189 = private constant [11 x i8] c"__newindex\00" ; [#uses=1]
+@.str12190 = private constant [5 x i8] c"__gc\00" ; [#uses=1]
+@.str13191 = private constant [7 x i8] c"__mode\00" ; [#uses=1]
+@.str14192 = private constant [5 x i8] c"__eq\00" ; [#uses=1]
+@.str15193 = private constant [6 x i8] c"__add\00" ; [#uses=1]
+@.str16194 = private constant [6 x i8] c"__sub\00" ; [#uses=1]
+@.str17195 = private constant [6 x i8] c"__mul\00" ; [#uses=1]
+@.str18196 = private constant [6 x i8] c"__div\00" ; [#uses=1]
+@.str19197 = private constant [6 x i8] c"__mod\00" ; [#uses=1]
+@.str20198 = private constant [6 x i8] c"__pow\00" ; [#uses=1]
+@.str21199 = private constant [6 x i8] c"__unm\00" ; [#uses=1]
+@.str22200 = private constant [6 x i8] c"__len\00" ; [#uses=1]
+@.str23201 = private constant [5 x i8] c"__lt\00" ; [#uses=1]
+@.str24202 = private constant [5 x i8] c"__le\00" ; [#uses=1]
+@.str25203 = private constant [9 x i8] c"__concat\00" ; [#uses=1]
+@.str26204 = private constant [7 x i8] c"__call\00" ; [#uses=1]
+@.str208 = private constant [5 x i8] c"\1BLua\00" ; [#uses=1]
+@.str1209 = private constant [14 x i8] c"binary string\00" ; [#uses=1]
+@.str2210 = private constant [3 x i8] c"=?\00" ; [#uses=1]
+@.str3211 = private constant [14 x i8] c"code too deep\00" ; [#uses=1]
+@.str4212 = private constant [9 x i8] c"bad code\00" ; [#uses=1]
+@.str5213 = private constant [15 x i8] c"unexpected end\00" ; [#uses=1]
+@.str6214 = private constant [13 x i8] c"bad constant\00" ; [#uses=1]
+@.str7215 = private constant [12 x i8] c"bad integer\00" ; [#uses=1]
+@.str8216 = private constant [28 x i8] c"%s: %s in precompiled chunk\00" ; [#uses=1]
+@.str9217 = private constant [11 x i8] c"bad header\00" ; [#uses=1]
+@.str220 = private constant [6 x i8] c"%.14g\00" ; [#uses=1]
+@.str1221 = private constant [6 x i8] c"index\00" ; [#uses=1]
+@.str2222 = private constant [17 x i8] c"loop in gettable\00" ; [#uses=1]
+@.str3223 = private constant [17 x i8] c"loop in settable\00" ; [#uses=1]
+@.str4224 = private constant [23 x i8] c"string length overflow\00" ; [#uses=1]
+@.str5225 = private constant [14 x i8] c"get length of\00" ; [#uses=1]
+@.str6226 = private constant [37 x i8] c"'for' initial value must be a number\00" ; [#uses=1]
+@.str7227 = private constant [29 x i8] c"'for' limit must be a number\00" ; [#uses=1]
+@.str8228 = private constant [28 x i8] c"'for' step must be a number\00" ; [#uses=1]
+@.str242 = private constant [22 x i8] c"bad argument #%d (%s)\00" ; [#uses=1]
+@.str124358 = private constant [2 x i8] c"n\00" ; [#uses=1]
+@.str2244 = private constant [7 x i8] c"method\00" ; [#uses=1]
+@.str3245 = private constant [30 x i8] c"calling '%s' on bad self (%s)\00" ; [#uses=1]
+@.str4246 = private constant [2 x i8] c"?\00" ; [#uses=1]
+@.str5247 = private constant [30 x i8] c"bad argument #%d to '%s' (%s)\00" ; [#uses=1]
+@.str6248 = private constant [20 x i8] c"%s expected, got %s\00" ; [#uses=1]
+@.str7249 = private constant [3 x i8] c"Sl\00" ; [#uses=1]
+@.str8250 = private constant [8 x i8] c"%s:%d: \00" ; [#uses=1]
+@.str9251 = private constant [1 x i8] zeroinitializer ; [#uses=1]
+@.str10252 = private constant [20 x i8] c"invalid option '%s'\00" ; [#uses=1]
+@.str11253 = private constant [20 x i8] c"stack overflow (%s)\00" ; [#uses=1]
+@.str12254 = private constant [15 x i8] c"value expected\00" ; [#uses=1]
+@.str13255 = private constant [8 x i8] c"_LOADED\00" ; [#uses=1]
+@.str14256 = private constant [30 x i8] c"name conflict for module '%s'\00" ; [#uses=1]
+@.str15257 = private constant [7 x i8] c"=stdin\00" ; [#uses=1]
+@.str16258 = private constant [4 x i8] c"@%s\00" ; [#uses=1]
+@.str17259 = private constant [2 x i8] c"r\00" ; [#uses=1]
+@.str18260 = private constant [5 x i8] c"open\00" ; [#uses=1]
+@.str19261 = private constant [5 x i8] c"\1BLua\00" ; [#uses=1]
+@.str20262 = private constant [3 x i8] c"rb\00" ; [#uses=1]
+@.str21263 = private constant [7 x i8] c"reopen\00" ; [#uses=1]
+@.str22264 = private constant [5 x i8] c"read\00" ; [#uses=1]
+@.str23265 = private constant [50 x i8] c"PANIC: unprotected error in call to Lua API (%s)\0A\00" ; [#uses=1]
+@.str24266 = private constant [2 x i8] c"\0A\00" ; [#uses=1]
+@.str25267 = private constant [17 x i8] c"cannot %s %s: %s\00" ; [#uses=1]
+@.str268 = private constant [7 x i8] c"assert\00" ; [#uses=1]
+@.str1269 = private constant [15 x i8] c"collectgarbage\00" ; [#uses=1]
+@.str2270 = private constant [7 x i8] c"dofile\00" ; [#uses=1]
+@.str3271 = private constant [6 x i8] c"error\00" ; [#uses=1]
+@.str4272 = private constant [7 x i8] c"gcinfo\00" ; [#uses=1]
+@.str5273 = private constant [8 x i8] c"getfenv\00" ; [#uses=1]
+@.str6274 = private constant [13 x i8] c"getmetatable\00" ; [#uses=1]
+@.str7275 = private constant [9 x i8] c"loadfile\00" ; [#uses=1]
+@.str8276 = private constant [5 x i8] c"load\00" ; [#uses=1]
+@.str9277 = private constant [11 x i8] c"loadstring\00" ; [#uses=1]
+@.str10278 = private constant [5 x i8] c"next\00" ; [#uses=1]
+@.str11279 = private constant [6 x i8] c"pcall\00" ; [#uses=1]
+@.str12280 = private constant [6 x i8] c"print\00" ; [#uses=1]
+@.str13281 = private constant [9 x i8] c"rawequal\00" ; [#uses=1]
+@.str14282 = private constant [7 x i8] c"rawget\00" ; [#uses=1]
+@.str15283 = private constant [7 x i8] c"rawset\00" ; [#uses=1]
+@.str16284 = private constant [7 x i8] c"select\00" ; [#uses=1]
+@.str17285 = private constant [8 x i8] c"setfenv\00" ; [#uses=1]
+@.str18286 = private constant [13 x i8] c"setmetatable\00" ; [#uses=1]
+@.str19287 = private constant [9 x i8] c"tonumber\00" ; [#uses=1]
+@.str20288 = private constant [9 x i8] c"tostring\00" ; [#uses=1]
+@.str21289 = private constant [5 x i8] c"type\00" ; [#uses=1]
+@.str22290 = private constant [7 x i8] c"unpack\00" ; [#uses=1]
+@.str23291 = private constant [7 x i8] c"xpcall\00" ; [#uses=1]
+@_ZL10base_funcs = internal global [25 x %struct.luaL_Reg] [%struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str268, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_assertP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([15 x i8]* @.str1269, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z19luaB_collectgarbageP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([7 x i8]* @.str2270, i32 0, i32 0), i32 (%struct.lua_State*)* @_Z11luaB_dofileP9lua_State }, %struct.luaL_Reg { i8* getelementptr inbounds ([6 x i8]* @.str3271, i32 0, i32 0), i32 (%struc