[LLVMdev] Value of structure passed byval to a recurse function not initialized when accessed through GDB

Karthik Bhat karthikthecool at gmail.com
Tue Dec 4 05:34:36 PST 2012


Hi All,

I was debugging a clang binary when i found this problem. The
following code is complied with clang.

typedef struct s
{
  short s;
} SVAL;	


void recurse (SVAL a, int depth)
{
  a.s = --depth;
  if (depth == 0)
    return;
  else
   recurse(a,depth);
}

int main ()
{
  SVAL s; s.s = 5;
  recurse (s, 5);
  return 0;
}

When i try to access value of a.s in function recurse through gdb(i.e
gdb > p a.s) it gives me an uninitialized value.
The problem occurs only when we have a function call within function
to which we have passed a structure.

Could someone guide me were can i look to fix this issue.

I have started with LowerFormalArguments in X86ISelLowering.cpp file.

Thanks
Karthik



More information about the llvm-dev mailing list