Here is some that I found simple to make:

Author: mingodad <mingo...@gmail.com>  2013-01-31 01:17:50
Committer: mingodad <mingo...@gmail.com>  2013-01-31 01:17:50
Parent: 1b1e7ee1fd2f269872128dc5e8b830bd55dfa80c (Fix cross-compilation
out-of-tree build)
Branch: vio_patch
Follows: release_0_9_25
Precedes:

    Alerts found using Coverity Scan

----------------------------------- libtcc.c
-----------------------------------
index b0a9b1a..69d9e0d 100644
@@ -479,8 +479,7 @@ ST_FUNC void put_extern_sym2(Sym *sym, Section *section,
             case TOK_strlen:
             case TOK_strcpy:
             case TOK_alloca:
-                strcpy(buf, "__bound_");
-                strcat(buf, name);
+                snprintf(buf, sizeof(buf), "__bound_%s", name);
                 name = buf;
                 break;
             }

----------------------------------- tccelf.c
-----------------------------------
index a4dee19..479b2fa 100644
@@ -114,7 +114,7 @@ ST_FUNC int put_elf_sym(Section *s, uplong value,
unsigned long size,
         if (ELFW(ST_BIND)(info) != STB_LOCAL) {
             /* add another hashing entry */
             nbuckets = base[0];
-            h = elf_hash(name) % nbuckets;
+            h = name ? elf_hash(name) % nbuckets : 0;
             *ptr = base[2 + h];
             base[2 + h] = sym_index;
             base[1]++;
@@ -3052,7 +3052,7 @@ static int ld_add_file_list(TCCState *s1, const char
*cmd, int as_needed)
                 ret = -1;
                 goto lib_parse_error;
             }
-            strcpy(libname, &filename[1]);
+            snprintf(libname, sizeof(libname), "%s", &filename[1]);
             libname_to_filename(s1, libname, filename);
         } else if (t != LD_TOK_NAME) {
             tcc_error_noabort("filename expected");

----------------------------------- tccgen.c
-----------------------------------
index 4300403..e06a932 100644
@@ -361,6 +361,7 @@ void vpush64(int ty, unsigned long long v)
     CValue cval;
     CType ctype;
     ctype.t = ty;
+    ctype.ref = 0;
     cval.ull = v;
     vsetc(&ctype, VT_CONST, &cval);
 }
@@ -1734,6 +1735,7 @@ ST_FUNC void gen_op(int op)
         }
         vswap();
         type1.t = t;
+        type1.ref = 0;
         gen_cast(&type1);
         vswap();
         /* special case for shifts and long long: we keep the shift as
@@ -2717,6 +2719,7 @@ static void struct_decl(CType *type, int u)
         v = anon_sym++;
     }
     type1.t = a;
+    type1.ref = 0;
     /* we put an undefined size for struct/union */
     s = sym_push(v | SYM_STRUCT, &type1, 0, -1);
     s->r = 0; /* default alignment is zero as gcc */
@@ -3396,6 +3399,7 @@ static void gfunc_param_typed(Sym *func, Sym *arg)
         /* default casting : only need to convert float to double */
         if ((vtop->type.t & VT_BTYPE) == VT_FLOAT) {
             type.t = VT_DOUBLE;
+            type.ref = 0;
             gen_cast(&type);
         }
     } else if (arg == NULL) {
@@ -3592,6 +3596,7 @@ ST_FUNC void unary(void)
         if ((vtop->r & (VT_VALMASK | VT_LVAL | VT_SYM)) == VT_CONST) {
             CType boolean;
             boolean.t = VT_BOOL;
+            boolean.ref = 0;
             gen_cast(&boolean);
             vtop->c.i = !vtop->c.i;
         } else if ((vtop->r & VT_VALMASK) == VT_CMP)
@@ -4101,6 +4106,7 @@ static void expr_cond(void)
             CType boolean;
             int c;
             boolean.t = VT_BOOL;
+            boolean.ref = 0;
             vdup();
             gen_cast(&boolean);
             c = vtop->c.i;
@@ -5574,7 +5580,7 @@ ST_FUNC void gen_inline_functions(void)
                 str = fn->token_str;
                 fn->sym = NULL;
                 if (file)
-                    strcpy(file->filename, fn->filename);
+                    snprintf(file->filename, sizeof(file->filename), "%s",
fn->filename);
                 sym->r = VT_SYM | VT_CONST;
                 sym->type.t &= ~VT_INLINE;




On Thu, Jan 31, 2013 at 1:13 AM, Domingo Alvarez Duarte
<mingo...@gmail.com>wrote:

> Also on this function:
>
> CID 968150 (#1 of 1): Unchecked return value (CHECKED_RETURN)6.
> check_return: Calling function "parse_btype(CType *, AttributeDef *)"
> without checking return value (as is done elsewhere 7 out of 8 times).
>
>
> /* enum/struct/union declaration. u is either VT_ENUM or VT_STRUCT */
> static void struct_decl(CType *type, int u)
> {
> ...
>             bit_pos = 0;
>             offset = 0;
>             while (tok != '}') {
>                 parse_btype(&btype, &ad); //// no check made here
> ?????????????????
>                 while (1) {
>                     bit_size = -1;
>                     v = 0;
>                     type1 = btype;
>
>
>
> On Thu, Jan 31, 2013 at 1:07 AM, Domingo Alvarez Duarte <
> mingo...@gmail.com> wrote:
>
>> Also here :
>>
>> static void asm_expr_logic(TCCState *s1, ExprValue *pe)
>> {
>>     int op;
>>     ExprValue e2;
>>
>>     asm_expr_prod(s1, pe);
>>
>>     for(;;) {
>>         op = tok;
>>         if (op != '&' && op != '|' && op != '^')
>>             break;
>>         next();
>>         asm_expr_prod(s1, &e2);
>>
>>         if (pe->sym || e2.sym)
>>             tcc_error("invalid operation with label");
>>         switch(op) {
>>         case '&':
>>             pe->v &= e2.v;
>>             break;
>>         case '|':
>>             pe->v |= e2.v;
>>             break;
>>         default:
>>         case '^':  ///////////////////////////////////////what this case
>> after default mean ????????
>>             pe->v ^= e2.v;
>>             break;
>>         }
>>     }
>> }
>>
>>
>>
>> On Thu, Jan 31, 2013 at 1:06 AM, Domingo Alvarez Duarte <
>> mingo...@gmail.com> wrote:
>>
>>> Hello !
>>> I'm looking again on the reports done with Coverity Scan and found
>>> several things one of it is this:
>>>
>>> static void asm_expr_prod(TCCState *s1, ExprValue *pe)
>>> {
>>>     int op;
>>>     ExprValue e2;
>>>
>>>     asm_expr_unary(s1, pe);
>>>     for(;;) {
>>>         op = tok;
>>>         if (op != '*' && op != '/' && op != '%' &&
>>>             op != TOK_SHL && op != TOK_SAR)
>>>             break;
>>>         next();
>>>         asm_expr_unary(s1, &e2);
>>>         if (pe->sym || e2.sym)
>>>             tcc_error("invalid operation with label");
>>>         switch(op) {
>>>         case '*':
>>>             pe->v *= e2.v;
>>>             break;
>>>         case '/':
>>>             if (e2.v == 0) {
>>>             div_error:
>>>                 tcc_error("division by zero");
>>>             }
>>>             pe->v /= e2.v;
>>>             break;
>>>         case '%':
>>>             if (e2.v == 0)
>>>                 goto div_error;
>>>             pe->v %= e2.v;
>>>             break;
>>>         case TOK_SHL:
>>>             pe->v <<= e2.v;
>>>             break;
>>>         default:
>>>         case TOK_SAR:    ////////////////////////////////////////this
>>> case after default what does it mean ??????????????
>>>             pe->v >>= e2.v;
>>>             break;
>>>         }
>>>     }
>>> }
>>>
>>>
>>>
>>> On Wed, Jan 30, 2013 at 11:08 PM, Ivo van Poorten <ivo...@gmail.com>wrote:
>>>
>>>> Error:
>>>>
>>>> $ ./configure --cc=tcc
>>>> Binary  directory   /usr/local/bin
>>>> TinyCC directory    /usr/local/lib/tcc
>>>> Library directory   /usr/local/lib
>>>> Include directory   /usr/local/include
>>>> Manual directory    /usr/local/share/man
>>>> Info directory      /usr/local/share/info
>>>> Doc directory       /usr/local/share/doc/tcc
>>>> Target root prefix
>>>> Source path      /home/ivo/git/tinycc
>>>> C compiler       tcc
>>>> Target OS        Linux
>>>> CPU              x86
>>>> Big Endian       no
>>>> gprof enabled    no
>>>> cross compilers  no
>>>> use libgcc       no
>>>> Creating config.mak and config.h
>>>> $ make
>>>> [..snip..]
>>>> gcc -c lib/bcheck.c -o bcheck.o -I. -I/home/ivo/git/tinycc -Wall -g -O2
>>>> -mpreferred-stack-boundary=2 -m386 -malign-functions=0 -m32 cc1: error:
>>>> unrecognized command line option "-m386"
>>>>
>>>>
>>>> ----8<----8<----8<----8<----8<----8<----8<----8<----
>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index d257464..0333ebe 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -232,7 +232,7 @@ libtcc1.a : FORCE
>>>>  lib/%/libtcc1.a : FORCE $(PROGS_CROSS)
>>>>         @$(MAKE) -C lib cross TARGET=$*
>>>>  bcheck.o : lib/bcheck.c
>>>> -       gcc -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
>>>> +       $(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
>>>>  FORCE:
>>>>
>>>>  # install
>>>>
>>>> _______________________________________________
>>>> Tinycc-devel mailing list
>>>> Tinycc-devel@nongnu.org
>>>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>>>>
>>>
>>>
>>
>
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to