Bug 5272

Summary: slang test case strops.sl failed in x86-64
Product: [Build System, Metadata & Runtime] OE-Core Reporter: LiRongQing <rongqing.li>
Component: devtools / tool chainAssignee: Irina Patru <irina.patru>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: Medium CC: irina.patru, jessica.zhang, meta.mr.watcher, meta.watcher
Version: 1.5   
Target Milestone: 1.5   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description LiRongQing 2013-09-26 05:35:12 UTC
1. compile the slang test case by adding compile append in bb file

do_compile_append() {
cd src; make all; pwd; cd test; make sltest
}

2. put the sltest, strops.sl, and inc.sl from src/test to target


3. run test case, it failed.
./sltest strops.sl

4. simplify the test case as below:
4.1 the test script as below
root@qemu0:~# cat my1.sl 
printf("%s", sprintf("%c", ','));
4.2 if it work well, it should be print out ",", but it failed to print
root@qemu0:~# ./sltest my1.sl
root@qemu0:~# ,

5. I think it is toolchain bug, since I only need to add a print in source code,
this bug will disappear,
diff --git a/src/slstrops.c b/src/slstrops.c
index af915a5..15b12f9 100644
--- a/src/slstrops.c
+++ b/src/slstrops.c
@@ -2083,6 +2083,7 @@ static char *SLdo_sprintf (char *fmt) /*{{{*/
                  else if (NULL == SLutf8_encode_null_terminate (wc, utf8_buf))
                    return out;
                  ch = 's';
+                 printf("%s", utf8_buf);
                  str = (char *)utf8_buf;
                  use_string = 1;
               }