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] | |
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] |