Menu

cppcheck abort (on checking LibreOffice sources)

2015-02-02
2015-02-04
  • Maarten Hoes

    Maarten Hoes - 2015-02-02

    Hi,

    Running the latest git master cppcheck in the following way on the latest git master of LibreOffice triggers an abort in cppcheck:

    /home/buildslave/source/cppcheck//cppcheck -i external/ -i workdir/ --xml --suppressions-list=/home/buildslave/tmp/cppcheck_supp.txt --enable=all --max-configs=25 ./ 2> /home/buildslave/tmp/err.xml

    I include the output of strace -f below of running above command, hope it helps in diagnosing the root cause.


    execve("/home/buildslave/source/cppcheck//cppcheck", ["/home/buildslave/source/cppcheck//cppcheck", "-i", "external/", "-i", "workdir/", "--xml", "--suppressions-list=/home/buildslave/tmp/cppcheck_supp.txt", "--enable=all", "--max-configs=25", "./vcl/unx/generic/gdi/gcach_xpeer.cxx"], [/* 54 vars */]) = 0
    brk(0)                                  = 0x1799000
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af524b000
    access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=104541, ...}) = 0
    mmap(NULL, 104541, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5af5231000
    close(3)                                = 0
    open("/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\265\5\0\0\0\0\0@\0\0\0\0\0\0\0\370\0\17\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0\37\0\36\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0UR\16\0\0\0\0\0UR\16\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\20]\16\0\0\0\0\0\20].\0\0\0\0\0\20].\0\0\0\0\0\250\212\0\0\0\0\0\0\20\327\1\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\330\304\16\0\0\0\0\0\330\304.\0\0\0\0\0\330\304.\0\0\0\0\0 \2\0\0\0\0\0\0 \2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0\20]\16\0\0\0\0\0\20].\0\0\0\0\0\20].\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\10\0\0\0\0\0\0\0P\345td\4\0\0\0\360J\f\0\0\0\0\0\360J\f\0\0\0\0\0\360J\f\0\0\0\0\0\214J\0\0\0\0\0\0\214J\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\20]\16\0\0\0\0\0\20].\0\0\0\0\0\20].\0\0\0\0\0\360r\0\0\0\0\0\0\360r\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\231}\21 \375\371-\305\307\342h\252\212\307iP\\t\352[\0\0\0\0\367\3\0\0\206\0\0\0\0\2\0\0\17\0\0\0\4\200G\0\202@@\230\0\0\0D\2\0\210\20\0\0\0\0\0\242\0\1(\4 \22 \6\220\10\2\f\10\5\2\0Z\0\0\20\n\1\0\10\22\2\\\0\300D\30 \4@\202\5+\200a \20\20\0\0!\201\0`E\0\6\5\271@\220\v\1\t$\30G\2\2\t\20\205\200\200)\10\234`\206i\4\204\304\200y\0d \"\210\3`$\220\200\0002\22( \2B\20B \200\302\2\20\202A\200\241@a\10 \24\0@\2\0\1\0\0\1\4\0\20 @\0\0 \2\0\0\0\0\20@\0\t\0\340\2\4\210\20\0\1@\206\4\2#8\365&@\201\3 \4\0\20\4\f$ \0@\10\0\f\20\0\0\0\4\20\0\6\6\5 B\210@\\\6 \0\20H\4 \0\0@\10\4\1\0\22\364\373\307\237\7\0\203\206\200\20\200\0$\2440 PH! \220\21\200$\340\247 !`\210\210\0\3\0\200\10\3\0\4\0\344\10\220", 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=985272, ...}) = 0
    mmap(NULL, 3159072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5af4d2a000
    mprotect(0x7f5af4e10000, 2093056, PROT_NONE) = 0
    mmap(0x7f5af500f000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe5000) = 0x7f5af500f000
    mmap(0x7f5af5019000, 82976, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5af5019000
    close(3)                                = 0
    open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000U\0\0\0\0\0\0@\0\0\0\0\0\0\0\2609\20\0\0\0\0\0\0\0\0\0@\0008\0\t\0@\0\37\0\36\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\370\1\0\0\0\0\0\0\370\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0P\226\17\0\0\0\0\0P\226\17\0\0\0\0\0P\226\17\0\0\0\0\0\34\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\200\32\20\0\0\0\0\0\200\32\20\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\220\35\20\0\0\0\0\0\220\0350\0\0\0\0\0\220\0350\0\0\0\0\0t\3\0\0\0\0\0\0\310\3\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\250\35\20\0\0\0\0\0\250\0350\0\0\0\0\0\250\0350\0\0\0\0\0\20\2\0\0\0\0\0\0\20\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0008\2\0\0\0\0\0\0008\2\0\0\0\0\0\0008\2\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0l\226\17\0\0\0\0\0l\226\17\0\0\0\0\0l\226\17\0\0\0\0\0\214\22\0\0\0\0\0\0\214\22\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\220\35\20\0\0\0\0\0\220\0350\0\0\0\0\0\220\0350\0\0\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\355\266^F \26\262\3702\260\31(\177\357\324\257A\23\202\33\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0\0\0\0\0\35\3\0\0\23\0\0\0@\0\0\0\f\0\0\0%\0`\0\0\240.\"\200\0\26\211\0 E\"\2\0\300``i\10\212\0\t\0\0\0\0\0\0\0\0\0\0\0\0\212P\20\1\10\0\0\4\1\302\24\1 \210\"\0\304\243X\240\n\6\216\0\212\0\0\4\0@\0\0 \20\0\5\0\5\r\7\7\22A\0\1\0\10\0\0@\0\t\0\20\4D\30\4\200a(\22@\4\1\nE\221 @\200\f\22\1\0\0\0\0\0\0\0\0\4\2\0\0\0@\0\200\2\20\322\0\1\10\4\301 E\1\0\310\"\0\4\2\0\202\0\4\0\0\0\4\0Y\4\2\0\n\200\1\0\0\4\0\20 \3\0\0\210 \10\20\0\0", 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=1065328, ...}) = 0
    mmap(NULL, 3154264, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5af4a27000
    mprotect(0x7f5af4b29000, 2093056, PROT_NONE) = 0
    mmap(0x7f5af4d28000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x101000) = 0x7f5af4d28000
    close(3)                                = 0
    open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360*\0\0\0\0\0\0@\0\0\0\0\0\0\0\0Y\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\214K\1\0\0\0\0\0\214K\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\270M\1\0\0\0\0\0\270M!\0\0\0\0\0\270M!\0\0\0\0\0\320\3\0\0\0\0\0\0h\6\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\330M\1\0\0\0\0\0\330M!\0\0\0\0\0\330M!\0\0\0\0\0\360\1\0\0\0\0\0\0\360\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\360+\1\0\0\0\0\0\360+\1\0\0\0\0\0\360+\1\0\0\0\0\0D\5\0\0\0\0\0\0D\5\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\270M\1\0\0\0\0\0\270M!\0\0\0\0\0\270M!\0\0\0\0\0H\2\0\0\0\0\0\0H\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0L\5 A\226t{\1_X\274\343bc\201Ff1\227\205\0\0\0\0\203\0\0\0\27\0\0\0\20\0\0\0\n\0\0\0\23\34\3\30\4$\0\1\1\201\0T\4\6\210\20\200\204\0\10\0\10\5\200\2\0@\20D\20\0\266\2\200\320 \301\0\220\2024\1\0\4\10(@\2H\1\v \320\1\2(\0235\4`l\322\0!\3p`@\322\200\10`\0@\1\0\200\1\0\0\2$\0\10\21\2\10H\300\1$\t\21(  \10C\v\246\202H\t\10\10\3D\f\n\34\22O\306\1\207\va\204\226\315\4\302\305\f\242\333\16\314\27\0\0\0\30\0\0\0\33\0\0\0\0\0\0\0\36\0\0\0\0\0\0\0 \0\0\0!\0\0\0#\0\0\0&\0\0\0(\0\0\0\0\0\0\0)\0\0\0+\0\0\0,\0\0\0/\0\0\0001\0\0\0004\0\0\0005\0\0\0008\0\0\0\0\0\0\0009\0\0\0:\0\0\0=\0\0\0>\0\0\0@\0\0\0A\0\0\0B\0\0\0C\0\0\0D\0\0\0F\0\0\0\0\0\0\0G\0\0\0\0\0\0\0H\0\0\0\0\0\0\0\0\0\0\0I\0\0\0J\0\0\0L\0\0\0M\0\0\0N\0\0\0\0\0\0\0\0\0\0\0P\0\0\0R\0\0\0\0\0\0\0\0\0\0\0", 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=90112, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af5230000
    mmap(NULL, 2184224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5af4811000
    mprotect(0x7f5af4826000, 2093056, PROT_NONE) = 0
    mmap(0x7f5af4a25000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f5af4a25000
    close(3)                                = 0
    open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\35\2\0\0\0\0\0@\0\0\0\0\0\0\0\350\200\37\0\0\0\0\0\0\0\0\0@\0008\0\n\0@\0G\0F\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\340\232\27\0\0\0\0\0\340\232\27\0\0\0\0\0\340\232\27\0\0\0\0\0\34\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0d\274\32\0\0\0\0\0d\274\32\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0P\307\32\0\0\0\0\0P\307:\0\0\0\0\0P\307:\0\0\0\0\0\350O\0\0\0\0\0\0\260\222\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\240\373\32\0\0\0\0\0\240\373:\0\0\0\0\0\240\373:\0\0\0\0\0\340\1\0\0\0\0\0\0\340\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0P\307\32\0\0\0\0\0P\307:\0\0\0\0\0P\307:\0\0\0\0\0\20\0\0\0\0\0\0\0\200\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0P\345td\4\0\0\0\374\232\27\0\0\0\0\0\374\232\27\0\0\0\0\0\374\232\27\0\0\0\0\0\334f\0\0\0\0\0\0\334f\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0P\307\32\0\0\0\0\0P\307:\0\0\0\0\0P\307:\0\0\0\0\0\2608\0\0\0\0\0\0\2608\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0[\220L\300\3730\303\226Gtd\311r\243\37 z\273X\33\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0\0\0\0\0\363\3\0\0\n\0\0\0\0\1\0\0\16\0\0\0\0000\20D\240 \2\1\210\3\346\220\305E\214\0\300\0\10\0\5\200\0`\300\200\0\r\212\f\0\4\20\0\210D2\10.@\210P4, \16\"H&\204\300\214\4\10\0\2\2\16\241\254\32\4f\300\0\3002\0\300\0P\1 \201\10\204\v  ($\0\4 P\0\20X\200\312DB(\0\6\200\20\30B\0 @\200\0\tP\0Q\212@\20\0\0\0\0\10\0\0\21\20", 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=2069160, ...}) = 0
    mmap(NULL, 3889664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5af445b000
    mprotect(0x7f5af4607000, 2097152, PROT_NONE) = 0
    mmap(0x7f5af4807000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ac000) = 0x7f5af4807000
    mmap(0x7f5af480d000, 14848, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5af480d000
    close(3)                                = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af522f000
    mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af522d000
    arch_prctl(ARCH_SET_FS, 0x7f5af522d740) = 0
    mprotect(0x7f5af4807000, 16384, PROT_READ) = 0
    mprotect(0x7f5af4a25000, 4096, PROT_READ) = 0
    mprotect(0x7f5af4d28000, 4096, PROT_READ) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af522c000
    mprotect(0x7f5af500f000, 32768, PROT_READ) = 0
    mprotect(0xbfb000, 4096, PROT_READ)     = 0
    mprotect(0x7f5af524c000, 4096, PROT_READ) = 0
    munmap(0x7f5af5231000, 104541)          = 0
    brk(0)                                  = 0x1799000
    brk(0x17ba000)                          = 0x17ba000
    stat("./external", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    stat("external", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    stat("./workdir", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    stat("workdir", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    open("/home/buildslave/tmp/cppcheck_supp.txt", O_RDONLY) = 3
    read(3, "unusedFunction\n", 8191)       = 15
    read(3, "", 8191)                       = 0
    close(3)                                = 0
    stat("./vcl/unx/generic/gdi/gcach_xpeer.cxx", {st_mode=S_IFREG|0664, st_size=3207, ...}) = 0
    stat("./vcl/unx/generic/gdi/gcach_xpeer.cxx", {st_mode=S_IFREG|0664, st_size=3207, ...}) = 0
    getcwd("/home/buildslave/source/libo-core", 4096) = 34
    lstat("/home/buildslave/source/libo-core/vcl", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/libo-core/vcl/unx", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/libo-core/vcl/unx/generic", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/libo-core/vcl/unx/generic/gdi", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/libo-core/vcl/unx/generic/gdi/gcach_xpeer.cxx", {st_mode=S_IFREG|0664, st_size=3207, ...}) = 0
    stat("/home/buildslave/source/libo-core/vcl/unx/generic/gdi/gcach_xpeer.cxx", {st_mode=S_IFREG|0664, st_size=3207, ...}) = 0
    open("std.cfg", O_RDONLY)               = -1 ENOENT (No such file or directory)
    open("/home/buildslave/source/cppcheck//cfg/std.cfg", O_RDONLY) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=121152, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af524a000
    lseek(3, 0, SEEK_SET)                   = 0
    read(3, "<?xml version=\"1.0\"?>\n<def format=\"1\">\n  <!-- void abort(void); -->\n  <function name=\"abort\">\n    <noreturn>true</noreturn>\n  </function>\n  <!-- int abs (int j); -->\n  <function name=\"abs\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n      <not-bool/>\n    </arg>\n  </function>\n  <!-- double complex cproj(double complex x); -->\n  <function name=\"cproj\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex cprojf(float complex x); -->\n  <function name=\"cprojf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double complex cprojl(long double complex x); -->\n  <function name=\"cprojl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double creal(double complex x); -->\n  <function name=\"creal\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float crealf(float complex x); -->\n  <function name=\"crealf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double creall(long double complex x); -->\n  <function name=\"creall\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double acos(double x); -->\n  <function name=\"acos\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float acosf(float x); -->\n  <function name=\"acosf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double acosl(long double x); -->\n  <function name=\"acosl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double acosh(double x); -->\n  <function name=\"acosh\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float acoshf(float x); -->\n  <function name=\"acoshf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double acoshl(long double x); -->\n  <function name=\"acoshl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <function name=\"asctime\">\n    <use-retval/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- void assert (int expression) -->\n  <function name=\"assert\">\n    <leak-ignore/>\n  </function>\n  <!-- double sqrt(double x); -->\n  <function name=\"sqrt\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float sqrtf(float x); -->\n  <function name=\"sqrtf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double sqrtl(long double x); -->\n  <function name=\"sqrtl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double complex csqrt(double complex x); -->\n  <function name=\"csqrt\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex csqrtf(float complex x); -->\n  <function name=\"csqrtf\">\n    <use-retval/>\n    <pure", 4096) = 4096
    fstat(3, {st_mode=S_IFREG|0644, st_size=121152, ...}) = 0
    lseek(3, 118784, SEEK_SET)              = 118784
    read(3, "ontainer id=\"stdBasicString\" startPattern=\"std :: basic_string &lt;\" inherits=\"stdAllString\">\n    <type templateParameter=\"0\"/>\n  </container>\n  <container id=\"stdString\" startPattern=\"std :: string|wstring|u16string|u32string\" endPattern=\"\" inherits=\"stdAllString\">\n  </container>\n  <podtype name=\"int8_t\" sign=\"s\" size=\"1\"/>\n  <podtype name=\"int16_t\" sign=\"s\" size=\"2\"/>\n  <podtype name=\"int32_t\" sign=\"s\" size=\"4\"/>\n  <podtype name=\"int64_t\" sign=\"s\" size=\"8\"/>\n  <podtype name=\"uint8_t\" sign=\"u\" size=\"1\"/>\n  <podtype name=\"uint16_t\" sign=\"u\" size=\"2\"/>\n  <podtype name=\"uint32_t\" sign=\"u\" size=\"4\"/>\n  <podtype name=\"uint64_t\" sign=\"u\" size=\"8\"/>\n  <podtype name=\"int_fast8_t\" sign=\"s\"/>\n  <podtype name=\"int_fast16_t\" sign=\"s\"/>\n  <podtype name=\"int_fast32_t\" sign=\"s\"/>\n  <podtype name=\"int_fast64_t\" sign=\"s\"/>\n  <podtype name=\"int_least8_t\" sign=\"s\"/>\n  <podtype name=\"int_least16_t\" sign=\"s\"/>\n  <podtype name=\"int_least32_t\" sign=\"s\"/>\n  <podtype name=\"int_least64_t\" sign=\"s\"/>\n  <podtype name=\"uint_fast8_t\" sign=\"u\"/>\n  <podtype name=\"uint_fast16_t\" sign=\"u\"/>\n  <podtype name=\"uint_fast32_t\" sign=\"u\"/>\n  <podtype name=\"uint_fast64_t\" sign=\"u\"/>\n  <podtype name=\"uint_least8_t\" sign=\"u\"/>\n  <podtype name=\"uint_least16_t\" sign=\"u\"/>\n  <podtype name=\"uint_least32_t\" sign=\"u\"/>\n  <podtype name=\"uint_least64_t\" sign=\"u\"/>\n  <podtype name=\"intptr_t\" sign=\"s\"/>\n  <podtype name=\"uintptr_t\" sign=\"u\"/>\n  <podtype name=\"intmax_t\" sign=\"s\"/>\n  <podtype name=\"uintmax_t\" sign=\"u\"/>\n  <podtype name=\"size_t\" sign=\"u\"/>\n  <podtype name=\"double_t\"/>\n  <podtype name=\"float_t\"/>\n  <podtype name=\"time_t\"/>\n  <podtype name=\"clock_t\"/>\n  <podtype name=\"tm\"/>\n  <podtype name=\"fenv_t\"/>\n  <podtype name=\"fexcept_t\"/>\n  <podtype name=\"lconv\"/>\n  <podtype name=\"sig_atomic_t\"/>\n  <podtype name=\"va_list\"/>\n  <podtype name=\"ptrdiff_t\"/>\n  <podtype name=\"max_align_t\"/>\n  <podtype name=\"nullptr_t\"/>\n  <podtype name=\"fpos_t\"/>\n  <podtype name=\"FILE\"/>\n  <podtype name=\"div_t\"/>\n  <podtype name=\"ldiv_t\"/>\n  <podtype name=\"lldiv_t\"/>\n  <podtype name=\"mbstate_t\"/>\n  <podtype name=\"wint_t\"/>\n  <!--Not part of standard, but widely supported by runtime libraries-->\n  <function name=\"itoa\">\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n    <arg nr=\"2\">\n      <not-null/>\n    </arg>\n    <arg nr=\"3\"/>\n  </function>\n</def>\n", 4096) = 2368
    lseek(3, 0, SEEK_SET)                   = 0
    brk(0x17e1000)                          = 0x17e1000
    read(3, "<?xml version=\"1.0\"?>\n<def format=\"1\">\n  <!-- void abort(void); -->\n  <function name=\"abort\">\n    <noreturn>true</noreturn>\n  </function>\n  <!-- int abs (int j); -->\n  <function name=\"abs\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n      <not-bool/>\n    </arg>\n  </function>\n  <!-- double complex cproj(double complex x); -->\n  <function name=\"cproj\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex cprojf(float complex x); -->\n  <function name=\"cprojf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double complex cprojl(long double complex x); -->\n  <function name=\"cprojl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double creal(double complex x); -->\n  <function name=\"creal\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float crealf(float complex x); -->\n  <function name=\"crealf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double creall(long double complex x); -->\n  <function name=\"creall\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double acos(double x); -->\n  <function name=\"acos\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float acosf(float x); -->\n  <function name=\"acosf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double acosl(long double x); -->\n  <function name=\"acosl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double acosh(double x); -->\n  <function name=\"acosh\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float acoshf(float x); -->\n  <function name=\"acoshf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double acoshl(long double x); -->\n  <function name=\"acoshl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <function name=\"asctime\">\n    <use-retval/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- void assert (int expression) -->\n  <function name=\"assert\">\n    <leak-ignore/>\n  </function>\n  <!-- double sqrt(double x); -->\n  <function name=\"sqrt\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float sqrtf(float x); -->\n  <function name=\"sqrtf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double sqrtl(long double x); -->\n  <function name=\"sqrtl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double complex csqrt(double complex x); -->\n  <function name=\"csqrt\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex csqrtf(float complex x); -->\n  <function name=\"csqrtf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double complex csqrtl(long double complex x); -->\n  <function name=\"csqrtl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double sinh(double x); -->\n  <function name=\"sinh\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float sinhf(float x); -->\n  <function name=\"sinhf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double sinhl(long double x); -->\n  <function name=\"sinhl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double sin(double x); -->\n  <function name=\"sin\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float sinf(float f); -->\n  <function name=\"sinf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double sinl(long double x); -->\n  <function name=\"sinl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double complex csin(double complex x); -->\n  <function name=\"csin\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex csinf(float complex f); -->\n  <function name=\"csinf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double complex csinl(long double complex x); -->\n  <function name=\"csinl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double complex csinh(double complex x); -->\n  <function name=\"csinh\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex csinhf(float complex f); -->\n  <function name=\"csinhf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double complex csinhl(long double complex x); -->\n  <function name=\"csinhl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double asin(double x); -->\n  <function name=\"asin\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- double complex casin(double complex x); -->\n  <function name=\"casin\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float asinf(float x); -->\n  <function name=\"asinf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- float complex casinf(float complex x); -->\n  <function name=\"casinf\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double asinl(long double x); -->\n  <function name=\"asinl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n  </function>\n  <!-- long double complex casinl(long double complex x); -->\n  <function name=\"casinl\">\n    <use-retval/>\n    <pure/>\n    <noreturn>false</n"..., 118784) = 118784
    read(3, "ontainer id=\"stdBasicString\" startPattern=\"std :: basic_string &lt;\" inherits=\"stdAllString\">\n    <type templateParameter=\"0\"/>\n  </container>\n  <container id=\"stdString\" startPattern=\"std :: string|wstring|u16string|u32string\" endPattern=\"\" inherits=\"stdAllString\">\n  </container>\n  <podtype name=\"int8_t\" sign=\"s\" size=\"1\"/>\n  <podtype name=\"int16_t\" sign=\"s\" size=\"2\"/>\n  <podtype name=\"int32_t\" sign=\"s\" size=\"4\"/>\n  <podtype name=\"int64_t\" sign=\"s\" size=\"8\"/>\n  <podtype name=\"uint8_t\" sign=\"u\" size=\"1\"/>\n  <podtype name=\"uint16_t\" sign=\"u\" size=\"2\"/>\n  <podtype name=\"uint32_t\" sign=\"u\" size=\"4\"/>\n  <podtype name=\"uint64_t\" sign=\"u\" size=\"8\"/>\n  <podtype name=\"int_fast8_t\" sign=\"s\"/>\n  <podtype name=\"int_fast16_t\" sign=\"s\"/>\n  <podtype name=\"int_fast32_t\" sign=\"s\"/>\n  <podtype name=\"int_fast64_t\" sign=\"s\"/>\n  <podtype name=\"int_least8_t\" sign=\"s\"/>\n  <podtype name=\"int_least16_t\" sign=\"s\"/>\n  <podtype name=\"int_least32_t\" sign=\"s\"/>\n  <podtype name=\"int_least64_t\" sign=\"s\"/>\n  <podtype name=\"uint_fast8_t\" sign=\"u\"/>\n  <podtype name=\"uint_fast16_t\" sign=\"u\"/>\n  <podtype name=\"uint_fast32_t\" sign=\"u\"/>\n  <podtype name=\"uint_fast64_t\" sign=\"u\"/>\n  <podtype name=\"uint_least8_t\" sign=\"u\"/>\n  <podtype name=\"uint_least16_t\" sign=\"u\"/>\n  <podtype name=\"uint_least32_t\" sign=\"u\"/>\n  <podtype name=\"uint_least64_t\" sign=\"u\"/>\n  <podtype name=\"intptr_t\" sign=\"s\"/>\n  <podtype name=\"uintptr_t\" sign=\"u\"/>\n  <podtype name=\"intmax_t\" sign=\"s\"/>\n  <podtype name=\"uintmax_t\" sign=\"u\"/>\n  <podtype name=\"size_t\" sign=\"u\"/>\n  <podtype name=\"double_t\"/>\n  <podtype name=\"float_t\"/>\n  <podtype name=\"time_t\"/>\n  <podtype name=\"clock_t\"/>\n  <podtype name=\"tm\"/>\n  <podtype name=\"fenv_t\"/>\n  <podtype name=\"fexcept_t\"/>\n  <podtype name=\"lconv\"/>\n  <podtype name=\"sig_atomic_t\"/>\n  <podtype name=\"va_list\"/>\n  <podtype name=\"ptrdiff_t\"/>\n  <podtype name=\"max_align_t\"/>\n  <podtype name=\"nullptr_t\"/>\n  <podtype name=\"fpos_t\"/>\n  <podtype name=\"FILE\"/>\n  <podtype name=\"div_t\"/>\n  <podtype name=\"ldiv_t\"/>\n  <podtype name=\"lldiv_t\"/>\n  <podtype name=\"mbstate_t\"/>\n  <podtype name=\"wint_t\"/>\n  <!--Not part of standard, but widely supported by runtime libraries-->\n  <function name=\"itoa\">\n    <noreturn>false</noreturn>\n    <leak-ignore/>\n    <arg nr=\"1\">\n      <not-uninit/>\n    </arg>\n    <arg nr=\"2\">\n      <not-null/>\n    </arg>\n    <arg nr=\"3\"/>\n  </function>\n</def>\n", 4096) = 2368
    brk(0x1802000)                          = 0x1802000
    brk(0x1823000)                          = 0x1823000
    brk(0x1844000)                          = 0x1844000
    brk(0x1865000)                          = 0x1865000
    close(3)                                = 0
    munmap(0x7f5af524a000, 4096)            = 0
    lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
    lstat("/home/buildslave", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/cppcheck", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/cppcheck/cfg", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
    lstat("/home/buildslave/source/cppcheck/cfg/std.cfg", {st_mode=S_IFREG|0644, st_size=121152, ...}) = 0
    brk(0x1886000)                          = 0x1886000
    brk(0x18a7000)                          = 0x18a7000
    write(2, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<results>", 48<?xml version="1.0" encoding="UTF-8"?>
    <results>) = 48
    write(2, "\n", 1
    )                       = 1
    open("./vcl/unx/generic/gdi/gcach_xpeer.cxx", O_RDONLY) = 3
    fstat(1, {st_mode=S_IFREG|0664, st_size=32049, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5af524a000
    write(1, "Checking vcl/unx/generic/gdi/gcach_xpeer.cxx...\n", 48Checking vcl/unx/generic/gdi/gcach_xpeer.cxx...
    ) = 48
    read(3, "/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */\n/*\n * This file is part of the LibreOffice project.\n *\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n *\n * This file incorporates work covered by the following license notice:\n *\n *   Licensed to the Apache Software Foundation (ASF) under one or more\n *   contributor license agreements. See the NOTICE file distributed\n *   with this work for additional information regarding copyright\n *   ownership. The ASF licenses this file to you under the Apache\n *   License, Version 2.0 (the \"License\"); you may not use this file\n *   except in compliance with the License. You may obtain a copy of\n *   the License at http://www.apache.org/licenses/LICENSE-2.0 .\n */\n\n#include \"rtl/ustring.hxx\"\n#include \"osl/module.h\"\n#include \"osl/thread.h\"\n\n#include \"unx/saldisp.hxx\"\n#include \"unx/saldata.hxx\"\n#include \"unx/salgdi.h\"\n\n#include \"gcach_xpeer.hxx\"\n#include \"xrender_peer.hxx\"\n\nX11GlyphPeer::X11GlyphPeer()\n{\n}\n\nX11GlyphPeer::~X11GlyphPeer()\n{\n    if( !ImplGetSVData() )\n        return;\n\n    //Why do this here, move into dtor/shutdown of display?\n    SalDisplay* pSalDisp = vcl_sal::getSalDisplay(GetGenericData());\n    Display* const pX11Disp = pSalDisp->GetDisplay();\n    int nMaxScreens = pSalDisp->GetXScreenCount();\n    XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();\n\n    for( int i = 0; i < nMaxScreens; i++ )\n    {\n        SalDisplay::RenderEntryMap& rMap = pSalDisp->GetRenderEntries( SalX11Screen (i) );\n        for( SalDisplay::RenderEntryMap::iterator it = rMap.begin(); it != rMap.end(); ++it )\n        {\n            if( it->second.m_aPixmap )\n                ::XFreePixmap( pX11Disp, it->second.m_aPixmap );\n            if( it->second.m_aPicture )\n                rRenderPeer.FreePicture( it->second.m_aPicture );\n        }\n        rMap.clear();\n    }\n}\n\nX11GlyphCache::X11GlyphCache( X11GlyphPeer& rPeer )\n:   GlyphCache( rPeer )\n{\n}\n\nnamespace\n{\n    struct GlyphCacheHolder\n    {\n    private:\n        X11GlyphPeer* m_pX11GlyphPeer;\n        X11GlyphCache* m_pX11GlyphCache;\n    public:\n        GlyphCacheHolder()\n        {\n            m_pX11GlyphPeer = new X11GlyphPeer();\n            m_pX11GlyphCache = new X11GlyphCache( *m_pX11GlyphPeer );\n        }\n        void release()\n        {\n            delete m_pX11GlyphCache;\n            delete m_pX11GlyphPeer;\n            m_pX11GlyphCache = NULL;\n            m_pX11GlyphPeer = NULL;\n        }\n        X11GlyphCache& getGlyphCache()\n        {\n            return *m_pX11GlyphCache;\n        }\n        ~GlyphCacheHolder()\n        {\n            release();\n        }\n    };\n\n    struct theGlyphCacheHolder :\n        public rtl::Static<GlyphCacheHolder, theGlyphCacheHolder>\n    {};\n}\n\nX11GlyphCache& X11GlyphCache::GetInstance()\n{\n    return theGlyphCacheHolder::get().getGlyphCache();\n}\n\nvoid X11GlyphCache::KillInstance()\n{\n    return theGlyphCacheHolder::get().release();\n}\n\nvoid X11SalGraphics::releaseGlyphPeer()\n{\n    X11GlyphCache::KillInstance();\n}\n\n/* vim:set shiftwidth=4 softtabstop=4 expandtab: */\n", 8191) = 3207
    read(3, "", 8191)                       = 0
    open("./vcl/unx/generic/gdi/rtl/ustring.hxx", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("rtl/ustring.hxx", O_RDONLY)       = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/osl/module.h", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("osl/module.h", O_RDONLY)          = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/osl/thread.h", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("osl/thread.h", O_RDONLY)          = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/unx/saldisp.hxx", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("unx/saldisp.hxx", O_RDONLY)       = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/unx/saldata.hxx", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("unx/saldata.hxx", O_RDONLY)       = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/unx/salgdi.h", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("unx/salgdi.h", O_RDONLY)          = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/gcach_xpeer.hxx", O_RDONLY) = 4
    read(4, "/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */\n/*\n * This file is part of the LibreOffice project.\n *\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n *\n * This file incorporates work covered by the following license notice:\n *\n *   Licensed to the Apache Software Foundation (ASF) under one or more\n *   contributor license agreements. See the NOTICE file distributed\n *   with this work for additional information regarding copyright\n *   ownership. The ASF licenses this file to you under the Apache\n *   License, Version 2.0 (the \"License\"); you may not use this file\n *   except in compliance with the License. You may obtain a copy of\n *   the License at http://www.apache.org/licenses/LICENSE-2.0 .\n */\n\n#ifndef INCLUDED_VCL_UNX_GENERIC_GDI_GCACH_XPEER_HXX\n#define INCLUDED_VCL_UNX_GENERIC_GDI_GCACH_XPEER_HXX\n\n#include \"generic/glyphcache.hxx\"\n\nclass X11GlyphPeer : public GlyphCachePeer\n{\npublic:\n    X11GlyphPeer();\n    virtual ~X11GlyphPeer();\n};\n\nclass X11GlyphCache : public GlyphCache\n{\npublic:\n    X11GlyphCache( X11GlyphPeer& );\n    X11GlyphPeer& GetPeer()\n    {\n        return static_cast<X11GlyphPeer&>(mrPeer);\n    }\n    static X11GlyphCache& GetInstance();\n    static void  KillInstance();\n};\n\n#endif // INCLUDED_VCL_UNX_GENERIC_GDI_GCACH_XPEER_HXX\n\n/* vim:set shiftwidth=4 softtabstop=4 expandtab: */\n", 8191) = 1509
    read(4, "", 8191)                       = 0
    close(4)                                = 0
    open("vcl/unx/generic/gdi/generic/glyphcache.hxx", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("generic/glyphcache.hxx", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("./vcl/unx/generic/gdi/xrender_peer.hxx", O_RDONLY) = 4
    read(4, "/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */\n/*\n * This file is part of the LibreOffice project.\n *\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n *\n * This file incorporates work covered by the following license notice:\n *\n *   Licensed to the Apache Software Foundation (ASF) under one or more\n *   contributor license agreements. See the NOTICE file distributed\n *   with this work for additional information regarding copyright\n *   ownership. The ASF licenses this file to you under the Apache\n *   License, Version 2.0 (the \"License\"); you may not use this file\n *   except in compliance with the License. You may obtain a copy of\n *   the License at http://www.apache.org/licenses/LICENSE-2.0 .\n */\n\n#ifndef INCLUDED_VCL_UNX_GENERIC_GDI_XRENDER_PEER_HXX\n#define INCLUDED_VCL_UNX_GENERIC_GDI_XRENDER_PEER_HXX\n\n#include <prex.h>\nstruct _XTrap; // on some older systems this is not declared within Xrender.h\n#include <X11/extensions/Xrender.h>\n#include <postx.h>\n\n#include <vcl/salgtype.hxx>\n#include <osl/module.h>\n\ntypedef Glyph XRenderGlyph;\n\nclass XRenderPeer\n{\npublic:\n    static XRenderPeer& GetInstance();\n\nprivate:\n                        XRenderPeer();\n    void                InitRenderLib();\n\n    Display*            mpDisplay;\n    XRenderPictFormat*  mpStandardFormatA8;\n\npublic:\n    XRenderPictFormat* GetStandardFormatA8() const;\n    XRenderPictFormat* FindStandardFormat(int nFormat) const;\n\n    // the methods below are thin wrappers for the XRENDER API\n    XRenderPictFormat* FindVisualFormat( Visual* ) const;\n    XRenderPictFormat* FindPictureFormat( unsigned long nMask,\n        const XRenderPictFormat& ) const;\n    Picture     CreatePicture( Drawable, const XRenderPictFormat*,\n                    unsigned long nDrawable, const XRenderPictureAttributes* ) const;\n    void        ChangePicture( Picture, unsigned long nValueMask,\n                    const XRenderPictureAttributes* ) const;\n    void        SetPictureClipRegion( Picture, Region ) const;\n    void        CompositePicture( int nOp, Picture aSrc, Picture aMask, Picture aDst,\n                    int nXSrc, int nYSrc, int nXMask, int nYMask,\n                    int nXDst, int nYDst, unsigned nWidth, unsigned nHeight ) const;\n    void        FreePicture( Picture ) const;\n\n    GlyphSet    CreateGlyphSet() const;\n    void        FreeGlyphSet( GlyphSet ) const;\n    void        AddGlyph( GlyphSet, XRenderGlyph nXRGlyph, const XGlyphInfo&,\n                    const char* pBuffer, int nBufSize ) const;\n    void        FreeGlyph( GlyphSet, XRenderGlyph nXRGlyphId ) const;\n    void        CompositeString32( Picture aSrc, Picture aDst, GlyphSet,\n                    int nDstX, int nDstY, const unsigned* pText, int nTextLen ) const;\n    void        FillRectangle( int nOp, Picture aDst, const XRenderColor*,\n                               int nX, int nY, unsigned nW, unsigned nH ) const;\n    void        CompositeTrapezoids( int nOp, Picture aSrc, Picture aDst,\n                    const XRenderPictFormat*, int nXSrc, int nYSrc,\n                    const XTrapezoid*, int nCount ) const;\n    void        AddTraps( Picture aDst, int nXOfs, int nYOfs,\n                    const _XTrap*, int nCount ) const;\n};\n\ninline XRenderPictFormat* XRenderPeer::GetStandardFormatA8() const\n{\n    return mpStandardFormatA8;\n}\n\ninline XRenderPictFormat* XRenderPeer::FindStandardFormat(int nFormat) const\n{\n    return XRenderFindStandardFormat(mpDisplay, nFormat);\n}\n\ninline XRenderPictFormat* XRenderPeer::FindVisualFormat( Visual* pVisual ) const\n{\n    return XRenderFindVisualFormat ( mpDisplay, pVisual );\n}\n\ninline XRenderPictFormat* XRenderPeer::FindPictureFormat( unsigned long nFormatMask,\n    const XRenderPictFormat& rFormatAttr ) const\n{\n    return XRenderFindFormat( mpDisplay, nFormatMask, &rFormatAttr, 0 );\n}\n\ninline Picture XRenderPeer::CreatePicture( Drawable aDrawable,\n    const XRenderPictFormat* pVisFormat, unsigned long nValueMask,\n    const XRenderPictureAttributes* pRenderAttr ) const\n{\n    return XRenderCreatePicture( mpDisplay, aDrawable, pVisFormat,\n                                 nValueMask, pRenderAttr );\n}\n\ninline void XRenderPeer::ChangePicture( Picture aPicture,\n    unsigned long nValueMask, const XRenderPictureAttributes* pRenderAttr ) const\n{\n    XRenderChangePicture( mpDisplay, aPicture, nValueMask, pRenderAttr );\n}\n\ninline void XRenderPeer::SetPictureClipRegion( Picture aPicture,\n    Region aXlibRegion ) const\n{\n    XRenderSetPictureClipRegion( mpDisplay, aPicture, aXlibRegion );\n}\n\ninline void XRenderPeer::CompositePicture( int nXRenderOp,\n    Picture aSrcPic, Picture aMaskPic, Picture aDstPic,\n    int nSrcX, int nSrcY, int nMaskX, int nMaskY, int nDstX, int nDstY,\n    unsigned nWidth, unsigned nHeight ) const\n{\n    XRenderComposite( mpDisplay, nXRenderOp, aSrcPic, aMaskPic, aDstPic,\n                      nSrcX, nSrcY, nMaskX, nMaskY, nDstX, nDstY, nWidth, nHeight );\n}\n\ninline void XRenderPeer::FreePicture( Picture aPicture ) const\n{\n    XRenderFreePicture( mpDisplay, aPicture );\n}\n\ninline GlyphSet XRenderPeer::CreateGlyphSet() const\n{\n    return XRenderCreateGlyphSet( mpDisplay, mpStandardFormatA8 );\n}\n\ninline void XRenderPeer::FreeGlyphSet( GlyphSet aGS ) const\n{\n    XRenderFreeGlyphSet( mpDisplay, aGS );\n}\n\ninline void XRenderPeer::AddGlyph( GlyphSet aGS, XRenderGlyph nXRGlyph,\n    const XGlyphInfo& rGI, const char* pBuffer, int nBufSize ) const\n{\n    XRenderAddGlyphs( mpDisplay, aGS, &nXRGlyph, &rGI, 1,\n                      const_cast<char*>(pBuffer), nBufSize );\n}\n\ninline void XRenderPeer::FreeGlyph( GlyphSet aGS, XRenderGlyph nXRGlyph ) const\n{\n    (void)aGS; (void)nXRGlyph;\n\n    // XRenderFreeGlyphs not implemented yet for version<=0.2\n    // #108209# disabled because of crash potential,\n    // the glyph leak is not too bad because they will\n    // be cleaned up when the glyphset is released\n}\n\ninline void XRenderPeer::CompositeString32( Picture aSrc, Picture aDst,\n    GlyphSet aGlyphSet, int nDstX, int nDstY,\n    const unsigned* pText, int nTextLen ) const\n{\n    XRenderCompositeString32( mpDisplay, PictOpOver, aSrc, aDst, NULL,\n                              aGlyphSet, 0, 0, nDstX, nDstY, pText, nTextLen );\n}\n\ninline void XRenderPeer::FillRectangle( int a, Picture b, const XRenderColor* c,\n    int d, int e, unsigned int f, unsigned int g) const\n{\n    XRenderFillRectangle( mpDisplay, a, b, c, d, e, f, g );\n}\n\ninline void XRenderPeer::CompositeTrapezoids( int nOp,\n    Picture aSrc, Picture aDst, const XRenderPictFormat* pXRPF,\n    int nXSrc, int nYSrc, const XTrapezoid* pXT, int nCount ) const\n{\n    XRenderCompositeTrapezoids( mpDisplay, nOp, aSrc, aDst, pXRPF,\n        nXSrc, nYSrc, pXT, nCount );\n}\n\ninline void XRenderPeer::AddTraps( Picture aDst, int nXOfs, int nYOfs,\n    const _XTrap* pTraps, int nCount ) const\n{\n    XRenderAddTraps( mpDisplay, aDst, nXOfs, nYOfs, pTraps, nCount );\n}\n\ninline XRenderColor GetXRenderColor( const SalColor& rSalColor, double fTransparency = 0.0 )\n{\n    XRenderColor aRetVal;\n    // convert the SalColor\n    aRetVal.red   = SALCOLOR_RED(   rSalColor ); aRetVal.red   |= (aRetVal.red   << 8);\n    aRetVal.green = SALCOLOR_GREEN( rSalColor ); aRetVal.green |= (aRetVal.green << 8);\n    aRetVal.blue  = SALCOLOR_BLUE(  rSalColor ); aRetVal.blue  |= (aRetVal.blue  << 8);\n\n    // handle transparency\n    aRetVal.alpha = 0xFFFF; // default to opaque\n    if( fTransparency != 0 )\n    {\n        const double fAlpha = 1.0 - fTransparency;\n        aRetVal.alpha = static_cast<sal_uInt16>(fAlpha * 0xFFFF + 0.5);\n        // xrender wants pre-multiplied colors\n        aRetVal.red   = static_cast<sal_uInt16>(fAlpha * aRetVal.red + 0.5);\n        aRetVal.green = static_cast<sal_uInt16>(fAlpha * aRetVal.green + 0.5);\n        aRetVal.blue  = static_cast<sal_uInt16>(fAlpha * aRetVal.blue + 0.5);\n    }\n\n    return aRetVal;\n}\n\n#endif // INCLUDED_VCL_UNX_GENERIC_GDI_XRENDER_PEER_HXX\n\n/* vim:set shiftwidth=4 softtabstop=4 expandtab: */\n", 8191) = 8125
    read(4, "", 8191)                       = 0
    close(4)                                = 0
    open("prex.h", O_RDONLY)                = -1 ENOENT (No such file or directory)
    open("prex.h", O_RDONLY)                = -1 ENOENT (No such file or directory)
    open("X11/extensions/Xrender.h", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("X11/extensions/Xrender.h", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("postx.h", O_RDONLY)               = -1 ENOENT (No such file or directory)
    open("postx.h", O_RDONLY)               = -1 ENOENT (No such file or directory)
    open("vcl/salgtype.hxx", O_RDONLY)      = -1 ENOENT (No such file or directory)
    open("vcl/salgtype.hxx", O_RDONLY)      = -1 ENOENT (No such file or directory)
    open("osl/module.h", O_RDONLY)          = -1 ENOENT (No such file or directory)
    open("osl/module.h", O_RDONLY)          = -1 ENOENT (No such file or directory)
    write(2, "/usr/include/c++/4.8.2/debug/list:", 34/usr/include/c++/4.8.2/debug/list:) = 34
    write(2, "325:", 4325:)                     = 4
    write(2, "error: ", 7error: )                  = 7
    write(2, "attempt ", 8attempt )                 = 8
    write(2, "to ", 3to )                      = 3
    write(2, "access ", 7access )                  = 7
    write(2, "an ", 3an )                      = 3
    write(2, "element ", 8element )                 = 8
    write(2, "\n", 1
    )                       = 1
    write(2, "    ", 4    )                     = 4
    write(2, "in ", 3in )                      = 3
    write(2, "an ", 3an )                      = 3
    write(2, "empty ", 6empty )                   = 6
    write(2, "container", 9container)                = 9
    write(2, ".\n", 2.
    )                      = 2
    write(2, "\nObjects involved in the operation:\n", 36
    Objects involved in the operation:
    ) = 36
    write(2, "sequence ", 9sequence )                = 9
    write(2, "\"this\" ", 7"this" )                = 7
    write(2, "@ 0x0x17dde68 {\n", 16@ 0x0x17dde68 {
    )       = 16
    write(2, "  type = ", 9  type = )                = 9
    write(2, "NSt7__debug4listIN9ValueFlow5ValueESaIS2_EEE", 44NSt7__debug4listIN9ValueFlow5ValueESaIS2_EEE) = 44
    write(2, ";\n", 2;
    )                      = 2
    write(2, "}\n", 2}
    )                      = 2
    rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
    gettid()                                = 21050
    tgkill(21050, 21050, SIGABRT)           = 0
    --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=21050, si_uid=1001} ---
    +++ killed by SIGABRT +++
    
     
  • Alexander Mai

    Alexander Mai - 2015-02-03

    Please file bug reports on the according issue tracker at http://trac.cppcheck.net
    Looking at the debug information it looks similar to http://trac.cppcheck.net/ticket/6410 .
    For further analysis it would help to reduce the source code being checked to a minimum.

     
    • Maarten Hoes

      Maarten Hoes - 2015-02-04

      Hi. I currently cannot submit a bug report in the issue tracker, as I cannot login. Login in with OpenID is currently broken, and I cannot seem to find danmar on irc to create an account for me. So as a last resort, I decided to submit the bug report here (even though this is not the 'right place' to submit bug reports.

      I can reproduce the abort with analyzing the attachement to this post with the following command:
      'cppcheck --enable=all --max-configs=25 ./gcach_xpeer.cxx'

      However, I can only reproduce it on a (lib)gcc 4.8.2 system, as it produces this error in addition to the abort (that i do not get on libgcc 4.9.2):

      Checking gcach_xpeer.cxx...
      /usr/include/c++/4.8.2/debug/list:325:error: attempt to access an element
      in an empty container.

      Objects involved in the operation:
      sequence "this" @ 0x0x15d1a98 {
      type = NSt7__debug4listIN9ValueFlow5ValueESaIS2_EEE;
      }
      Aborted

       

      Last edit: Maarten Hoes 2015-02-04
  • Maarten Hoes

    Maarten Hoes - 2015-02-04

    I submitted a bug report on this in the bug tracker: http://trac.cppcheck.net/ticket/6497

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.