This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to insert functions?



Hi Andrew,
Yes, I did a bit. it segfaults at
cgraphunit.c:cgraph_expand_all_functions:1323
node->lowered = DECL_STRUCT_FUNCTION (node->decl)->cfg != NULL;
It seems that the node->decl has been nulled by the time it gets here. It definitely isn't NULL after leaving my code. Can you think of anything that might do that? I figured I must be doing something pretty wrong and that there must be tons of examples for this kind of thing but I haven't been able to find one.


Cheers for the help,

Hugh.

Andrew Haley wrote:
Hugh Leather wrote:
Hi,

  I am trying to add a new destructor function to object files I
compile.  I'm doing this to instrument programs and then, once the
program has finished I want to print out the statistics I've gathered.
  So, just before pass 'remove_useless_stmts' is called on each function
I try to create a static destructor which will print stats for the
current function (and obviously, I don't do it on the functions just
created).

  Below I've put a simpler form, which should work for a one function
program.  Calling createFnDecl() creates a new function called
__my_new_function.  It should print "It worked!" when the program exits.
  Now, with compiler flag -O0, this works just fine, but with -O1 or
above it seg faults the compiler.

Can anyone tell me what I'm doing wrong?

Nothing obvious to me. Did you debug the point at which the segfault happened?

Andrew.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]