File: | chain.c |
Function: | urj_pyc_set_dr |
Error: | passing uninitialized data (newval.43) as argument 2 to function at chain.c:525 |
464 static PyObject *
465 urj_pyc_set_dr (urj_pychain_t *self, int in, PyObject *args)
466 {
467 urj_chain_t *urc = self->urchain;
468 urj_part_t *part;
469 urj_tap_register_t *r;
470 urj_data_register_t *dr;
471 urj_part_instruction_t *active_ir;
472 char *newstr = NULL;
473 uint64_t newval;
474 int lsb = -1;
475 int msb = -1;
476
477 if (!PyArg_ParseTuple (args, "s|ii", &newstr, &msb, &lsb))
when PyArg_ParseTuple() succeeds
taking False path
478 if (!PyArg_ParseTuple (args, "L|ii", &newval, &msb, &lsb))
479 return NULL;
480
481 if (!urj_pyc_precheck (urc, UPRC_CBL))
when considering range: -0x80000000 <= value <= -1
taking False path
482 return NULL;
483
484 part = urj_tap_chain_active_part (urc);
485 if (part == NULL)
when treating unknown struct urj_part_t * from chain.c:484 as non-NULL
taking False path
486 {
487 PyErr_SetString (UrjtagError, _("no active part in chain"));
488 return NULL;
489 }
490 active_ir = part->active_instruction;
491 if (active_ir == NULL)
when treating unknown struct urj_part_instruction_t * from chain.c:490 as non-NULL
taking False path
492 {
493 PyErr_SetString (UrjtagError, _("part without active instruction"));
494 return NULL;
495 }
496 dr = active_ir->data_register;
497 if (dr == NULL)
when treating unknown struct urj_data_register_t * from chain.c:496 as non-NULL
taking False path
498 {
499 PyErr_SetString (UrjtagError,
500 _("instruction without active data register"));
501 return NULL;
502 }
503
504 if (in)
when considering value == (int)0 from chain.c:465
taking False path
505 r = dr->in;
506 else
507 r = dr->out;
508
509 if (msb == -1)
when considering range: 0 <= value <= 0x7fffffff
taking False path
510 {
511 if (newstr)
512 return urj_py_chkret (urj_tap_register_set_string(r, newstr));
513 else
514 return urj_py_chkret (urj_tap_register_set_value(r, newval));
515 }
516 else
517 {
518 if (lsb == -1)
when considering range: -0x80000000 <= value <= -2
taking False path
519 lsb = msb;
520
521 if (newstr)
when treating unknown const char * from chain.c:477 as NULL
taking False path
522 /* TODO urj_tap_register_set_string_bit_range(r, newstr, msb, lsb); */
523 return Py_BuildValue ("");
524 else
525 return urj_py_chkret (urj_tap_register_set_value_bit_range(r, newval, msb, lsb));
passing uninitialized data (newval.43) as argument 2 to function at chain.c:525
found 9 similar trace(s) to this
526 }
527 }
File: | chain.c |
Function: | urj_pyc_set_dr |
Error: | passing uninitialized data (newval.43) as argument 2 to function at chain.c:514 |
464 static PyObject *
465 urj_pyc_set_dr (urj_pychain_t *self, int in, PyObject *args)
466 {
467 urj_chain_t *urc = self->urchain;
468 urj_part_t *part;
469 urj_tap_register_t *r;
470 urj_data_register_t *dr;
471 urj_part_instruction_t *active_ir;
472 char *newstr = NULL;
473 uint64_t newval;
474 int lsb = -1;
475 int msb = -1;
476
477 if (!PyArg_ParseTuple (args, "s|ii", &newstr, &msb, &lsb))
when PyArg_ParseTuple() succeeds
taking False path
478 if (!PyArg_ParseTuple (args, "L|ii", &newval, &msb, &lsb))
479 return NULL;
480
481 if (!urj_pyc_precheck (urc, UPRC_CBL))
when considering range: -0x80000000 <= value <= -1
taking False path
482 return NULL;
483
484 part = urj_tap_chain_active_part (urc);
485 if (part == NULL)
when treating unknown struct urj_part_t * from chain.c:484 as non-NULL
taking False path
486 {
487 PyErr_SetString (UrjtagError, _("no active part in chain"));
488 return NULL;
489 }
490 active_ir = part->active_instruction;
491 if (active_ir == NULL)
when treating unknown struct urj_part_instruction_t * from chain.c:490 as non-NULL
taking False path
492 {
493 PyErr_SetString (UrjtagError, _("part without active instruction"));
494 return NULL;
495 }
496 dr = active_ir->data_register;
497 if (dr == NULL)
when treating unknown struct urj_data_register_t * from chain.c:496 as non-NULL
taking False path
498 {
499 PyErr_SetString (UrjtagError,
500 _("instruction without active data register"));
501 return NULL;
502 }
503
504 if (in)
when considering value == (int)0 from chain.c:465
taking False path
505 r = dr->in;
506 else
507 r = dr->out;
508
509 if (msb == -1)
when considering value == (int)-1 from chain.c:477
taking True path
510 {
511 if (newstr)
when treating unknown const char * from chain.c:477 as NULL
taking False path
512 return urj_py_chkret (urj_tap_register_set_string(r, newstr));
513 else
514 return urj_py_chkret (urj_tap_register_set_value(r, newval));
passing uninitialized data (newval.43) as argument 2 to function at chain.c:514
found 1 similar trace(s) to this
515 }
516 else
517 {
518 if (lsb == -1)
519 lsb = msb;
520
521 if (newstr)
522 /* TODO urj_tap_register_set_string_bit_range(r, newstr, msb, lsb); */
523 return Py_BuildValue ("");
524 else
525 return urj_py_chkret (urj_tap_register_set_value_bit_range(r, newval, msb, lsb));
526 }
527 }