crypto/bn/bn_mul.c:458: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - [0, max(4294967295, `*t`)]):unsigned64 by call to `bn_sub_words`.
Showing all 15 steps of the trace


crypto/bn/bn_mul.c:430:3: Call
428.   	if (n == 8)
429.   		{
430.   		bn_mul_comba8(&(t[0]),&(r[0]),&(r[n]));
         ^
431.   		bn_mul_comba8(r,&(a[n]),&(b[n]));
432.   		}

crypto/bn/bn_asm.c:489:1: Parameter `*b`
  487.   #endif
  488.   
  489. > void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  490.   	{
  491.   #ifdef BN_LLONG

crypto/bn/bn_asm.c:593:2: Assignment
  591.   	r[13]=c2;
  592.   	c2=0;
  593.   	mul_add_c(a[7],b[7],c3,c1,c2);
          ^
  594.   	r[14]=c3;
  595.   	r[15]=c1;

crypto/bn/bn_asm.c:593:2: Assignment
  591.   	r[13]=c2;
  592.   	c2=0;
  593.   	mul_add_c(a[7],b[7],c3,c1,c2);
          ^
  594.   	r[14]=c3;
  595.   	r[15]=c1;

crypto/bn/bn_asm.c:593:2: Assignment
  591.   	r[13]=c2;
  592.   	c2=0;
  593.   	mul_add_c(a[7],b[7],c3,c1,c2);
          ^
  594.   	r[14]=c3;
  595.   	r[15]=c1;

crypto/bn/bn_asm.c:593:2: Assignment
  591.   	r[13]=c2;
  592.   	c2=0;
  593.   	mul_add_c(a[7],b[7],c3,c1,c2);
          ^
  594.   	r[14]=c3;
  595.   	r[15]=c1;

crypto/bn/bn_asm.c:595:2: Assignment
  593.   	mul_add_c(a[7],b[7],c3,c1,c2);
  594.   	r[14]=c3;
  595.   	r[15]=c1;
          ^
  596.   	}
  597.   

crypto/bn/bn_mul.c:458:13: Call
456.   
457.   	if (neg)
458.   		neg=(int)(bn_sub_words(&(t[n2]),lp,&(t[0]),n));
                   ^
459.   	else
460.   		{

crypto/bn/bn_asm.c:389:1: <LHS trace>
387.   #endif
388.   
389. > BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
390.           {
391.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:389:1: Parameter `*a`
  387.   #endif
  388.   
  389. > BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  390.           {
  391.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:399:3: Assignment
  397.   	for (;;)
  398.   		{
  399.   		t1=a[0]; t2=b[0];
           ^
  400.   		r[0]=(t1-t2-c)&BN_MASK2;
  401.   		if (t1 != t2) c=(t1 < t2);

crypto/bn/bn_asm.c:389:1: <RHS trace>
387.   #endif
388.   
389. > BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
390.           {
391.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:389:1: Parameter `*b`
  387.   #endif
  388.   
  389. > BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  390.           {
  391.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:399:12: Assignment
  397.   	for (;;)
  398.   		{
  399.   		t1=a[0]; t2=b[0];
                    ^
  400.   		r[0]=(t1-t2-c)&BN_MASK2;
  401.   		if (t1 != t2) c=(t1 < t2);

crypto/bn/bn_asm.c:400:3: Binary operation: ([0, +oo] - [0, max(4294967295, *t)]):unsigned64 by call to `bn_sub_words` 
  398.   		{
  399.   		t1=a[0]; t2=b[0];
  400.   		r[0]=(t1-t2-c)&BN_MASK2;
           ^
  401.   		if (t1 != t2) c=(t1 < t2);
  402.   		if (--n <= 0) break;

BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
        {
	BN_ULONG t1,t2;
	int c=0;
	bn_check_num(n);
	if (n <= 0) return((BN_ULONG)0);
	for (;;)
		{
		t1=a[0]; t2=b[0];
		r[0]=(t1-t2-c)&BN_MASK2;
		if (t1 != t2) c=(t1 < t2);
		if (--n <= 0) break;
		t1=a[1]; t2=b[1];
		r[1]=(t1-t2-c)&BN_MASK2;
		if (t1 != t2) c=(t1 < t2);
		if (--n <= 0) break;
		t1=a[2]; t2=b[2];
		r[2]=(t1-t2-c)&BN_MASK2;
		if (t1 != t2) c=(t1 < t2);
		if (--n <= 0) break;
		t1=a[3]; t2=b[3];
		r[3]=(t1-t2-c)&BN_MASK2;
		if (t1 != t2) c=(t1 < t2);
		if (--n <= 0) break;
		a+=4;
		b+=4;
		r+=4;
		}
	return(c);
	}
['void bn_mul_high(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, BN_ULONG *l, int n2,\n\t     BN_ULONG *t)\n\t{\n\tint i,n;\n\tint c1,c2;\n\tint neg,oneg,zero;\n\tBN_ULONG ll,lc,*lp,*mp;\n#ifdef BN_COUNT\nprintf(" bn_mul_high %d * %d\\n",n2,n2);\n#endif\n\tn=n2/2;\n\tneg=zero=0;\n\tc1=bn_cmp_words(&(a[0]),&(a[n]),n);\n\tc2=bn_cmp_words(&(b[n]),&(b[0]),n);\n\tswitch (c1*3+c2)\n\t\t{\n\tcase -4:\n\t\tbn_sub_words(&(r[0]),&(a[n]),&(a[0]),n);\n\t\tbn_sub_words(&(r[n]),&(b[0]),&(b[n]),n);\n\t\tbreak;\n\tcase -3:\n\t\tzero=1;\n\t\tbreak;\n\tcase -2:\n\t\tbn_sub_words(&(r[0]),&(a[n]),&(a[0]),n);\n\t\tbn_sub_words(&(r[n]),&(b[n]),&(b[0]),n);\n\t\tneg=1;\n\t\tbreak;\n\tcase -1:\n\tcase 0:\n\tcase 1:\n\t\tzero=1;\n\t\tbreak;\n\tcase 2:\n\t\tbn_sub_words(&(r[0]),&(a[0]),&(a[n]),n);\n\t\tbn_sub_words(&(r[n]),&(b[0]),&(b[n]),n);\n\t\tneg=1;\n\t\tbreak;\n\tcase 3:\n\t\tzero=1;\n\t\tbreak;\n\tcase 4:\n\t\tbn_sub_words(&(r[0]),&(a[0]),&(a[n]),n);\n\t\tbn_sub_words(&(r[n]),&(b[n]),&(b[0]),n);\n\t\tbreak;\n\t\t}\n\toneg=neg;\n#ifdef BN_MUL_COMBA\n\tif (n == 8)\n\t\t{\n\t\tbn_mul_comba8(&(t[0]),&(r[0]),&(r[n]));\n\t\tbn_mul_comba8(r,&(a[n]),&(b[n]));\n\t\t}\n\telse\n#endif\n\t\t{\n\t\tbn_mul_recursive(&(t[0]),&(r[0]),&(r[n]),n,&(t[n2]));\n\t\tbn_mul_recursive(r,&(a[n]),&(b[n]),n,&(t[n2]));\n\t\t}\n\tif (l != NULL)\n\t\t{\n\t\tlp= &(t[n2+n]);\n\t\tc1=(int)(bn_add_words(lp,&(r[0]),&(l[0]),n));\n\t\t}\n\telse\n\t\t{\n\t\tc1=0;\n\t\tlp= &(r[0]);\n\t\t}\n\tif (neg)\n\t\tneg=(int)(bn_sub_words(&(t[n2]),lp,&(t[0]),n));\n\telse\n\t\t{\n\t\tbn_add_words(&(t[n2]),lp,&(t[0]),n);\n\t\tneg=0;\n\t\t}\n\tif (l != NULL)\n\t\t{\n\t\tbn_sub_words(&(t[n2+n]),&(l[n]),&(t[n2]),n);\n\t\t}\n\telse\n\t\t{\n\t\tlp= &(t[n2+n]);\n\t\tmp= &(t[n2]);\n\t\tfor (i=0; i<n; i++)\n\t\t\tlp[i]=((~mp[i])+1)&BN_MASK2;\n\t\t}\n\tif (l != NULL)\n\t\t{\n\t\tlp= &(t[n2]);\n\t\tc1= (int)(bn_add_words(lp,&(t[n2+n]),&(l[0]),n));\n\t\t}\n\telse\n\t\t{\n\t\tlp= &(t[n2+n]);\n\t\tc1=0;\n\t\t}\n\tc1+=(int)(bn_add_words(&(t[n2]),lp,  &(r[0]),n));\n\tif (oneg)\n\t\tc1-=(int)(bn_sub_words(&(t[n2]),&(t[n2]),&(t[0]),n));\n\telse\n\t\tc1+=(int)(bn_add_words(&(t[n2]),&(t[n2]),&(t[0]),n));\n\tc2 =(int)(bn_add_words(&(r[0]),&(r[0]),&(t[n2+n]),n));\n\tc2+=(int)(bn_add_words(&(r[0]),&(r[0]),&(r[n]),n));\n\tif (oneg)\n\t\tc2-=(int)(bn_sub_words(&(r[0]),&(r[0]),&(t[n]),n));\n\telse\n\t\tc2+=(int)(bn_add_words(&(r[0]),&(r[0]),&(t[n]),n));\n\tif (c1 != 0)\n\t\t{\n\t\ti=0;\n\t\tif (c1 > 0)\n\t\t\t{\n\t\t\tlc=c1;\n\t\t\tdo\t{\n\t\t\t\tll=(r[i]+lc)&BN_MASK2;\n\t\t\t\tr[i++]=ll;\n\t\t\t\tlc=(lc > ll);\n\t\t\t\t} while (lc);\n\t\t\t}\n\t\telse\n\t\t\t{\n\t\t\tlc= -c1;\n\t\t\tdo\t{\n\t\t\t\tll=r[i];\n\t\t\t\tr[i++]=(ll-lc)&BN_MASK2;\n\t\t\t\tlc=(lc > ll);\n\t\t\t\t} while (lc);\n\t\t\t}\n\t\t}\n\tif (c2 != 0)\n\t\t{\n\t\ti=n;\n\t\tif (c2 > 0)\n\t\t\t{\n\t\t\tlc=c2;\n\t\t\tdo\t{\n\t\t\t\tll=(r[i]+lc)&BN_MASK2;\n\t\t\t\tr[i++]=ll;\n\t\t\t\tlc=(lc > ll);\n\t\t\t\t} while (lc);\n\t\t\t}\n\t\telse\n\t\t\t{\n\t\t\tlc= -c2;\n\t\t\tdo\t{\n\t\t\t\tll=r[i];\n\t\t\t\tr[i++]=(ll-lc)&BN_MASK2;\n\t\t\t\tlc=(lc > ll);\n\t\t\t\t} while (lc);\n\t\t\t}\n\t\t}\n\t}', 'void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)\n\t{\n#ifdef BN_LLONG\n\tBN_ULLONG t;\n#else\n\tBN_ULONG bl,bh;\n#endif\n\tBN_ULONG t1,t2;\n\tBN_ULONG c1,c2,c3;\n\tc1=0;\n\tc2=0;\n\tc3=0;\n\tmul_add_c(a[0],b[0],c1,c2,c3);\n\tr[0]=c1;\n\tc1=0;\n\tmul_add_c(a[0],b[1],c2,c3,c1);\n\tmul_add_c(a[1],b[0],c2,c3,c1);\n\tr[1]=c2;\n\tc2=0;\n\tmul_add_c(a[2],b[0],c3,c1,c2);\n\tmul_add_c(a[1],b[1],c3,c1,c2);\n\tmul_add_c(a[0],b[2],c3,c1,c2);\n\tr[2]=c3;\n\tc3=0;\n\tmul_add_c(a[0],b[3],c1,c2,c3);\n\tmul_add_c(a[1],b[2],c1,c2,c3);\n\tmul_add_c(a[2],b[1],c1,c2,c3);\n\tmul_add_c(a[3],b[0],c1,c2,c3);\n\tr[3]=c1;\n\tc1=0;\n\tmul_add_c(a[4],b[0],c2,c3,c1);\n\tmul_add_c(a[3],b[1],c2,c3,c1);\n\tmul_add_c(a[2],b[2],c2,c3,c1);\n\tmul_add_c(a[1],b[3],c2,c3,c1);\n\tmul_add_c(a[0],b[4],c2,c3,c1);\n\tr[4]=c2;\n\tc2=0;\n\tmul_add_c(a[0],b[5],c3,c1,c2);\n\tmul_add_c(a[1],b[4],c3,c1,c2);\n\tmul_add_c(a[2],b[3],c3,c1,c2);\n\tmul_add_c(a[3],b[2],c3,c1,c2);\n\tmul_add_c(a[4],b[1],c3,c1,c2);\n\tmul_add_c(a[5],b[0],c3,c1,c2);\n\tr[5]=c3;\n\tc3=0;\n\tmul_add_c(a[6],b[0],c1,c2,c3);\n\tmul_add_c(a[5],b[1],c1,c2,c3);\n\tmul_add_c(a[4],b[2],c1,c2,c3);\n\tmul_add_c(a[3],b[3],c1,c2,c3);\n\tmul_add_c(a[2],b[4],c1,c2,c3);\n\tmul_add_c(a[1],b[5],c1,c2,c3);\n\tmul_add_c(a[0],b[6],c1,c2,c3);\n\tr[6]=c1;\n\tc1=0;\n\tmul_add_c(a[0],b[7],c2,c3,c1);\n\tmul_add_c(a[1],b[6],c2,c3,c1);\n\tmul_add_c(a[2],b[5],c2,c3,c1);\n\tmul_add_c(a[3],b[4],c2,c3,c1);\n\tmul_add_c(a[4],b[3],c2,c3,c1);\n\tmul_add_c(a[5],b[2],c2,c3,c1);\n\tmul_add_c(a[6],b[1],c2,c3,c1);\n\tmul_add_c(a[7],b[0],c2,c3,c1);\n\tr[7]=c2;\n\tc2=0;\n\tmul_add_c(a[7],b[1],c3,c1,c2);\n\tmul_add_c(a[6],b[2],c3,c1,c2);\n\tmul_add_c(a[5],b[3],c3,c1,c2);\n\tmul_add_c(a[4],b[4],c3,c1,c2);\n\tmul_add_c(a[3],b[5],c3,c1,c2);\n\tmul_add_c(a[2],b[6],c3,c1,c2);\n\tmul_add_c(a[1],b[7],c3,c1,c2);\n\tr[8]=c3;\n\tc3=0;\n\tmul_add_c(a[2],b[7],c1,c2,c3);\n\tmul_add_c(a[3],b[6],c1,c2,c3);\n\tmul_add_c(a[4],b[5],c1,c2,c3);\n\tmul_add_c(a[5],b[4],c1,c2,c3);\n\tmul_add_c(a[6],b[3],c1,c2,c3);\n\tmul_add_c(a[7],b[2],c1,c2,c3);\n\tr[9]=c1;\n\tc1=0;\n\tmul_add_c(a[7],b[3],c2,c3,c1);\n\tmul_add_c(a[6],b[4],c2,c3,c1);\n\tmul_add_c(a[5],b[5],c2,c3,c1);\n\tmul_add_c(a[4],b[6],c2,c3,c1);\n\tmul_add_c(a[3],b[7],c2,c3,c1);\n\tr[10]=c2;\n\tc2=0;\n\tmul_add_c(a[4],b[7],c3,c1,c2);\n\tmul_add_c(a[5],b[6],c3,c1,c2);\n\tmul_add_c(a[6],b[5],c3,c1,c2);\n\tmul_add_c(a[7],b[4],c3,c1,c2);\n\tr[11]=c3;\n\tc3=0;\n\tmul_add_c(a[7],b[5],c1,c2,c3);\n\tmul_add_c(a[6],b[6],c1,c2,c3);\n\tmul_add_c(a[5],b[7],c1,c2,c3);\n\tr[12]=c1;\n\tc1=0;\n\tmul_add_c(a[6],b[7],c2,c3,c1);\n\tmul_add_c(a[7],b[6],c2,c3,c1);\n\tr[13]=c2;\n\tc2=0;\n\tmul_add_c(a[7],b[7],c3,c1,c2);\n\tr[14]=c3;\n\tr[15]=c1;\n\t}', 'BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)\n        {\n\tBN_ULONG t1,t2;\n\tint c=0;\n\tbn_check_num(n);\n\tif (n <= 0) return((BN_ULONG)0);\n\tfor (;;)\n\t\t{\n\t\tt1=a[0]; t2=b[0];\n\t\tr[0]=(t1-t2-c)&BN_MASK2;\n\t\tif (t1 != t2) c=(t1 < t2);\n\t\tif (--n <= 0) break;\n\t\tt1=a[1]; t2=b[1];\n\t\tr[1]=(t1-t2-c)&BN_MASK2;\n\t\tif (t1 != t2) c=(t1 < t2);\n\t\tif (--n <= 0) break;\n\t\tt1=a[2]; t2=b[2];\n\t\tr[2]=(t1-t2-c)&BN_MASK2;\n\t\tif (t1 != t2) c=(t1 < t2);\n\t\tif (--n <= 0) break;\n\t\tt1=a[3]; t2=b[3];\n\t\tr[3]=(t1-t2-c)&BN_MASK2;\n\t\tif (t1 != t2) c=(t1 < t2);\n\t\tif (--n <= 0) break;\n\t\ta+=4;\n\t\tb+=4;\n\t\tr+=4;\n\t\t}\n\treturn(c);\n\t}']