diff options
-rw-r--r-- | src/intertyper.js | 2 | ||||
-rwxr-xr-x | tests/runner.py | 29 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/intertyper.js b/src/intertyper.js index d9db10f9..6b91f527 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -74,7 +74,7 @@ function intertyper(data, sidePass, baseLineNums) { var global = /([@%\w\d\.\" $-]+) = .*/.exec(line); var globalIdent = toNiceIdent(global[1]); var testAlias = /[@%\w\d\.\" $-]+ = alias .*/.exec(line); - var testString = /^[^"]+c\"[^"]+"/.exec(line); + var testString = /[@%\w\d\.\" $-]+ = [\w ]+ \[\d+ x i8] c".*/.exec(line); Variables.globals[globalIdent] = { name: globalIdent, alias: !!testAlias, diff --git a/tests/runner.py b/tests/runner.py index 1856016f..8e2e7b28 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -2866,6 +2866,35 @@ def process(filename): ''' self.do_run(src, 'fault on write to 0') + def test_trickystring(self): + src = r''' + #include <stdio.h> + + typedef struct + { + int (*f)(void *); + void *d; + char s[16]; + } LMEXFunctionStruct; + + int f(void *user) + { + return 0; + } + + static LMEXFunctionStruct const a[] = + { + {f, (void *)(int)'a', "aa"} + }; + + int main() + { + printf("ok\n"); + return a[0].f(a[0].d); + } + ''' + self.do_run(src, 'ok\n') + def test_statics(self): # static initializers save i16 but load i8 for some reason if Settings.SAFE_HEAP: |