On 4/16/07, Paulo J. Matos <[EMAIL PROTECTED]> wrote:
Hello all,
I'm going through the bodies of all user-defined functions. I'm using
as user-defined function as one that:
DECL_BUILT_IN(node) == 0.
Problem is that for a function (derived from a C++ file) whose output
from my pass is (output is self-explanatory, I think):
Registering cgraph node:
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
[operator<<]... SUCCESSFUL
Declared on
/home/pmatos/gsvt-bin/lib/gcc/x86_64-unknown-linux-gnu/4.1.1/../../../../include/c++/4.1.1/bits/ostream.tcc,
line 735
Decl Node Code is function_decl
Registering output void ...SUCCESSFUL
Arguments: __out : reference_type, __s : pointer_type
Well, this is definitely builtin but DECL_BUILT_IN == 0, which means
that when I do FOR_EACH_BB_FN, I'm getting a segmentation fault
First, it's not built in, because it's defined in a source file.
Builtin functions are those defined by the compiler.
Second, we should make FOR_EACH_BB_FN never crash on empty tree functions.
It seems really rude to do otherwise.
Just because we don't have a body for a function doesn't mean we
should crash. Users shouldn't have to be checking random things like
DECL_SAVED_TREE to determine if FOR_EACH_BB_FN will work (this is not
to say that they should be able to pass any random crap to it, but it
should be detecting if the function has a body)