Although that works fine for basic types, there is a problem for arrays as it adds the word volatile after the type of the variable.
Basically if my input is:
I want my output to be
volatile int c;
I added following code where elt.vtype is the type of exisiting variable
let attr_list =ref  in
attr_list := Attr("volatile",) :: !attr_list;
let temp_type = elt.vtype in
let new_type_var = typeAddAttributes !attr_list temp_type in
let temp = makeTempVar fd new_type_var
However this gives output as
int ( volatile c) ;
Also on examining the TArray type I notice that the attr field is empty even for a volatile array. In that case where exactly is the volatile attribute stored for arrays?
Thanks. That worked!
-DivyaOn Mon, Apr 20, 2009 at 4:33 PM, Gabriel Kerneis <firstname.lastname@example.org> wrote:
It's stored in attributes (just like const). Look at the definition ofOn Mon, Apr 20, 2009 at 04:07:09PM -0400, Divya Krishnan wrote:
> I would like to add a volatile variable to the input program. However on
> going through the Cil documentation, I could not find any way to create a
> volatile variable type. Is there any way that we may have to set attributes
> when we specify makeTempVar in order to create a volatile variable? The
> Cil.typ Sumtype does not have any type for volatile variables.
Cil.charConstPtrType for example.