On Tue, Sep 3, 2013 at 7:59 PM, <ttur...@cs.bilkent.edu.tr> wrote: > Sorry forgot to mention, my name is Tuncer. > > Again any help would be much appreciated. > I know these maybe simple for some of you if you could lend me a hand, you > will be doing a great deal of help. > > Changed the subject for better understanding, > > Thanks again guys :)
Something like oldop = gimple_assign_rhs1 (stmt); gsi = gsi_for_stmt (stmt); newop = force_gimple_operand_gsi (&gsi, fold_build2 (BIT_IOR_EXPR, TREE_TYPE (oldop), oldop, build_int_cst (TREE_TYPE (oldop), 1<<3)), true, NULL_TREE, true, GSI_CONTINUE_LINKING); gimple_assign_set_rhs1 (stmt, newop); update_stmt (stmt); > >> Hi, >> >> I am a student at Bilkent Uni. in Turkey and using GCC as a tool for my >> M.S. Thesis which is about Software Fault Tolerance. >> I am stuck, in terms of implementing bit flips in the operands of a gimple >> statement. >> >> I need to inject bit flips to all kinds of operands, constant integers, >> floats, variables, pointers etc... >> >> It is simpler for constants, but I am having a hard time to get the value >> of pointers and other variables. >> >> My objective is to simply change the value of a tree operand, by injecting >> a new instruction that changes the value or directly change the operand to >> a bit flipped value. >> >> For constant integers I did something like this: >> >> int valueBefore = TREE_INT_CST_LOW(operands[i]); >> int valueAfter = (valueBefore ^ (1u << 2)); >> tree number = >> build_int_cst (integer_type_node, valueAfter); >> >> I would love it if you can help me and >> may even implement a tool for GCC for error injection purposes. >> >> Any help would be much appreciated! >> >> Thank you very much! >> > >