compiler/libec; bootstrap: Improved anonymous instantiations implementation
authorJerome St-Louis <jerome@ecere.com>
Sun, 31 Mar 2013 18:07:45 +0000 (14:07 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sun, 31 Mar 2013 18:07:45 +0000 (14:07 -0400)
commit6d97a509b8c24eca0a6f366c76dbbc8b13522bb5
treeec5fe52a63ec0db2cf7271fafa466a61358144ee
parentdd1e10a0fca141371c6d0a2d52908ceef9716977
compiler/libec; bootstrap: Improved anonymous instantiations implementation
- Previously, a global '__ecereTemp%d' variable was used to temporarily hold the instance handle
  This caused problems at least with GCC 4.4.5/64 bit with -O2, where multiple initializers
  used the same variable, e.g. Array { [ Object { }, Object { } ]
- Now using GNU C compound statement expression with an internal declaration to solve this issue
20 files changed:
compiler/bootstrap/ecere/bootstrap/AVLTree.c
compiler/bootstrap/ecere/bootstrap/BufferedFile.c
compiler/bootstrap/ecere/bootstrap/DualPipe.c
compiler/bootstrap/ecere/bootstrap/List.c
compiler/bootstrap/ecere/bootstrap/Map.c
compiler/bootstrap/ecere/bootstrap/instance.c
compiler/bootstrap/libec/bootstrap/ast.c
compiler/bootstrap/libec/bootstrap/copy.c
compiler/bootstrap/libec/bootstrap/dbpass.c
compiler/bootstrap/libec/bootstrap/firstPass.c
compiler/bootstrap/libec/bootstrap/loadSymbols.c
compiler/bootstrap/libec/bootstrap/pass0.c
compiler/bootstrap/libec/bootstrap/pass1.c
compiler/bootstrap/libec/bootstrap/pass15.c
compiler/bootstrap/libec/bootstrap/pass16.c
compiler/bootstrap/libec/bootstrap/pass2.c
compiler/libec/locale/ec.pot
compiler/libec/src/pass15.ec
compiler/libec/src/pass16.ec
compiler/libec/src/pass2.ec