diff --git a/src/main/antlr4/Semantics.g4 b/src/main/antlr4/Semantics.g4 index d2a479971..821111783 100644 --- a/src/main/antlr4/Semantics.g4 +++ b/src/main/antlr4/Semantics.g4 @@ -3,53 +3,59 @@ grammar Semantics; // See aslp/libASL/asl.ott for reference grammar Bap-ali-plugin/asli_lifer.ml may also be useful for // visitors -statements: QUOTE stmt QUOTE (COMMA QUOTE stmt QUOTE)*; - stmt: 'Stmt_Assign' OPEN_PAREN lexpr COMMA expr CLOSE_PAREN # Assign - | 'Stmt_ConstDecl' OPEN_PAREN type COMMA lvar=ID COMMA expr CLOSE_PAREN # ConstDecl - | 'Stmt_VarDecl' OPEN_PAREN type COMMA lvar=ID COMMA expr CLOSE_PAREN # VarDecl + | 'Stmt_ConstDecl' OPEN_PAREN type COMMA lvar=ident COMMA expr CLOSE_PAREN # ConstDecl + | 'Stmt_VarDecl' OPEN_PAREN type COMMA lvar=ident COMMA expr CLOSE_PAREN # VarDecl | 'Stmt_VarDeclsNoInit' OPEN_PAREN type COMMA OPEN_BRACKET lvars CLOSE_BRACKET CLOSE_PAREN # VarDeclsNoInit | 'Stmt_Assert' OPEN_PAREN expr CLOSE_PAREN # Assert - | 'Stmt_TCall' OPEN_PAREN name=ID COMMA OPEN_BRACKET tes=exprs? CLOSE_BRACKET COMMA OPEN_BRACKET args=exprs? CLOSE_BRACKET CLOSE_PAREN # TCall - | 'Stmt_If' OPEN_PAREN cond=expr COMMA OPEN_BRACKET stmt+ CLOSE_BRACKET COMMA OPEN_BRACKET CLOSE_BRACKET COMMA elseStmt? CLOSE_PAREN # If // theoretically some sort of 'Elsif' could be within the middle brackets? - | 'Stmt_Throw' OPEN_PAREN str=ID* CLOSE_PAREN # Throw + | 'Stmt_TCall' OPEN_PAREN name=ident COMMA OPEN_BRACKET tes=exprs? CLOSE_BRACKET COMMA OPEN_BRACKET args=exprs? CLOSE_BRACKET CLOSE_PAREN # TCall + | 'Stmt_If' OPEN_PAREN cond=expr COMMA OPEN_BRACKET thenStmts=stmts? CLOSE_BRACKET COMMA OPEN_BRACKET CLOSE_BRACKET COMMA OPEN_BRACKET elseStmts=stmts? CLOSE_BRACKET CLOSE_PAREN # If // ASLp transforms else-if into nested if/else statements. + | 'Stmt_Throw' OPEN_PAREN str=ident* CLOSE_PAREN # Throw ; -lvars: OPEN_PAREN ID CLOSE_PAREN (SCOLON OPEN_PAREN ID CLOSE_PAREN)* ; +statements: QUOTE stmt QUOTE (COMMA QUOTE stmt QUOTE)*; + +lvars: ident (SCOLON ident)*; -exprs: OPEN_PAREN expr CLOSE_PAREN (SCOLON OPEN_PAREN expr CLOSE_PAREN)*; +exprs: expr (SCOLON expr)*; -elseStmt: OPEN_PAREN 'else' stmt+ CLOSE_PAREN; +stmts: stmt (SCOLON stmt)*; type: 'Type_Bits' OPEN_PAREN size=expr CLOSE_PAREN # TypeBits - | 'Type_Constructor' OPEN_PAREN str=ID CLOSE_PAREN # TypeConstructor - | 'Type_Register' OPEN_PAREN QUOTE size=(DEC | BINARY) QUOTE COMMA regfield (COMMA regfield)* CLOSE_PAREN # TypeRegister + | 'Type_Constructor' OPEN_PAREN str=ident CLOSE_PAREN # TypeConstructor + | 'Type_Register' OPEN_PAREN QUOTE size=integer QUOTE COMMA regfield (COMMA regfield)* CLOSE_PAREN # TypeRegister ; -regfield: OPEN_PAREN OPEN_BRACKET slice CLOSE_BRACKET COMMA id=ID CLOSE_PAREN; +regfield: OPEN_PAREN OPEN_BRACKET slice CLOSE_BRACKET COMMA id=ident CLOSE_PAREN; -lexpr: 'LExpr_Var' OPEN_PAREN ID CLOSE_PAREN # LExprVar - | 'LExpr_Field' OPEN_PAREN lexpr COMMA field=ID CLOSE_PAREN # LExprField +lexpr: 'LExpr_Var' OPEN_PAREN ident CLOSE_PAREN # LExprVar + | 'LExpr_Field' OPEN_PAREN lexpr COMMA field=ident CLOSE_PAREN # LExprField | 'LExpr_Array' OPEN_PAREN lexpr COMMA index=expr CLOSE_PAREN # LExprArray ; -expr: 'Expr_Var' OPEN_PAREN ID CLOSE_PAREN # ExprVar - | 'Expr_TApply' OPEN_PAREN ID COMMA OPEN_BRACKET tes=exprs? CLOSE_BRACKET COMMA OPEN_BRACKET args=exprs? CLOSE_BRACKET CLOSE_PAREN # ExprTApply +expr: 'Expr_Var' OPEN_PAREN ident CLOSE_PAREN # ExprVar + | 'Expr_TApply' OPEN_PAREN ident COMMA OPEN_BRACKET tes=exprs? CLOSE_BRACKET COMMA OPEN_BRACKET args=exprs? CLOSE_BRACKET CLOSE_PAREN # ExprTApply | 'Expr_Slices' OPEN_PAREN expr COMMA OPEN_BRACKET slices CLOSE_BRACKET CLOSE_PAREN # ExprSlices - | 'Expr_Field' OPEN_PAREN expr COMMA field=ID CLOSE_PAREN # ExprField + | 'Expr_Field' OPEN_PAREN expr COMMA field=ident CLOSE_PAREN # ExprField | 'Expr_Array' OPEN_PAREN array=expr COMMA index=expr CLOSE_PAREN # ExprArray - | 'Expr_LitInt' OPEN_PAREN QUOTE value=(DEC | BINARY) QUOTE CLOSE_PAREN # ExprLitInt - | 'Expr_LitBits' OPEN_PAREN QUOTE value=BINARY QUOTE CLOSE_PAREN # ExprLitBits // in future may need to account for case where whitespace is in the binary string + | integer # ExprLitInt + | bits # ExprLitBits ; +// Slice_HiLo only ever appears within Type_Register fields slice: 'Slice_LoWd' OPEN_PAREN lo=expr COMMA wd=expr CLOSE_PAREN # Slice_LoWd | 'Slice_HiLo' OPEN_PAREN hi=expr COMMA lo=expr CLOSE_PAREN # Slice_HiLo ; // multiple of 'slice' - distinct from Expr_Slices -slices: OPEN_PAREN slice CLOSE_PAREN (SCOLON OPEN_PAREN slice CLOSE_PAREN)*; +slices: slice (SCOLON slice)*; + +ident: QUOTE ID QUOTE; + +integer: DEC; +bits: BINARY; // in future may need to account for case where whitespace is in the binary string -BINARY: [0-1]+; +BINARY: SQUOTE [0-1]+ SQUOTE; DEC: [0-9]+; ID: [a-zA-Z_][a-zA-Z0-9_.]*; @@ -60,6 +66,7 @@ COMMA: ','; OPEN_BRACKET: '['; CLOSE_BRACKET: ']'; QUOTE: '"'; +SQUOTE: '\''; SCOLON: ';'; // Ignored diff --git a/src/main/scala/translating/GTIRBToIR.scala b/src/main/scala/translating/GTIRBToIR.scala index fa33bb147..10c90aa39 100644 --- a/src/main/scala/translating/GTIRBToIR.scala +++ b/src/main/scala/translating/GTIRBToIR.scala @@ -226,6 +226,13 @@ class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[ } } + private def getPCTarget(block: Block): Register = { + block.statements.last match { + case LocalAssign(lhs: Register, rhs: Register, _) if lhs.name == "_PC" => rhs + case _ => throw Exception(s"expected block ${block.label} to have a program counter assignment at its end") + } + } + private def byteStringToString(byteString: ByteString): String = { Base64.getUrlEncoder.encodeToString(byteString.toByteArray) } @@ -304,26 +311,6 @@ class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[ procedure.addBlocks(newBlocks) newBlockCount += newBlocks.size - if (queue.nonEmpty) { - currentBlock = queue.dequeue() - currentStatement = currentBlock.statements.head - } else { - breakLoop = true - } - // assignment to program counter not associated with an edge - // caused by indirect call that DDisasm fails to identify - // potentially requires splitting block - case l: LocalAssign if l.lhs == Register("_PC", BitVecType(64)) => - val newBlocks = handleUnidentifiedIndirectCall(l, currentBlock, block.label, newBlockCount) - procedure.addBlocks(newBlocks) - newBlockCount += newBlocks.size - - for (n <- newBlocks) { - if (n.statements.nonEmpty) { - queue.enqueue(n) - } - } - if (queue.nonEmpty) { currentBlock = queue.dequeue() currentStatement = currentBlock.statements.head @@ -343,60 +330,6 @@ class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[ } } - // Handles assignments to the program counter that are not related to edges in the GTIRB CFG - // These are likely blr instructions (which are indirect calls) that DDisasm failed to identify as branching - // If the PC assignment is mid-block, the block is split into two, and an indirect call is created at the end of the first block - // If the PC assignment is at the end of the block, an indirect call is added to the block - // The PC assignment is removed in all cases - // No other cases of unhandled program counter assignments have been identified yet - private def handleUnidentifiedIndirectCall(l: LocalAssign, currentBlock: Block, parentLabel: String, newBlockCountIn: Int): ArrayBuffer[Block] = { - val newBlocks = ArrayBuffer[Block]() - var newBlockCount = newBlockCountIn - - val target = l.rhs match { - case r: Register => r - case _ => throw Exception(s"unhandled indirect call $l does not assign a register to __PC") - } - val returnTarget = if (currentBlock.statements.hasNext(l)) { - // unidentified indirect call is mid-block - val afterStatements = currentBlock.statements.splitOn(l) - val afterBlock = Block(parentLabel + "$__" + newBlockCount, None, afterStatements) - newBlockCount += 1 - newBlocks.append(afterBlock) - afterBlock.replaceJump(currentBlock.jump) - // we are assuming this is a blr instruction and so R30 has been set to point to the next instruction - afterBlock - } else { - // unidentified indirect call is at end of block with fallthrough edge - currentBlock.jump match { - case g: GoTo if g.targets.nonEmpty => - if (g.targets.size == 1) { - g.targets.head - } else { - // case where goto has multiple targets: create an extra block and point to that - val afterBlock = Block(parentLabel + "$__" + newBlockCount) - newBlockCount += 1 - newBlocks.append(afterBlock) - afterBlock.replaceJump(currentBlock.jump) - afterBlock - } - case _ => - throw Exception(s"unhandled indirect call $l is at end of block ${currentBlock.label} that ends in call ${currentBlock.jump}") - } - } - // check that R30 has been set by previous statement - if it did not then this is a case that requires further investigation - currentBlock.statements.getPrev(l) match { - case LocalAssign(Register("R30", BitVecType(64)), _, _) => - case _ => throw Exception("unhandled assignment to PC did not set R30 beforehand") - } - - val indirectCall = IndirectCall(target, Some(returnTarget)) - currentBlock.replaceJump(indirectCall) - currentBlock.statements.remove(l) - - newBlocks - } - // handles if statements that are not related to conditional edges in the GTIRB CFG // this creates new blocks for the contents of the if statements and removes the TempIfs private def handleIfStatement(i: TempIf, currentBlock: Block, parentLabel: String, newBlockCountIn: Int): ArrayBuffer[Block] = { @@ -549,7 +482,7 @@ class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[ IndirectCall(Register("R30", BitVecType(64)), None) } else if (edgeLabels.forall { (e: EdgeLabel) => !e.conditional && !e.direct && e.`type` == Type_Branch }) { - // resolved indirect call + // resolved indirect call with multiple blocks as targets val targets = mutable.Set[Block]() for (edge <- outgoingEdges) { if (uuidToBlock.contains(edge.targetUuid)) { @@ -579,12 +512,11 @@ class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[ handleDirectCallWithReturn(edge0, edge1, block) case (EdgeLabel(false, true, Type_Call, _), EdgeLabel(false, true, Type_Fallthrough, _)) => handleDirectCallWithReturn(edge1, edge0, block) - /* - these are probably what blr should resolve to once that's fixed? - case (EdgeLabel(false, true, Type_Fallthrough, _), EdgeLabel(false, false, Type_Call, _)) => - case (EdgeLabel(false, false, Type_Call, _), EdgeLabel(false, true, Type_Fallthrough, _)) => - */ - + // indirect call with return target + case (EdgeLabel(false, true, Type_Fallthrough, _), EdgeLabel(false, false, Type_Call, _)) => + handleIndirectCallWithReturn(edge0, edge1, block) + case (EdgeLabel(false, false, Type_Call, _), EdgeLabel(false, true, Type_Fallthrough, _)) => + handleIndirectCallWithReturn(edge1, edge0, block) // conditional branch case (EdgeLabel(true, true, Type_Fallthrough, _), EdgeLabel(true, true, Type_Branch, _)) => handleConditionalBranch(edge0, edge1, block, procedure) @@ -593,11 +525,76 @@ class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[ case _ => throw Exception(s"cannot resolve outgoing edges from block ${block.label}") } + } else if (edgeLabels.forall { (e: EdgeLabel) => !e.conditional }) { + // resolved indirect call with multiple procedure targets and fallthrough? + val fallthroughs = ArrayBuffer[Edge]() + val indirectCallTargets = ArrayBuffer[Edge]() + for (edge <- outgoingEdges) { + edge.getLabel match { + case EdgeLabel(false, true, Type_Fallthrough, _) => + fallthroughs.addOne(edge) + case EdgeLabel(false, false, Type_Call, _) => + indirectCallTargets.addOne(edge) + case _ => + } + } + // unhandled case if there is more than one fallthrough, no fallthrough, or no indirect call targets + if (fallthroughs.size != 1 || indirectCallTargets.isEmpty) { + throw Exception(s"cannot resolve outgoing edges from block ${block.label}") + } + handleIndirectCallMultipleResolvedTargets(fallthroughs.head, indirectCallTargets, block, procedure) } else { throw Exception(s"cannot resolve outgoing edges from block ${block.label}") } } + private def handleIndirectCallMultipleResolvedTargets(fallthrough: Edge, indirectCallTargets: ArrayBuffer[Edge], block: Block, procedure: Procedure): GoTo = { + if (!uuidToBlock.contains(fallthrough.targetUuid)) { + throw Exception(s"block ${block.label} has fallthrough edge to ${byteStringToString(fallthrough.targetUuid)} that does not point to a known block") + } + val returnTarget = uuidToBlock(fallthrough.targetUuid) + + val newBlocks = ArrayBuffer[Block]() + val targetRegister = getPCTarget(block) + + for (call <- indirectCallTargets) { + // it's odd if an indirect call is only partially resolved, so throw an exception for now because this case will require further investigation + if (!entranceUUIDtoProcedure.contains(call.targetUuid)) { + throw Exception(s"block ${block.label} has resolved indirect call edge to ${byteStringToString(call.targetUuid)} that does not point to a known procedure") + } + + val target = entranceUUIDtoProcedure(call.targetUuid) + val resolvedCall = DirectCall(target, Some(returnTarget)) + + val assume = Assume(BinaryExpr(BVEQ, targetRegister, BitVecLiteral(target.address.get, 64))) + val label = block.label + "$" + target.name + newBlocks.append(Block(label, None, ArrayBuffer(assume), resolvedCall)) + } + removePCAssign(block) + procedure.addBlocks(newBlocks) + GoTo(newBlocks) + } + + private def handleIndirectCallWithReturn(fallthrough: Edge, call: Edge, block: Block): Call = { + if (!uuidToBlock.contains(fallthrough.targetUuid)) { + throw Exception(s"block ${block.label} has fallthrough edge to ${byteStringToString(fallthrough.targetUuid)} that does not point to a known block") + } + val returnTarget = uuidToBlock(fallthrough.targetUuid) + + if (!entranceUUIDtoProcedure.contains(call.targetUuid)) { + // unresolved indirect call + val target = getPCTarget(block) + removePCAssign(block) + + IndirectCall(target, Some(returnTarget)) + } else { + // resolved indirect call + val target = entranceUUIDtoProcedure(call.targetUuid) + removePCAssign(block) + DirectCall(target, Some(returnTarget)) + } + } + private def handleDirectCallWithReturn(fallthrough: Edge, call: Edge, block: Block): DirectCall = { if (!entranceUUIDtoProcedure.contains(call.targetUuid)) { throw Exception(s"block ${block.label} has direct call edge to ${byteStringToString(call.targetUuid)} that does not point to a known procedure") diff --git a/src/main/scala/translating/SemanticsLoader.scala b/src/main/scala/translating/SemanticsLoader.scala index 2aa452ff3..3f3f190d1 100644 --- a/src/main/scala/translating/SemanticsLoader.scala +++ b/src/main/scala/translating/SemanticsLoader.scala @@ -75,21 +75,15 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] } private def visitThrow(ctx: ThrowContext, label: Option[String] = None): Assert = { - val message = ctx.ID().asScala.map(_.getText).mkString(" ,") + val message = ctx.ident().asScala.map(visitIdent).mkString(" ,") Assert(FalseLiteral, Some(message), label) } private def visitTCall(ctx: TCallContext, label: Option[String] = None): Option[Statement] = { - val function = ctx.ID.getText + val function = visitIdent(ctx.ident) - val typeArgs = Option(ctx.tes) match { - case Some(e) => e.expr().asScala - case None => Nil - } - val args = Option(ctx.args) match { - case Some(e) => e.expr().asScala - case None => Nil - } + val typeArgs = Option(ctx.tes).toList.flatMap(_.expr.asScala) + val args = Option(ctx.args).toList.flatMap(_.expr.asScala) function match { case "Mem.set.0" => @@ -129,16 +123,16 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] } private def parseInt(ctx: ExprContext) = ctx match { - case e: ExprLitIntContext => e.value.getText.toInt + case e: ExprLitIntContext => visitInteger(e.integer) case _ => throw Exception(s"expected ${ctx.getText} to be an integer literal") } private def visitIf(ctx: IfContext, label: Option[String] = None): Option[TempIf] = { val condition = visitExpr(ctx.cond) - val thenStmts = ctx.stmt().asScala.flatMap(visitStmt(_, label)) + val thenStmts = ctx.thenStmts.stmt.asScala.flatMap(visitStmt(_, label)) - val elseStmts = Option(ctx.elseStmt) match { - case Some(_) => ctx.elseStmt.stmt().asScala.flatMap(visitStmt(_, label)) + val elseStmts = Option(ctx.elseStmts) match { + case Some(_) => ctx.elseStmts.stmt.asScala.flatMap(visitStmt(_, label)) case None => mutable.Buffer() } @@ -151,35 +145,28 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] private def visitVarDeclsNoInit(ctx: VarDeclsNoInitContext): Unit = { val ty = visitType(ctx.`type`()) - ctx.lvars.ID().asScala.foreach(lvar => varMap += (lvar.getText -> ty)) + val newVars = ctx.lvars.ident.asScala.map(visitIdent(_) -> ty) + varMap ++= newVars } private def visitVarDecl(ctx: VarDeclContext, label: Option[String] = None): Option[LocalAssign] = { val ty = visitType(ctx.`type`()) - val name = ctx.lvar.getText + val name = visitIdent(ctx.lvar) varMap += (name -> ty) val expr = visitExpr(ctx.expr()) - if (expr.isDefined) { - Some(LocalAssign(LocalVar(name, ty), expr.get, label)) - } else { - None - } + expr.map(LocalAssign(LocalVar(name, ty), _, label)) } private def visitAssign(ctx: AssignContext, label: Option[String] = None): Option[LocalAssign] = { val lhs = visitLexpr(ctx.lexpr) val rhs = visitExpr(ctx.expr) - if (lhs.isDefined && rhs.isDefined) { - Some(LocalAssign(lhs.get, rhs.get, label)) - } else { - None - } + lhs.zip(rhs).map((lhs, rhs) => LocalAssign(lhs, rhs, label)) } private def visitConstDecl(ctx: ConstDeclContext, label: Option[String] = None): Option[LocalAssign] = { val ty = visitType(ctx.`type`()) - val name = ctx.lvar.getText + val name = visitIdent(ctx.lvar) constMap += (name -> ty) val expr = visitExpr(ctx.expr) if (expr.isDefined) { @@ -195,8 +182,8 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] case r: TypeRegisterContext => // this is a special register - not the same as a register in the IR // ignoring the register's fields for now - BitVecType(r.size.getText.toInt) - case c: TypeConstructorContext => c.str.getText.match { + BitVecType(visitInteger(r.size)) + case c: TypeConstructorContext => visitIdent(c.str).match { case "FPRounding" => BitVecType(2) case _ => throw Exception(s"unknown type ${ctx.getText}") } @@ -216,7 +203,7 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] } private def visitExprVar(ctx: ExprVarContext): Option[Expr] = { - val name = ctx.ID.getText + val name = visitIdent(ctx.ident) name match { case n if constMap.contains(n) => Some(LocalVar(n + "$" + blockCount + "$" + instructionCount, constMap(n))) case v if varMap.contains(v) => Some(LocalVar(v, varMap(v))) @@ -234,8 +221,7 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] } private def visitExprTApply(ctx: ExprTApplyContext): Option[Expr] = { - - val function = ctx.ID.getText + val function = visitIdent(ctx.ident) val typeArgs: mutable.Buffer[ExprContext] = Option(ctx.tes) match { case Some(e) => e.expr().asScala @@ -434,17 +420,17 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] private def visitExprField(ctx: ExprFieldContext): LocalVar = { val name = ctx.expr match { - case e: ExprVarContext => e.ID.getText + case e: ExprVarContext => visitIdent(e.ident) case _ => throw Exception(s"expected ${ctx.getText} to have an Expr_Var as first parameter") } - val field = ctx.field.getText + val field = visitIdent(ctx.field) resolveFieldExpr(name, field) } private def visitExprArray(ctx: ExprArrayContext): Register = { val name = ctx.array match { - case e: ExprVarContext => e.ID.getText + case e: ExprVarContext => visitIdent(e.ident) case _ => throw Exception(s"expected ${ctx.getText} to have an Expr_Var as first parameter") } val index = parseInt(ctx.index) @@ -453,12 +439,7 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] } private def visitExprLitBits(ctx: ExprLitBitsContext): BitVecLiteral = { - var num = BigInt(ctx.value.getText, 2) - val len = ctx.value.getText.length - if (num < 0) { - num = num + (BigInt(1) << len) - } - BitVecLiteral(num, len) + visitBits(ctx.bits) } private def visitLexpr(ctx: LexprContext): Option[Variable] = { @@ -470,7 +451,7 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] } private def visitLExprVar(ctx: LExprVarContext): Option[Variable] = { - val name = ctx.ID.getText + val name = visitIdent(ctx.ident) name match { case n if constMap.contains(n) => Some(LocalVar(n + "$" + blockCount + "$" + instructionCount, constMap(n))) case v if varMap.contains(v) => Some(LocalVar(v, varMap(v))) @@ -488,17 +469,17 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] private def visitLExprField(ctx: LExprFieldContext): LocalVar = { val name = ctx.lexpr match { - case l: LExprVarContext => l.ID.getText + case l: LExprVarContext => visitIdent(l.ident) case _ => throw Exception(s"expected ${ctx.getText} to have an LExpr_Var as first parameter") } - val field = ctx.field.getText + val field = visitIdent(ctx.field) resolveFieldExpr(name, field) } private def visitLExprArray(ctx: LExprArrayContext): Register = { val name = ctx.lexpr match { - case l: LExprVarContext => l.ID.getText + case l: LExprVarContext => visitIdent(l.ident) case _ => throw Exception(s"expected ${ctx.getText} to have an LExpr_Var as first parameter") } val index = parseInt(ctx.index) @@ -506,6 +487,24 @@ class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]] resolveArrayExpr(name, index) } + private def visitIdent(ctx: IdentContext): String = { + ctx.ID.getText.stripPrefix("\"").stripSuffix("\"") + } + + private def visitInteger(ctx: IntegerContext): Int = { + ctx.DEC.getText.toInt + } + + private def visitBits(ctx: BitsContext): BitVecLiteral = { + val str = ctx.BINARY.getText.stripPrefix("'").stripSuffix("'") + val width = str.length + var num = BigInt(str, 2) + if (num < 0) { + num = num + (BigInt(1) << width) + } + BitVecLiteral(num, width) + } + private def resolveFieldExpr(name: String, field: String): LocalVar = { name match { case "PSTATE" if field == "V" || field == "C" || field == "Z" || field == "N" => diff --git a/src/main/scala/util/RunUtils.scala b/src/main/scala/util/RunUtils.scala index 41bc2b9d8..e471f644d 100644 --- a/src/main/scala/util/RunUtils.scala +++ b/src/main/scala/util/RunUtils.scala @@ -22,7 +22,7 @@ import Parsers.* import Parsers.SemanticsParser.* import org.antlr.v4.runtime.tree.ParseTreeWalker import org.antlr.v4.runtime.BailErrorStrategy -import org.antlr.v4.runtime.{CharStreams, CommonTokenStream} +import org.antlr.v4.runtime.{CharStreams, CommonTokenStream, Token} import translating.* import util.Logger import java.util.Base64 @@ -114,18 +114,31 @@ object IRLoading { val semantics = mods.map(_.auxData("ast").data.toStringUtf8.parseJson.convertTo[Map[String, Array[Array[String]]]]) - def parse_insn(f: String): StmtContext = { + def parse_insn(line: String): StmtContext = { + val semanticsLexer = SemanticsLexer(CharStreams.fromString(line)) + val tokens = CommonTokenStream(semanticsLexer) + val parser = SemanticsParser(tokens) + parser.setErrorHandler(BailErrorStrategy()) + parser.setBuildParseTree(true) + try { - val semanticsLexer = SemanticsLexer(CharStreams.fromString(f)) - val tokens = CommonTokenStream(semanticsLexer) - val parser = SemanticsParser(tokens) - parser.setErrorHandler(BailErrorStrategy()) - parser.setBuildParseTree(true) parser.stmt() } catch { case e: org.antlr.v4.runtime.misc.ParseCancellationException => - Logger.error(f) - throw RuntimeException(e) + val extra = e.getCause match { + case mismatch: org.antlr.v4.runtime.InputMismatchException => + val token = mismatch.getOffendingToken + s""" + exn: ${mismatch} + offending token: ${token} + + ${line.replace('\n', ' ')} + ${" " * token.getStartIndex}^ here! + """.stripIndent + case _ => "" + } + Logger.error(s"""Semantics parse error:\n line: ${line}\n${extra}""") + throw e } } diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.gts b/src/test/correct/arrays_simple/clang/arrays_simple.gts index 3345ca77c..5f0437496 100644 Binary files a/src/test/correct/arrays_simple/clang/arrays_simple.gts and b/src/test/correct/arrays_simple/clang/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts b/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts index 23fd95e14..1190677b5 100644 Binary files a/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts and b/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts b/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts index f43864f16..0663d4dec 100644 Binary files a/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts and b/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts b/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts index 30450c98f..7afaa1f27 100644 Binary files a/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts and b/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/gcc/arrays_simple.gts b/src/test/correct/arrays_simple/gcc/arrays_simple.gts index 38cfa3c41..2c3c068e7 100644 Binary files a/src/test/correct/arrays_simple/gcc/arrays_simple.gts and b/src/test/correct/arrays_simple/gcc/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts b/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts index 2e7138314..2e2e615cb 100644 Binary files a/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts and b/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts b/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts index 937b83e3b..11608b40f 100644 Binary files a/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts and b/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts differ diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts index 229ab27a9..ffd85d82f 100644 Binary files a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts index 686ec81c7..a246cc185 100644 Binary files a/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts index fce6874b5..3ab33b0cd 100644 Binary files a/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts index 5ae061529..a5a3f5869 100644 Binary files a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts index e88710816..8078997fa 100644 Binary files a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts index 5faecd626..5d08d2e1a 100644 Binary files a/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts index 9b19db4f1..496dbcbf3 100644 Binary files a/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts index 2e74c96a4..196ca0a00 100644 Binary files a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts and b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts index 556b5c9b0..4f95f3624 100644 Binary files a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts index b1d8d3b88..1dad59e32 100644 Binary files a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts index 7234e8fd4..f83ce821f 100644 Binary files a/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts index 1f57e66a1..5e0c3f8d0 100644 Binary files a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts index 9fb6205f2..8af1252a9 100644 Binary files a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts index ea5812dc2..4049ef225 100644 Binary files a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts index 47fdb4c70..bb173f1a1 100644 Binary files a/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts index e03b379be..252649920 100644 Binary files a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts and b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts index a63e53f2b..5c865f24a 100644 Binary files a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts index 272127853..bad97dc78 100644 Binary files a/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts index 1570d59bb..0dfb2a824 100644 Binary files a/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts index 80080d011..efe55146e 100644 Binary files a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts index 9e10ef3b3..d8141e361 100644 Binary files a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts index 0c788f994..ce3dc5eac 100644 Binary files a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts index 3522b181b..b1990015b 100644 Binary files a/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts index 518d9716b..3d09b726d 100644 Binary files a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts and b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts index 77608fb06..b5743bd44 100644 Binary files a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts index 62803baea..350336672 100644 Binary files a/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts index 2671e202e..ff2772663 100644 Binary files a/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts index e70fd3400..a9c41d574 100644 Binary files a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts index b4c124586..0f5ce28ba 100644 Binary files a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts index 57459215a..6215709a7 100644 Binary files a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts index 685ddd724..8900ee158 100644 Binary files a/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts index 8a79797ef..2f7a306b4 100644 Binary files a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts and b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts index ab5f0938e..32bf751b9 100644 Binary files a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts index 8805d94aa..d73b9e055 100644 Binary files a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts index 413a7bbda..6b9b21eb8 100644 Binary files a/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts index ba6fb2677..2a8538e2b 100644 Binary files a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts index f4482e48d..2a8ffc520 100644 Binary files a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts index 2007a15b6..7239ac18b 100644 Binary files a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts index 2d20403e3..3ef1871bc 100644 Binary files a/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts index e1c783093..99089382c 100644 Binary files a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts and b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts index d2836b050..baaa80f5c 100644 Binary files a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts index 82dc0a90e..0c88fddfd 100644 Binary files a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts index 12ef57d95..f1c6cb1ba 100644 Binary files a/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts index 3920a7080..f42a9417b 100644 Binary files a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts index bde59cb09..760bad291 100644 Binary files a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts index 33ca883b1..f9777fa6b 100644 Binary files a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts index 9920e842c..9c79e516e 100644 Binary files a/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts index 027d83ba4..6e7fa9373 100644 Binary files a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts and b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang/basic_lock_read.gts index 51af1410c..7e254a8ed 100644 Binary files a/src/test/correct/basic_lock_read/clang/basic_lock_read.gts and b/src/test/correct/basic_lock_read/clang/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts index b1a22af25..98bf70e7c 100644 Binary files a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts and b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts index faff50ed8..335dd2b1c 100644 Binary files a/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts and b/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts index 4b94a6d6b..767d31a46 100644 Binary files a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts and b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts index 8721de5c5..284c2f239 100644 Binary files a/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts and b/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts index b3b81b403..f353ea5ee 100644 Binary files a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts and b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts index 6f5b076c2..e71c9aa4e 100644 Binary files a/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts and b/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts index bba6b1559..8021e5ff3 100644 Binary files a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts and b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts index 67bebfad2..f802fa27a 100644 Binary files a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts index 5b501b699..e878c5e2c 100644 Binary files a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts index 508b7a936..02460a0e6 100644 Binary files a/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts index ffa5f4d21..9384d8aa0 100644 Binary files a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts index ed56d6c7a..7ce9ccc6c 100644 Binary files a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts index 15020e8f0..6d0020ff9 100644 Binary files a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts index 0d365010f..c3d6bf87f 100644 Binary files a/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts index cc7d19697..d2735a360 100644 Binary files a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts and b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts index a675bd6d1..1a31fd75a 100644 Binary files a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts index 861057f7c..15c74582a 100644 Binary files a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts index 853092642..ee2ed61f6 100644 Binary files a/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts index 4833eb831..a9cf167f9 100644 Binary files a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts index 3d4f22862..cee1a4726 100644 Binary files a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts index b81fa0578..244a741bd 100644 Binary files a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts index 24d4d5121..c2dafe42f 100644 Binary files a/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts index 5b6212671..06427cc62 100644 Binary files a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts and b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts index 1ccf61ac9..fbeafcca6 100644 Binary files a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts index 62f5c5d85..55eeb8add 100644 Binary files a/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts index aa62e8955..f0683ef8d 100644 Binary files a/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts index ecc489753..2a185f33d 100644 Binary files a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts index 945a001e9..e725f93c5 100644 Binary files a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts index 1a5c4a872..b25282f6c 100644 Binary files a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts index cec60afab..fa9f41aa3 100644 Binary files a/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts index feb2bc3a3..cbc6ccef2 100644 Binary files a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts and b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts index b8a26dd97..c78c5a478 100644 Binary files a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts index 9d5150971..d377fe3e5 100644 Binary files a/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts index ee83121fc..1db5b83a8 100644 Binary files a/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts index 8f654fb69..945ba0858 100644 Binary files a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts index 8e8324c3c..7443e436e 100644 Binary files a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts index 6e7c12f3e..17c75e0bb 100644 Binary files a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts index d46723453..4770e620e 100644 Binary files a/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts index 32cdfe941..e6982d55e 100644 Binary files a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts and b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts index 151f82f12..7abea7ccc 100644 Binary files a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts index 0cc88363a..a82f0a72b 100644 Binary files a/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts index 55c0a0c7c..9f6f5fc0f 100644 Binary files a/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts index 48258ef67..96df0bc19 100644 Binary files a/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts index a9e3f9b7d..38fed10a8 100644 Binary files a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts index 9a94fea2b..04bf3f5bc 100644 Binary files a/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts index 6d9e9f071..5466e5c12 100644 Binary files a/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts index 90ed2f3d4..480582471 100644 Binary files a/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts and b/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts index eafcf77d1..24294ab7b 100644 Binary files a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts index d70fd9d11..4591e33ce 100644 Binary files a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts index 814f8c8ce..ee6bc96d7 100644 Binary files a/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts index ad2a90443..676885892 100644 Binary files a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts index ebf450b81..98765e360 100644 Binary files a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts index c28ce955e..6c84eb15a 100644 Binary files a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts index 7d55add0f..4af0e5003 100644 Binary files a/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts index 493f11c3e..2f8868fe8 100644 Binary files a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts and b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts index c703410f4..a3df81383 100644 Binary files a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts index 1ed9d1675..b55b79b0f 100644 Binary files a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts index 1837a030d..81f680521 100644 Binary files a/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts index 2deff601a..339317498 100644 Binary files a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts index c8737d857..da114c0c7 100644 Binary files a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts index ccef7f178..8b5690513 100644 Binary files a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts index 6cbe0d67b..b7c820101 100644 Binary files a/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts index 843b2eb52..c800dacc0 100644 Binary files a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts and b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts index f5254cb3a..a99d64d5b 100644 Binary files a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts index 2a094a881..13d66ff4a 100644 Binary files a/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts index 5447308ee..44252d06d 100644 Binary files a/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts index bd67c8409..c4306eac2 100644 Binary files a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts index 8ced2e0e2..9be4bdc77 100644 Binary files a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts index 520500a1d..4ba6a68a2 100644 Binary files a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts index 0f71b0238..3728bca59 100644 Binary files a/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts index bcd83405d..ba93b8680 100644 Binary files a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts and b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicfree/clang/basicfree.gts b/src/test/correct/basicfree/clang/basicfree.gts index 62a5b3f1d..6438c886f 100644 Binary files a/src/test/correct/basicfree/clang/basicfree.gts and b/src/test/correct/basicfree/clang/basicfree.gts differ diff --git a/src/test/correct/basicfree/clang_O2/basicfree.gts b/src/test/correct/basicfree/clang_O2/basicfree.gts index 72e4d42f1..60a391354 100644 Binary files a/src/test/correct/basicfree/clang_O2/basicfree.gts and b/src/test/correct/basicfree/clang_O2/basicfree.gts differ diff --git a/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts b/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts index dc19fb586..3380045c4 100644 Binary files a/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts and b/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts differ diff --git a/src/test/correct/basicfree/clang_pic/basicfree.gts b/src/test/correct/basicfree/clang_pic/basicfree.gts index f09cd767d..d37d16c5c 100644 Binary files a/src/test/correct/basicfree/clang_pic/basicfree.gts and b/src/test/correct/basicfree/clang_pic/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc/basicfree.gts b/src/test/correct/basicfree/gcc/basicfree.gts index dc81848ab..fee27b0f7 100644 Binary files a/src/test/correct/basicfree/gcc/basicfree.gts and b/src/test/correct/basicfree/gcc/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc_O2/basicfree.gts b/src/test/correct/basicfree/gcc_O2/basicfree.gts index 93e78a1cf..6c2091d34 100644 Binary files a/src/test/correct/basicfree/gcc_O2/basicfree.gts and b/src/test/correct/basicfree/gcc_O2/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts b/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts index 8d175f225..fe2f01087 100644 Binary files a/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts and b/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc_pic/basicfree.gts b/src/test/correct/basicfree/gcc_pic/basicfree.gts index c81383287..d8298aa54 100644 Binary files a/src/test/correct/basicfree/gcc_pic/basicfree.gts and b/src/test/correct/basicfree/gcc_pic/basicfree.gts differ diff --git a/src/test/correct/cjump/clang/cjump.gts b/src/test/correct/cjump/clang/cjump.gts index de7dc0c16..c0279dbe7 100644 Binary files a/src/test/correct/cjump/clang/cjump.gts and b/src/test/correct/cjump/clang/cjump.gts differ diff --git a/src/test/correct/cjump/clang_O2/cjump.gts b/src/test/correct/cjump/clang_O2/cjump.gts index 5ece49e7e..495b1a8a8 100644 Binary files a/src/test/correct/cjump/clang_O2/cjump.gts and b/src/test/correct/cjump/clang_O2/cjump.gts differ diff --git a/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts b/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts index a7df4ad0e..43d837059 100644 Binary files a/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts and b/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts differ diff --git a/src/test/correct/cjump/clang_pic/cjump.gts b/src/test/correct/cjump/clang_pic/cjump.gts index 5ace34b81..a57d484d2 100644 Binary files a/src/test/correct/cjump/clang_pic/cjump.gts and b/src/test/correct/cjump/clang_pic/cjump.gts differ diff --git a/src/test/correct/cjump/gcc/cjump.gts b/src/test/correct/cjump/gcc/cjump.gts index 0cb992099..285a2759d 100644 Binary files a/src/test/correct/cjump/gcc/cjump.gts and b/src/test/correct/cjump/gcc/cjump.gts differ diff --git a/src/test/correct/cjump/gcc_O2/cjump.gts b/src/test/correct/cjump/gcc_O2/cjump.gts index 8844b8927..72c6b3028 100644 Binary files a/src/test/correct/cjump/gcc_O2/cjump.gts and b/src/test/correct/cjump/gcc_O2/cjump.gts differ diff --git a/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts b/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts index 00b3afb02..d1176ab44 100644 Binary files a/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts and b/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts differ diff --git a/src/test/correct/cjump/gcc_pic/cjump.gts b/src/test/correct/cjump/gcc_pic/cjump.gts index e3574d3d7..448d77ea6 100644 Binary files a/src/test/correct/cjump/gcc_pic/cjump.gts and b/src/test/correct/cjump/gcc_pic/cjump.gts differ diff --git a/src/test/correct/function/clang/function.gts b/src/test/correct/function/clang/function.gts index 83d58c9f2..d0fec3f1f 100644 Binary files a/src/test/correct/function/clang/function.gts and b/src/test/correct/function/clang/function.gts differ diff --git a/src/test/correct/function/clang_O2/function.gts b/src/test/correct/function/clang_O2/function.gts index a45c6f1ce..05625616e 100644 Binary files a/src/test/correct/function/clang_O2/function.gts and b/src/test/correct/function/clang_O2/function.gts differ diff --git a/src/test/correct/function/clang_no_plt_no_pic/function.gts b/src/test/correct/function/clang_no_plt_no_pic/function.gts index 73f02ccbe..45c79b3c2 100644 Binary files a/src/test/correct/function/clang_no_plt_no_pic/function.gts and b/src/test/correct/function/clang_no_plt_no_pic/function.gts differ diff --git a/src/test/correct/function/clang_pic/function.gts b/src/test/correct/function/clang_pic/function.gts index f3b45bd90..f731025b5 100644 Binary files a/src/test/correct/function/clang_pic/function.gts and b/src/test/correct/function/clang_pic/function.gts differ diff --git a/src/test/correct/function/gcc/function.gts b/src/test/correct/function/gcc/function.gts index 5caf0107a..674b3f7a7 100644 Binary files a/src/test/correct/function/gcc/function.gts and b/src/test/correct/function/gcc/function.gts differ diff --git a/src/test/correct/function/gcc_O2/function.gts b/src/test/correct/function/gcc_O2/function.gts index c306d5978..f91897a75 100644 Binary files a/src/test/correct/function/gcc_O2/function.gts and b/src/test/correct/function/gcc_O2/function.gts differ diff --git a/src/test/correct/function/gcc_no_plt_no_pic/function.gts b/src/test/correct/function/gcc_no_plt_no_pic/function.gts index bf66356b0..4d45e702f 100644 Binary files a/src/test/correct/function/gcc_no_plt_no_pic/function.gts and b/src/test/correct/function/gcc_no_plt_no_pic/function.gts differ diff --git a/src/test/correct/function/gcc_pic/function.gts b/src/test/correct/function/gcc_pic/function.gts index 6ae7b0886..a2fdd0459 100644 Binary files a/src/test/correct/function/gcc_pic/function.gts and b/src/test/correct/function/gcc_pic/function.gts differ diff --git a/src/test/correct/function1/clang/function1.gts b/src/test/correct/function1/clang/function1.gts index 759968216..28058b441 100644 Binary files a/src/test/correct/function1/clang/function1.gts and b/src/test/correct/function1/clang/function1.gts differ diff --git a/src/test/correct/function1/clang_O2/function1.gts b/src/test/correct/function1/clang_O2/function1.gts index c46304c7a..eb9bd2395 100644 Binary files a/src/test/correct/function1/clang_O2/function1.gts and b/src/test/correct/function1/clang_O2/function1.gts differ diff --git a/src/test/correct/function1/clang_no_plt_no_pic/function1.gts b/src/test/correct/function1/clang_no_plt_no_pic/function1.gts index 0a3562e4d..30512f1aa 100644 Binary files a/src/test/correct/function1/clang_no_plt_no_pic/function1.gts and b/src/test/correct/function1/clang_no_plt_no_pic/function1.gts differ diff --git a/src/test/correct/function1/clang_pic/function1.gts b/src/test/correct/function1/clang_pic/function1.gts index 029d24778..8c2348834 100644 Binary files a/src/test/correct/function1/clang_pic/function1.gts and b/src/test/correct/function1/clang_pic/function1.gts differ diff --git a/src/test/correct/function1/gcc/function1.gts b/src/test/correct/function1/gcc/function1.gts index e43e5e88a..cc2796982 100644 Binary files a/src/test/correct/function1/gcc/function1.gts and b/src/test/correct/function1/gcc/function1.gts differ diff --git a/src/test/correct/function1/gcc_O2/function1.gts b/src/test/correct/function1/gcc_O2/function1.gts index 577055e0f..60d0bf288 100644 Binary files a/src/test/correct/function1/gcc_O2/function1.gts and b/src/test/correct/function1/gcc_O2/function1.gts differ diff --git a/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts b/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts index 8a63a2d10..a3069fb9b 100644 Binary files a/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts and b/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts differ diff --git a/src/test/correct/function1/gcc_pic/function1.gts b/src/test/correct/function1/gcc_pic/function1.gts index fa305b4af..1beaa390a 100644 Binary files a/src/test/correct/function1/gcc_pic/function1.gts and b/src/test/correct/function1/gcc_pic/function1.gts differ diff --git a/src/test/correct/functionpointer/clang/functionpointer.gts b/src/test/correct/functionpointer/clang/functionpointer.gts index ab41a4fd5..91ff24d40 100644 Binary files a/src/test/correct/functionpointer/clang/functionpointer.gts and b/src/test/correct/functionpointer/clang/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/clang_O2/functionpointer.gts b/src/test/correct/functionpointer/clang_O2/functionpointer.gts index 1d20aed98..8d6320bb5 100644 Binary files a/src/test/correct/functionpointer/clang_O2/functionpointer.gts and b/src/test/correct/functionpointer/clang_O2/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts b/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts index 5fffaff66..a76b3587e 100644 Binary files a/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts and b/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/clang_pic/functionpointer.gts b/src/test/correct/functionpointer/clang_pic/functionpointer.gts index cf296d732..5211b796a 100644 Binary files a/src/test/correct/functionpointer/clang_pic/functionpointer.gts and b/src/test/correct/functionpointer/clang_pic/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc/functionpointer.gts b/src/test/correct/functionpointer/gcc/functionpointer.gts index 215e96f51..4e24b6c40 100644 Binary files a/src/test/correct/functionpointer/gcc/functionpointer.gts and b/src/test/correct/functionpointer/gcc/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc_O2/functionpointer.gts b/src/test/correct/functionpointer/gcc_O2/functionpointer.gts index a26d96a0b..e28adadc4 100644 Binary files a/src/test/correct/functionpointer/gcc_O2/functionpointer.gts and b/src/test/correct/functionpointer/gcc_O2/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts b/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts index 71f04d41c..66ae6241a 100644 Binary files a/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts and b/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc_pic/functionpointer.gts b/src/test/correct/functionpointer/gcc_pic/functionpointer.gts index 50ea37edb..1389c62e0 100644 Binary files a/src/test/correct/functionpointer/gcc_pic/functionpointer.gts and b/src/test/correct/functionpointer/gcc_pic/functionpointer.gts differ diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.gts b/src/test/correct/functions_with_params/clang/functions_with_params.gts index 8dac35abc..1dff8419e 100644 Binary files a/src/test/correct/functions_with_params/clang/functions_with_params.gts and b/src/test/correct/functions_with_params/clang/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts b/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts index 32612eb9b..5515d1896 100644 Binary files a/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts and b/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts b/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts index 3412e10df..6a86ca320 100644 Binary files a/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts and b/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts b/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts index de1afb436..01f75c105 100644 Binary files a/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts and b/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.gts b/src/test/correct/functions_with_params/gcc/functions_with_params.gts index f5611a59b..c1b3c926f 100644 Binary files a/src/test/correct/functions_with_params/gcc/functions_with_params.gts and b/src/test/correct/functions_with_params/gcc/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts b/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts index 1f95ae8b8..f118da7e4 100644 Binary files a/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts and b/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts b/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts index dcab1609c..5be552641 100644 Binary files a/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts and b/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts b/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts index c261acb68..4b58e184d 100644 Binary files a/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts and b/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts differ diff --git a/src/test/correct/ifbranches/clang/ifbranches.gts b/src/test/correct/ifbranches/clang/ifbranches.gts index e4bc4bf39..4c69ba827 100644 Binary files a/src/test/correct/ifbranches/clang/ifbranches.gts and b/src/test/correct/ifbranches/clang/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.gts b/src/test/correct/ifbranches/clang_O2/ifbranches.gts index 4801ef2cb..48d482946 100644 Binary files a/src/test/correct/ifbranches/clang_O2/ifbranches.gts and b/src/test/correct/ifbranches/clang_O2/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts b/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts index 2d56197d3..83afa4773 100644 Binary files a/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts and b/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/clang_pic/ifbranches.gts b/src/test/correct/ifbranches/clang_pic/ifbranches.gts index 770314e19..fde5fc688 100644 Binary files a/src/test/correct/ifbranches/clang_pic/ifbranches.gts and b/src/test/correct/ifbranches/clang_pic/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc/ifbranches.gts b/src/test/correct/ifbranches/gcc/ifbranches.gts index 5d030a619..f3fb85f76 100644 Binary files a/src/test/correct/ifbranches/gcc/ifbranches.gts and b/src/test/correct/ifbranches/gcc/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.gts b/src/test/correct/ifbranches/gcc_O2/ifbranches.gts index 6ebdd5591..75e3af235 100644 Binary files a/src/test/correct/ifbranches/gcc_O2/ifbranches.gts and b/src/test/correct/ifbranches/gcc_O2/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts b/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts index 1fa9f90e1..7386743ac 100644 Binary files a/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts and b/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc_pic/ifbranches.gts b/src/test/correct/ifbranches/gcc_pic/ifbranches.gts index fa005bc54..bcad6de22 100644 Binary files a/src/test/correct/ifbranches/gcc_pic/ifbranches.gts and b/src/test/correct/ifbranches/gcc_pic/ifbranches.gts differ diff --git a/src/test/correct/ifglobal/clang/ifglobal.gts b/src/test/correct/ifglobal/clang/ifglobal.gts index 3944f86ae..d165fe36a 100644 Binary files a/src/test/correct/ifglobal/clang/ifglobal.gts and b/src/test/correct/ifglobal/clang/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.gts b/src/test/correct/ifglobal/clang_O2/ifglobal.gts index f2f383c8c..8baf9da29 100644 Binary files a/src/test/correct/ifglobal/clang_O2/ifglobal.gts and b/src/test/correct/ifglobal/clang_O2/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts b/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts index 812eecc66..582e4a6c8 100644 Binary files a/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts and b/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.gts b/src/test/correct/ifglobal/clang_pic/ifglobal.gts index 42e7893d2..82cdbeb2e 100644 Binary files a/src/test/correct/ifglobal/clang_pic/ifglobal.gts and b/src/test/correct/ifglobal/clang_pic/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc/ifglobal.gts b/src/test/correct/ifglobal/gcc/ifglobal.gts index 12e587eba..1c33b4935 100644 Binary files a/src/test/correct/ifglobal/gcc/ifglobal.gts and b/src/test/correct/ifglobal/gcc/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.gts b/src/test/correct/ifglobal/gcc_O2/ifglobal.gts index 46b17d4b5..418056f14 100644 Binary files a/src/test/correct/ifglobal/gcc_O2/ifglobal.gts and b/src/test/correct/ifglobal/gcc_O2/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts b/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts index 3b61653f0..71340ce1e 100644 Binary files a/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts and b/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.gts b/src/test/correct/ifglobal/gcc_pic/ifglobal.gts index 8b3afc17b..56254e54c 100644 Binary files a/src/test/correct/ifglobal/gcc_pic/ifglobal.gts and b/src/test/correct/ifglobal/gcc_pic/ifglobal.gts differ diff --git a/src/test/correct/indirect_call/clang/indirect_call.gts b/src/test/correct/indirect_call/clang/indirect_call.gts index aa1396db1..692934b41 100644 Binary files a/src/test/correct/indirect_call/clang/indirect_call.gts and b/src/test/correct/indirect_call/clang/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/clang_O2/indirect_call.gts b/src/test/correct/indirect_call/clang_O2/indirect_call.gts index 585e5acf0..cb4d14349 100644 Binary files a/src/test/correct/indirect_call/clang_O2/indirect_call.gts and b/src/test/correct/indirect_call/clang_O2/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts b/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts index 73bd84314..211845a83 100644 Binary files a/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts and b/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/clang_pic/indirect_call.gts b/src/test/correct/indirect_call/clang_pic/indirect_call.gts index 85cbeb6ff..d8e0ed31d 100644 Binary files a/src/test/correct/indirect_call/clang_pic/indirect_call.gts and b/src/test/correct/indirect_call/clang_pic/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc/indirect_call.gts b/src/test/correct/indirect_call/gcc/indirect_call.gts index 3078ed3c5..76ef142df 100644 Binary files a/src/test/correct/indirect_call/gcc/indirect_call.gts and b/src/test/correct/indirect_call/gcc/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc_O2/indirect_call.gts b/src/test/correct/indirect_call/gcc_O2/indirect_call.gts index 26297164e..54f376a76 100644 Binary files a/src/test/correct/indirect_call/gcc_O2/indirect_call.gts and b/src/test/correct/indirect_call/gcc_O2/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts b/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts index c2d19b711..dcf4f3e20 100644 Binary files a/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts and b/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call.gts b/src/test/correct/indirect_call/gcc_pic/indirect_call.gts index 47ab8d08e..e64c1c1e2 100644 Binary files a/src/test/correct/indirect_call/gcc_pic/indirect_call.gts and b/src/test/correct/indirect_call/gcc_pic/indirect_call.gts differ diff --git a/src/test/correct/initialisation/clang/initialisation.gts b/src/test/correct/initialisation/clang/initialisation.gts index 4d249343c..9c5c8b012 100644 Binary files a/src/test/correct/initialisation/clang/initialisation.gts and b/src/test/correct/initialisation/clang/initialisation.gts differ diff --git a/src/test/correct/initialisation/clang_O2/initialisation.gts b/src/test/correct/initialisation/clang_O2/initialisation.gts index c911386c3..ef3b85a6b 100644 Binary files a/src/test/correct/initialisation/clang_O2/initialisation.gts and b/src/test/correct/initialisation/clang_O2/initialisation.gts differ diff --git a/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts b/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts index 9898a414b..85ca315ab 100644 Binary files a/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts and b/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts differ diff --git a/src/test/correct/initialisation/clang_pic/initialisation.gts b/src/test/correct/initialisation/clang_pic/initialisation.gts index a20517772..c5a8cf359 100644 Binary files a/src/test/correct/initialisation/clang_pic/initialisation.gts and b/src/test/correct/initialisation/clang_pic/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc/initialisation.gts b/src/test/correct/initialisation/gcc/initialisation.gts index 4d205862f..037ffcc0d 100644 Binary files a/src/test/correct/initialisation/gcc/initialisation.gts and b/src/test/correct/initialisation/gcc/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.gts b/src/test/correct/initialisation/gcc_O2/initialisation.gts index 69fd020ae..fd8e658ed 100644 Binary files a/src/test/correct/initialisation/gcc_O2/initialisation.gts and b/src/test/correct/initialisation/gcc_O2/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts b/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts index 5185fb7f2..692e8d29d 100644 Binary files a/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts and b/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.gts b/src/test/correct/initialisation/gcc_pic/initialisation.gts index f50496442..1f8c9b4ba 100644 Binary files a/src/test/correct/initialisation/gcc_pic/initialisation.gts and b/src/test/correct/initialisation/gcc_pic/initialisation.gts differ diff --git a/src/test/correct/jumptable/clang/jumptable.gts b/src/test/correct/jumptable/clang/jumptable.gts index 7c4eec2cd..4f609bc75 100644 Binary files a/src/test/correct/jumptable/clang/jumptable.gts and b/src/test/correct/jumptable/clang/jumptable.gts differ diff --git a/src/test/correct/jumptable/clang_O2/jumptable.gts b/src/test/correct/jumptable/clang_O2/jumptable.gts index 6a6f59b94..29a77cfad 100644 Binary files a/src/test/correct/jumptable/clang_O2/jumptable.gts and b/src/test/correct/jumptable/clang_O2/jumptable.gts differ diff --git a/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts b/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts index 76ee917c0..0964a2283 100644 Binary files a/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts and b/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts differ diff --git a/src/test/correct/jumptable/clang_pic/jumptable.gts b/src/test/correct/jumptable/clang_pic/jumptable.gts index 154ba7a36..68816f713 100644 Binary files a/src/test/correct/jumptable/clang_pic/jumptable.gts and b/src/test/correct/jumptable/clang_pic/jumptable.gts differ diff --git a/src/test/correct/jumptable/gcc/jumptable.gts b/src/test/correct/jumptable/gcc/jumptable.gts index 36b62af57..db29df4a0 100644 Binary files a/src/test/correct/jumptable/gcc/jumptable.gts and b/src/test/correct/jumptable/gcc/jumptable.gts differ diff --git a/src/test/correct/jumptable/gcc_O2/jumptable.gts b/src/test/correct/jumptable/gcc_O2/jumptable.gts index 8a7761546..fd10c9621 100644 Binary files a/src/test/correct/jumptable/gcc_O2/jumptable.gts and b/src/test/correct/jumptable/gcc_O2/jumptable.gts differ diff --git a/src/test/correct/jumptable/gcc_pic/jumptable.gts b/src/test/correct/jumptable/gcc_pic/jumptable.gts index 4fce93cf0..2db17d47d 100644 Binary files a/src/test/correct/jumptable/gcc_pic/jumptable.gts and b/src/test/correct/jumptable/gcc_pic/jumptable.gts differ diff --git a/src/test/correct/jumptable2/clang/jumptable2.gts b/src/test/correct/jumptable2/clang/jumptable2.gts index 928e22416..f486853c3 100644 Binary files a/src/test/correct/jumptable2/clang/jumptable2.gts and b/src/test/correct/jumptable2/clang/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/clang_O2/jumptable2.gts b/src/test/correct/jumptable2/clang_O2/jumptable2.gts index 352e06d22..b0c6b3856 100644 Binary files a/src/test/correct/jumptable2/clang_O2/jumptable2.gts and b/src/test/correct/jumptable2/clang_O2/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts b/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts index 6bd6d6a09..c0a002089 100644 Binary files a/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts and b/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/clang_pic/jumptable2.gts b/src/test/correct/jumptable2/clang_pic/jumptable2.gts index 965d12ddf..94c39ddf9 100644 Binary files a/src/test/correct/jumptable2/clang_pic/jumptable2.gts and b/src/test/correct/jumptable2/clang_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc/jumptable2.gts b/src/test/correct/jumptable2/gcc/jumptable2.gts index 3754688e4..5853c4717 100644 Binary files a/src/test/correct/jumptable2/gcc/jumptable2.gts and b/src/test/correct/jumptable2/gcc/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc_O2/jumptable2.gts b/src/test/correct/jumptable2/gcc_O2/jumptable2.gts index f2ce9bac6..9853b834f 100644 Binary files a/src/test/correct/jumptable2/gcc_O2/jumptable2.gts and b/src/test/correct/jumptable2/gcc_O2/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts b/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts index d75b5ce62..74ae1aabf 100644 Binary files a/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts and b/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc_pic/jumptable2.gts b/src/test/correct/jumptable2/gcc_pic/jumptable2.gts index 7b286cd1b..03bf0757c 100644 Binary files a/src/test/correct/jumptable2/gcc_pic/jumptable2.gts and b/src/test/correct/jumptable2/gcc_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable3/clang/jumptable3.gts b/src/test/correct/jumptable3/clang/jumptable3.gts index 254155d23..0c6e27603 100644 Binary files a/src/test/correct/jumptable3/clang/jumptable3.gts and b/src/test/correct/jumptable3/clang/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/clang_O2/jumptable3.gts b/src/test/correct/jumptable3/clang_O2/jumptable3.gts index 386a75ff3..205fb50ee 100644 Binary files a/src/test/correct/jumptable3/clang_O2/jumptable3.gts and b/src/test/correct/jumptable3/clang_O2/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts b/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts index cbacd55ea..8c0c39b35 100644 Binary files a/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts and b/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/clang_pic/jumptable3.gts b/src/test/correct/jumptable3/clang_pic/jumptable3.gts index f352ad825..f7e4eda74 100644 Binary files a/src/test/correct/jumptable3/clang_pic/jumptable3.gts and b/src/test/correct/jumptable3/clang_pic/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc/jumptable3.gts b/src/test/correct/jumptable3/gcc/jumptable3.gts index cb2db96ad..82491834e 100644 Binary files a/src/test/correct/jumptable3/gcc/jumptable3.gts and b/src/test/correct/jumptable3/gcc/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc_O2/jumptable3.gts b/src/test/correct/jumptable3/gcc_O2/jumptable3.gts index 565367618..6607373c0 100644 Binary files a/src/test/correct/jumptable3/gcc_O2/jumptable3.gts and b/src/test/correct/jumptable3/gcc_O2/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts b/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts index 9b7221df2..e2a1475b4 100644 Binary files a/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts and b/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc_pic/jumptable3.gts b/src/test/correct/jumptable3/gcc_pic/jumptable3.gts index e6f8b9f5e..97f42e0f3 100644 Binary files a/src/test/correct/jumptable3/gcc_pic/jumptable3.gts and b/src/test/correct/jumptable3/gcc_pic/jumptable3.gts differ diff --git a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts index 94dafbe74..4d2336e1b 100644 Binary files a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts and b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts index 6cc67e7e9..1cafafbed 100644 Binary files a/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts and b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang/malloc_with_local.gts index 614ce6ab0..9734e93d8 100644 Binary files a/src/test/correct/malloc_with_local/clang/malloc_with_local.gts and b/src/test/correct/malloc_with_local/clang/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts index 78a06684a..102c1b756 100644 Binary files a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts and b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts index b1383068a..92c05d911 100644 Binary files a/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts and b/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts index 5b33c1f88..6337c7330 100644 Binary files a/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts and b/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts index 6049b175c..d5776faf8 100644 Binary files a/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts and b/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts index e9143afb2..23759a8b6 100644 Binary files a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts and b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts index 934baf338..0ef003a0d 100644 Binary files a/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts and b/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts index 74fd8465a..80d00b1e0 100644 Binary files a/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts and b/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts index 4bc39df0d..cfbd154d6 100644 Binary files a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts index 3506196c9..2755280de 100644 Binary files a/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts index 50959f064..9cb899b4e 100644 Binary files a/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts index 5e3e06a66..ea10caf48 100644 Binary files a/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts index 66d882e2c..c3048983b 100644 Binary files a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts index cbbec40fe..3b7f07c67 100644 Binary files a/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts index 34c328830..df4d0d16d 100644 Binary files a/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts index 26400e98f..28c01f34a 100644 Binary files a/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts and b/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts index 712237698..e9e15d99a 100644 Binary files a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts index 5be73fe8d..bd18358a7 100644 Binary files a/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts index f23f3d694..a7502a430 100644 Binary files a/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts index dd615aba0..9d78766f4 100644 Binary files a/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts index d918876ab..b113f81d5 100644 Binary files a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts index 6e3b0f6ce..e0022e6b8 100644 Binary files a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts index c1ecaa1a2..f038ec926 100644 Binary files a/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts index fbb9bdf3a..aa047c748 100644 Binary files a/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts and b/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.gts b/src/test/correct/multi_malloc/clang/multi_malloc.gts index 0ad105bdc..9d1053dd9 100644 Binary files a/src/test/correct/multi_malloc/clang/multi_malloc.gts and b/src/test/correct/multi_malloc/clang/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts b/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts index 984ebef5c..2c1ebcaa6 100644 Binary files a/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts and b/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts b/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts index 8d7e646b4..9dc5eb58c 100644 Binary files a/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts and b/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts b/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts index 7561343fe..f8e76ea61 100644 Binary files a/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts and b/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.gts b/src/test/correct/multi_malloc/gcc/multi_malloc.gts index 61be4e358..5e09612e1 100644 Binary files a/src/test/correct/multi_malloc/gcc/multi_malloc.gts and b/src/test/correct/multi_malloc/gcc/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts b/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts index 866762b48..002a71e4c 100644 Binary files a/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts and b/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts b/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts index 31eac52f4..1a10add8b 100644 Binary files a/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts and b/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts b/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts index 5692dfd4b..011b94d30 100644 Binary files a/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts and b/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts differ diff --git a/src/test/correct/nestedif/clang/nestedif.gts b/src/test/correct/nestedif/clang/nestedif.gts index 9f164c061..c11fe8785 100644 Binary files a/src/test/correct/nestedif/clang/nestedif.gts and b/src/test/correct/nestedif/clang/nestedif.gts differ diff --git a/src/test/correct/nestedif/clang_O2/nestedif.gts b/src/test/correct/nestedif/clang_O2/nestedif.gts index bed02d8d9..5b688158d 100644 Binary files a/src/test/correct/nestedif/clang_O2/nestedif.gts and b/src/test/correct/nestedif/clang_O2/nestedif.gts differ diff --git a/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts b/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts index 3f5f98d6d..eb2a95792 100644 Binary files a/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts and b/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts differ diff --git a/src/test/correct/nestedif/clang_pic/nestedif.gts b/src/test/correct/nestedif/clang_pic/nestedif.gts index 22c909bbe..fa52bafb8 100644 Binary files a/src/test/correct/nestedif/clang_pic/nestedif.gts and b/src/test/correct/nestedif/clang_pic/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc/nestedif.gts b/src/test/correct/nestedif/gcc/nestedif.gts index e71f35460..9b806deb4 100644 Binary files a/src/test/correct/nestedif/gcc/nestedif.gts and b/src/test/correct/nestedif/gcc/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc_O2/nestedif.gts b/src/test/correct/nestedif/gcc_O2/nestedif.gts index 8562e2c46..19bb41a7c 100644 Binary files a/src/test/correct/nestedif/gcc_O2/nestedif.gts and b/src/test/correct/nestedif/gcc_O2/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts b/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts index bcbd5b182..047be0d7b 100644 Binary files a/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts and b/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc_pic/nestedif.gts b/src/test/correct/nestedif/gcc_pic/nestedif.gts index 40b75414d..40ac1cef1 100644 Binary files a/src/test/correct/nestedif/gcc_pic/nestedif.gts and b/src/test/correct/nestedif/gcc_pic/nestedif.gts differ diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts index 8dd798c5a..0ab727d7f 100644 Binary files a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts index 1aa221795..15eaba551 100644 Binary files a/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts index 13f17189d..6a9f6f5da 100644 Binary files a/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts index 70caf1d39..879a0d2a8 100644 Binary files a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts index 34ef31587..63b0d03c7 100644 Binary files a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts index afdb66ad2..3313e911b 100644 Binary files a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts index 901c674de..bf0f84f92 100644 Binary files a/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts index 55b8e8821..221d8080c 100644 Binary files a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts and b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts index 08913d6f3..9755c0a43 100644 Binary files a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts index 87b6cb525..06d6a8f8b 100644 Binary files a/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts index 024a55cae..0df5bec83 100644 Binary files a/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts index 0c3101e0f..024104af3 100644 Binary files a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts index 4cca10295..4eaadb272 100644 Binary files a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts index 1b7f9fcda..0ad92b602 100644 Binary files a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts index ae28ad443..ddaa649d2 100644 Binary files a/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts index f845377e4..69a42e5f0 100644 Binary files a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts and b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts differ diff --git a/src/test/correct/secret_write/clang/secret_write.gts b/src/test/correct/secret_write/clang/secret_write.gts index f77423698..831325964 100644 Binary files a/src/test/correct/secret_write/clang/secret_write.gts and b/src/test/correct/secret_write/clang/secret_write.gts differ diff --git a/src/test/correct/secret_write/clang_O2/secret_write.gts b/src/test/correct/secret_write/clang_O2/secret_write.gts index b4b0fd2c1..ebb8a6935 100644 Binary files a/src/test/correct/secret_write/clang_O2/secret_write.gts and b/src/test/correct/secret_write/clang_O2/secret_write.gts differ diff --git a/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts b/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts index 373423bfc..e97c81c4b 100644 Binary files a/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts and b/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts differ diff --git a/src/test/correct/secret_write/clang_pic/secret_write.gts b/src/test/correct/secret_write/clang_pic/secret_write.gts index 185237430..9bfdc1d84 100644 Binary files a/src/test/correct/secret_write/clang_pic/secret_write.gts and b/src/test/correct/secret_write/clang_pic/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc/secret_write.gts b/src/test/correct/secret_write/gcc/secret_write.gts index 07dd45172..55cf99496 100644 Binary files a/src/test/correct/secret_write/gcc/secret_write.gts and b/src/test/correct/secret_write/gcc/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.gts b/src/test/correct/secret_write/gcc_O2/secret_write.gts index 2f8b04926..23c3c10e3 100644 Binary files a/src/test/correct/secret_write/gcc_O2/secret_write.gts and b/src/test/correct/secret_write/gcc_O2/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts b/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts index 24fd046a8..65e5ae76b 100644 Binary files a/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts and b/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.gts b/src/test/correct/secret_write/gcc_pic/secret_write.gts index f33f81211..479b3b853 100644 Binary files a/src/test/correct/secret_write/gcc_pic/secret_write.gts and b/src/test/correct/secret_write/gcc_pic/secret_write.gts differ diff --git a/src/test/correct/simple_jump/clang/simple_jump.gts b/src/test/correct/simple_jump/clang/simple_jump.gts index 785535933..7df7b1643 100644 Binary files a/src/test/correct/simple_jump/clang/simple_jump.gts and b/src/test/correct/simple_jump/clang/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/clang_O2/simple_jump.gts b/src/test/correct/simple_jump/clang_O2/simple_jump.gts index e9b4db882..ab071c069 100644 Binary files a/src/test/correct/simple_jump/clang_O2/simple_jump.gts and b/src/test/correct/simple_jump/clang_O2/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts b/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts index 0640ad592..a588a1b54 100644 Binary files a/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts and b/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/clang_pic/simple_jump.gts b/src/test/correct/simple_jump/clang_pic/simple_jump.gts index 6cfa50375..b5b228ab3 100644 Binary files a/src/test/correct/simple_jump/clang_pic/simple_jump.gts and b/src/test/correct/simple_jump/clang_pic/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc/simple_jump.gts b/src/test/correct/simple_jump/gcc/simple_jump.gts index af699b97a..7e41ba49b 100644 Binary files a/src/test/correct/simple_jump/gcc/simple_jump.gts and b/src/test/correct/simple_jump/gcc/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc_O2/simple_jump.gts b/src/test/correct/simple_jump/gcc_O2/simple_jump.gts index 78e902787..54456d601 100644 Binary files a/src/test/correct/simple_jump/gcc_O2/simple_jump.gts and b/src/test/correct/simple_jump/gcc_O2/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts b/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts index 2ab05d154..fedcd687f 100644 Binary files a/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts and b/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc_pic/simple_jump.gts b/src/test/correct/simple_jump/gcc_pic/simple_jump.gts index 63c326218..82f35f797 100644 Binary files a/src/test/correct/simple_jump/gcc_pic/simple_jump.gts and b/src/test/correct/simple_jump/gcc_pic/simple_jump.gts differ diff --git a/src/test/correct/switch/clang/switch.gts b/src/test/correct/switch/clang/switch.gts index edb6c499b..f190b57d5 100644 Binary files a/src/test/correct/switch/clang/switch.gts and b/src/test/correct/switch/clang/switch.gts differ diff --git a/src/test/correct/switch/clang_O2/switch.gts b/src/test/correct/switch/clang_O2/switch.gts index a0d11d90d..4401670cb 100644 Binary files a/src/test/correct/switch/clang_O2/switch.gts and b/src/test/correct/switch/clang_O2/switch.gts differ diff --git a/src/test/correct/switch/clang_no_plt_no_pic/switch.gts b/src/test/correct/switch/clang_no_plt_no_pic/switch.gts index b4aad6a82..ce477c06b 100644 Binary files a/src/test/correct/switch/clang_no_plt_no_pic/switch.gts and b/src/test/correct/switch/clang_no_plt_no_pic/switch.gts differ diff --git a/src/test/correct/switch/clang_pic/switch.gts b/src/test/correct/switch/clang_pic/switch.gts index d7c75f161..2d5740907 100644 Binary files a/src/test/correct/switch/clang_pic/switch.gts and b/src/test/correct/switch/clang_pic/switch.gts differ diff --git a/src/test/correct/switch/gcc/switch.gts b/src/test/correct/switch/gcc/switch.gts index 1fe80e9be..9c6837d38 100644 Binary files a/src/test/correct/switch/gcc/switch.gts and b/src/test/correct/switch/gcc/switch.gts differ diff --git a/src/test/correct/switch/gcc_O2/switch.gts b/src/test/correct/switch/gcc_O2/switch.gts index e5ff08b1e..a750a5f5a 100644 Binary files a/src/test/correct/switch/gcc_O2/switch.gts and b/src/test/correct/switch/gcc_O2/switch.gts differ diff --git a/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts b/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts index adaa5a320..c0f7a2985 100644 Binary files a/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts and b/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts differ diff --git a/src/test/correct/switch/gcc_pic/switch.gts b/src/test/correct/switch/gcc_pic/switch.gts index 504b922cf..72c840d3e 100644 Binary files a/src/test/correct/switch/gcc_pic/switch.gts and b/src/test/correct/switch/gcc_pic/switch.gts differ diff --git a/src/test/correct/switch2/clang/switch2.gts b/src/test/correct/switch2/clang/switch2.gts index 60a895343..7a27843c4 100644 Binary files a/src/test/correct/switch2/clang/switch2.gts and b/src/test/correct/switch2/clang/switch2.gts differ diff --git a/src/test/correct/switch2/clang_O2/switch2.gts b/src/test/correct/switch2/clang_O2/switch2.gts index 5bf4c8d5b..fb5f65b30 100644 Binary files a/src/test/correct/switch2/clang_O2/switch2.gts and b/src/test/correct/switch2/clang_O2/switch2.gts differ diff --git a/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts b/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts index 3a9463be9..4e9be7d35 100644 Binary files a/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts and b/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts differ diff --git a/src/test/correct/switch2/clang_pic/switch2.gts b/src/test/correct/switch2/clang_pic/switch2.gts index a24a8a60c..1eb7d635a 100644 Binary files a/src/test/correct/switch2/clang_pic/switch2.gts and b/src/test/correct/switch2/clang_pic/switch2.gts differ diff --git a/src/test/correct/switch2/gcc/switch2.gts b/src/test/correct/switch2/gcc/switch2.gts index c1745bdd7..9ef10099a 100644 Binary files a/src/test/correct/switch2/gcc/switch2.gts and b/src/test/correct/switch2/gcc/switch2.gts differ diff --git a/src/test/correct/switch2/gcc_O2/switch2.gts b/src/test/correct/switch2/gcc_O2/switch2.gts index be983bab2..0f919884e 100644 Binary files a/src/test/correct/switch2/gcc_O2/switch2.gts and b/src/test/correct/switch2/gcc_O2/switch2.gts differ diff --git a/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts b/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts index 5aea3ceca..a38aa4a9d 100644 Binary files a/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts and b/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts differ diff --git a/src/test/correct/switch2/gcc_pic/switch2.gts b/src/test/correct/switch2/gcc_pic/switch2.gts index a41df71ae..2b3066603 100644 Binary files a/src/test/correct/switch2/gcc_pic/switch2.gts and b/src/test/correct/switch2/gcc_pic/switch2.gts differ diff --git a/src/test/correct/syscall/clang/syscall.gts b/src/test/correct/syscall/clang/syscall.gts index b138d833a..f28e9867a 100644 Binary files a/src/test/correct/syscall/clang/syscall.gts and b/src/test/correct/syscall/clang/syscall.gts differ diff --git a/src/test/correct/syscall/clang_O2/syscall.gts b/src/test/correct/syscall/clang_O2/syscall.gts index c83b55df3..3178c8889 100644 Binary files a/src/test/correct/syscall/clang_O2/syscall.gts and b/src/test/correct/syscall/clang_O2/syscall.gts differ diff --git a/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts b/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts index 4ee3751b9..f7b7ca82c 100644 Binary files a/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts and b/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts differ diff --git a/src/test/correct/syscall/clang_pic/syscall.gts b/src/test/correct/syscall/clang_pic/syscall.gts index f9c2493c7..5855b7f52 100644 Binary files a/src/test/correct/syscall/clang_pic/syscall.gts and b/src/test/correct/syscall/clang_pic/syscall.gts differ diff --git a/src/test/correct/syscall/gcc/syscall.gts b/src/test/correct/syscall/gcc/syscall.gts index 41ffe34b9..914931a78 100644 Binary files a/src/test/correct/syscall/gcc/syscall.gts and b/src/test/correct/syscall/gcc/syscall.gts differ diff --git a/src/test/correct/syscall/gcc_O2/syscall.gts b/src/test/correct/syscall/gcc_O2/syscall.gts index 55f8abf3f..f590346ab 100644 Binary files a/src/test/correct/syscall/gcc_O2/syscall.gts and b/src/test/correct/syscall/gcc_O2/syscall.gts differ diff --git a/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts b/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts index 5e4383db7..d2b414a85 100644 Binary files a/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts and b/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts differ diff --git a/src/test/correct/syscall/gcc_pic/syscall.gts b/src/test/correct/syscall/gcc_pic/syscall.gts index 79780afe7..1462951b6 100644 Binary files a/src/test/correct/syscall/gcc_pic/syscall.gts and b/src/test/correct/syscall/gcc_pic/syscall.gts differ diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts index dd0b9abe0..7b9f7f338 100644 Binary files a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts index 706aa2ab5..d28ff38e3 100644 Binary files a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts index e4e3a584b..4102c5a25 100644 Binary files a/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts index 298ee9363..8c775ea67 100644 Binary files a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts index 946348585..f66831e84 100644 Binary files a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts index 167119954..b43ff5a6a 100644 Binary files a/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts index 13d925408..357c2863d 100644 Binary files a/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts index 878241b9c..8e8860e51 100644 Binary files a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts and b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts index 64228f188..8e940f98c 100644 Binary files a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts index 5b9c1f99b..e9bb180ff 100644 Binary files a/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts index 9f330702b..691f37741 100644 Binary files a/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts index a80d2f263..adc1605d5 100644 Binary files a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts index 640a84fc5..8799fc907 100644 Binary files a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts index 19f056afa..1ea7ddc5f 100644 Binary files a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts index 94cef9fd4..9a950a78b 100644 Binary files a/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts index b23940dc7..64a878620 100644 Binary files a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts and b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts differ diff --git a/src/test/incorrect/basicassign/clang/basicassign.gts b/src/test/incorrect/basicassign/clang/basicassign.gts index 26e03574d..7b8f8ad0d 100644 Binary files a/src/test/incorrect/basicassign/clang/basicassign.gts and b/src/test/incorrect/basicassign/clang/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.gts b/src/test/incorrect/basicassign/clang_O2/basicassign.gts index 50019a819..d8e4aa0ff 100644 Binary files a/src/test/incorrect/basicassign/clang_O2/basicassign.gts and b/src/test/incorrect/basicassign/clang_O2/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts b/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts index 55f485638..4cffe21b9 100644 Binary files a/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts and b/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.gts b/src/test/incorrect/basicassign/clang_pic/basicassign.gts index bda97a839..bf28d7a06 100644 Binary files a/src/test/incorrect/basicassign/clang_pic/basicassign.gts and b/src/test/incorrect/basicassign/clang_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc/basicassign.gts b/src/test/incorrect/basicassign/gcc/basicassign.gts index c8caa7392..0f112e82b 100644 Binary files a/src/test/incorrect/basicassign/gcc/basicassign.gts and b/src/test/incorrect/basicassign/gcc/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.gts b/src/test/incorrect/basicassign/gcc_O2/basicassign.gts index 8366a68ec..f5efd34d2 100644 Binary files a/src/test/incorrect/basicassign/gcc_O2/basicassign.gts and b/src/test/incorrect/basicassign/gcc_O2/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts b/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts index c5af40c61..f51bc3213 100644 Binary files a/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts and b/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.gts b/src/test/incorrect/basicassign/gcc_pic/basicassign.gts index 04ded683d..9ad724ca5 100644 Binary files a/src/test/incorrect/basicassign/gcc_pic/basicassign.gts and b/src/test/incorrect/basicassign/gcc_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.gts b/src/test/incorrect/basicassign1/clang/basicassign1.gts index 084f4ac81..84d031124 100644 Binary files a/src/test/incorrect/basicassign1/clang/basicassign1.gts and b/src/test/incorrect/basicassign1/clang/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts b/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts index 361e2bab8..903a27124 100644 Binary files a/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts and b/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts b/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts index c16709254..de8c78697 100644 Binary files a/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts and b/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts b/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts index 6804e2607..c5937c3a9 100644 Binary files a/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts and b/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.gts b/src/test/incorrect/basicassign1/gcc/basicassign1.gts index e8a38fe41..e7a7059e1 100644 Binary files a/src/test/incorrect/basicassign1/gcc/basicassign1.gts and b/src/test/incorrect/basicassign1/gcc/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts index d69a17024..8863dd32f 100644 Binary files a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts and b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts index d1f317c71..91ac4438e 100644 Binary files a/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts and b/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts index 78a3cbc8b..33f3a1b2c 100644 Binary files a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts and b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.gts b/src/test/incorrect/basicassign2/clang/basicassign2.gts index 5c8880f1b..5387acb66 100644 Binary files a/src/test/incorrect/basicassign2/clang/basicassign2.gts and b/src/test/incorrect/basicassign2/clang/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts b/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts index a1c4b4b69..235fe38ce 100644 Binary files a/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts and b/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts b/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts index 803813bd9..bcaf6d89a 100644 Binary files a/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts and b/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts b/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts index 248f0735d..e590b35db 100644 Binary files a/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts and b/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.gts b/src/test/incorrect/basicassign2/gcc/basicassign2.gts index 2dca34578..7ca5bbdd8 100644 Binary files a/src/test/incorrect/basicassign2/gcc/basicassign2.gts and b/src/test/incorrect/basicassign2/gcc/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts index 9917c0a4f..5989d3b78 100644 Binary files a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts and b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts index 35b3b2e4b..bacbdde0d 100644 Binary files a/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts and b/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts index b168f2b74..e1c741564 100644 Binary files a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts and b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.gts b/src/test/incorrect/basicassign3/clang/basicassign3.gts index 8f88d6724..d80e2a712 100644 Binary files a/src/test/incorrect/basicassign3/clang/basicassign3.gts and b/src/test/incorrect/basicassign3/clang/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts b/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts index eed8fdfad..63e57f308 100644 Binary files a/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts and b/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts b/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts index f0d5d7a73..38c778a17 100644 Binary files a/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts and b/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts b/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts index 38984e8c9..fd346c230 100644 Binary files a/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts and b/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.gts b/src/test/incorrect/basicassign3/gcc/basicassign3.gts index a11d4cd2a..9d3979bf9 100644 Binary files a/src/test/incorrect/basicassign3/gcc/basicassign3.gts and b/src/test/incorrect/basicassign3/gcc/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts index 064f8c71f..4022df3e4 100644 Binary files a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts and b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts index a972ac91e..f7e70b037 100644 Binary files a/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts and b/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts index f94b151ca..60e68a2f1 100644 Binary files a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts and b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts differ diff --git a/src/test/incorrect/iflocal/clang/iflocal.gts b/src/test/incorrect/iflocal/clang/iflocal.gts index 084a47a03..ad728ca05 100644 Binary files a/src/test/incorrect/iflocal/clang/iflocal.gts and b/src/test/incorrect/iflocal/clang/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts b/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts index 81bffa7ed..823197021 100644 Binary files a/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts and b/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/clang_pic/iflocal.gts b/src/test/incorrect/iflocal/clang_pic/iflocal.gts index f493447d3..f2e638344 100644 Binary files a/src/test/incorrect/iflocal/clang_pic/iflocal.gts and b/src/test/incorrect/iflocal/clang_pic/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/gcc/iflocal.gts b/src/test/incorrect/iflocal/gcc/iflocal.gts index dae295bb8..1419ba7bb 100644 Binary files a/src/test/incorrect/iflocal/gcc/iflocal.gts and b/src/test/incorrect/iflocal/gcc/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts b/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts index b02c7a8d0..2b3ce7c88 100644 Binary files a/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts and b/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/gcc_pic/iflocal.gts b/src/test/incorrect/iflocal/gcc_pic/iflocal.gts index e461857e2..75ebaa668 100644 Binary files a/src/test/incorrect/iflocal/gcc_pic/iflocal.gts and b/src/test/incorrect/iflocal/gcc_pic/iflocal.gts differ diff --git a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts index 7131f36a7..1c43691ad 100644 Binary files a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts and b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts index 4b113288f..7219b56e6 100644 Binary files a/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts and b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts index ffb311e74..061475449 100644 Binary files a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts and b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts index 40a151449..9ff7dcb32 100644 Binary files a/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts and b/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts index 84617f238..f9ad509ae 100644 Binary files a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts and b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts index 725404406..7734fcc6e 100644 Binary files a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts and b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts index 03d8a27c6..f58d8e6fb 100644 Binary files a/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts and b/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts index 73e6d988b..dd1f5e3fc 100644 Binary files a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts and b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts differ diff --git a/src/test/scala/SystemTests.scala b/src/test/scala/SystemTests.scala index 8e66c919c..14234bc93 100644 --- a/src/test/scala/SystemTests.scala +++ b/src/test/scala/SystemTests.scala @@ -30,20 +30,21 @@ trait SystemTests extends AnyFunSuite { def runTests(programs: Array[String], path: String, name: String, shouldVerify: Boolean, useADT: Boolean): Unit = { // get all variations of each program + val testSuffix = if useADT then ":BAP" else ":GTIRB" for (p <- programs) { val programPath = path + "/" + p val variations = getSubdirectories(programPath) variations.foreach(t => - test(name + "/" + p + "/" + t) { + test(name + "/" + p + "/" + t + testSuffix) { runTest(path, p, t, shouldVerify, useADT) } ) } } - def summary(): Unit = { + def summary(filename: String): Unit = { val csv: String = "testCase," + TestResult.csvHeader + System.lineSeparator() + testResults.map(r => s"${r._1},${r._2.toCsv}").mkString(System.lineSeparator()) - log(csv, testPath + "testResults.csv") + log(csv, testPath + "full-" + filename) val numVerified = testResults.count(_._2.verified) val numCounterexample = testResults.count(x => !x._2.verified && !x._2.timedOut) @@ -61,7 +62,7 @@ trait SystemTests extends AnyFunSuite { val summaryHeader = "passedCount,failedCount,verifiedCount,counterexampleCount,timeoutCount,verifyTotalTime,counterexampleTotalTime" val summaryRow = s"$numSuccess,$numFail,$numVerified,${counterExamples.size},$numTimeout,${verifying.sum},${counterExamples.sum}" - log(summaryHeader + System.lineSeparator() + summaryRow, testPath + "summary.csv") + log(summaryHeader + System.lineSeparator() + summaryRow, testPath + "summary-" + filename) } def runTest(path: String, name: String, variation: String, shouldVerify: Boolean, useADT: Boolean): Unit = { @@ -164,7 +165,7 @@ class SystemTestsBAP extends SystemTests { runTests(correctPrograms, correctPath, "correct", true, true) runTests(incorrectPrograms, incorrectPath, "incorrect", false, true) test("summary") { - summary() + summary("testresult-BAP.csv") } } @@ -172,6 +173,6 @@ class SystemTestsGTIRB extends SystemTests { runTests(correctPrograms, correctPath, "correct", true, false) runTests(incorrectPrograms, incorrectPath, "incorrect", false, false) test("summary") { - summary() + summary("testresult-GTIRB.csv") } }