Package: tendra Version: 4.1.2-19 Severity: important Tags: upstream patch For example, compiling of tendra_nil.c:
int f(int a, int b) { return (b & ~a) | ~b; } int main() { f(0, 0); return 0; } $ tendracc tendra_nil.c tcc: Error: Caught signal 11 in '/usr/lib/TenDRA/machines/linux/2.6.32-3-amd64/80x86/bin/trans'. I found and fix mistake without good understanding of tendracc. But because of fix is influence only on situations which must not appear in normal cases, it must not broke main logic. -- System Information: Debian Release: 6.0.6 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core) Locale: LANG=ru_UA.utf8, LC_CTYPE=ru_UA.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages tendra depends on: ii binutils 2.20.1-16 The GNU assembler, linker and bina ii libc6 2.11.3-4 Embedded GNU C Library: Shared lib Versions of packages tendra recommends: ii libc6-dev [libc-dev] 2.11.3-4 Embedded GNU C Library: Developmen Versions of packages tendra suggests: ii tendra-doc 4.1.2-8 Documentation for the TenDRA C/C++ -- no debconf information
diff -r tendra-4.1.2/src/installers/common/construct/exp.c tendra-fix/src/installers/common/construct/exp.c 724c724 < while (*x != e) --- > while (x != nilexp && *x != e) 786,794c786,795 < if (last (*ref)) < setlast (e); < else < clearlast (e); < bro (e) = bro (*ref); < *ref = e; < if (scope == old) < return; < altered (e, scope); --- > if (ref != nilexp) { > if (last (*ref)) > setlast (e); > else > clearlast (e); > bro (e) = bro (*ref); > *ref = e; > if (scope != old) > altered (e, scope); > } 1210a1212 >