Hi, I have more info concerning my gnat_malloc problem.
I watched the code in gcc/ada/gcc-interface/trans.c and found the location where malloc_decl tree is built. In gigi ()function (trans.c:411), the ftype for malloc_decl is done this way : ftype = build_function_type_list (ptr_void_type_node, sizetype, NULL_TREE); I looked at the code of build_function_type_list_1 in tree.c and found that stdargs function are built with their chained list of argument ending with a void_list_node : { last = args; args = nreverse (args); TREE_CHAIN (last) = void_list_node; } But I also noticed that void_list_node was a null pointer!! instead of being a node with TREE_VALUE = void_type_node and no TREE_CHAIN (as described in tree.h) So I wondered, where should void_list_node be initialized in GNAT frontend and noticed that the initialization of void_list_node was done AFTER its use to declare ftype for malloc_decl. ftype for malloc_decl is initialized in gigi() function at trans.c:411 whereas void_list_node in only initialized in gigi() function at trans.c:665 by a call to gnat_install_builtins() ---> install_builtin_elementary_types() --> void_list_node = build_void_list_node (); It seems like a bug. Is it a known one ? someone has the proper fix ? I put the call to gnat_install_builtins() higher inside gigi() and it solve my current problem but I'm not sure exactly when it has to be called and if there are bad side effects. Regards, Selim Belbachir