summaryrefslogtreecommitdiff
path: root/src/test/java/com/seaofnodes/simple/TestC.java
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-06-13 15:42:08 -0700
committerCliff Click <cliffc@acm.org>2026-10-24 15:56:44 -0700
commit89dd0a79da85b2c7102b7c8918a1466e6238fe94 (patch)
treecfa3d1457e9c40ad79ae78ded15c7c2ff286d79d /src/test/java/com/seaofnodes/simple/TestC.java
parent8309071562b63f77a15425ab2146e05dbcb5acfd (diff)
downloadSimple-linear-chapter24a.tar.gz
Simple-linear-chapter24a.zip
Chapter 24a: SCCP Within a Functionlinear-chapter24a
Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.com> Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: fuhsnn <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: Jun Kawasaki <jun784@gmail.com> Co-authored-by: Hadházy Tamás <helsgithub15@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/TestC.java')
-rw-r--r--src/test/java/com/seaofnodes/simple/TestC.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/java/com/seaofnodes/simple/TestC.java b/src/test/java/com/seaofnodes/simple/TestC.java
index 2e61211a..3b3aabc0 100644
--- a/src/test/java/com/seaofnodes/simple/TestC.java
+++ b/src/test/java/com/seaofnodes/simple/TestC.java
@@ -41,14 +41,31 @@ public abstract class TestC {
String src = Files.readString(Path.of(sfile));
run(src,CALL_CONVENTION,arg, "",standalone? null: cfile,efile,"S",expected,spills);
}
+
+ // link with c and also inline
+ public static void run(String src, String file, TypeInteger arg, String expected, int spills) throws IOException {
+ String dir = "src/test/java/com/seaofnodes/simple/progs";
+ String cfile = dir+"/"+file+".c";
+ String efile = "build/objs/"+file;
+ run(src, CALL_CONVENTION, arg, "", cfile, efile, "S", expected, spills);
+ }
+
public static void run(String dir, String file, String expected, int spills ) throws IOException {
run(dir, file,null, expected, spills, false);
}
+ // Do not link with c file - no inline.
public static void runS(String file, String expected, int spills ) throws IOException {
run("src/test/java/com/seaofnodes/simple/progs", file, null, expected, spills, true);
}
+
+ // Do not link with c file - just inline with source.
+ public static void runSF(String name, String src, TypeInteger arg, String expected, int spills ) throws IOException {
+ String efile = "build/objs/"+name;
+ run(src,CALL_CONVENTION,arg, "",null,efile,"S",expected,spills);
+ }
+
public static void runS(String file, TypeInteger arg, String expected, int spills ) throws IOException {
run("src/test/java/com/seaofnodes/simple/progs", file, arg, expected, spills, true);
}