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!