#include "coretypes.h"
#include "tm.h"
#include "tree.h"
-#include "rtl.h"
-#include "varray.h"
#include "gimple.h"
#include "tree-iterator.h"
#include "tree-inline.h"
-#include "diagnostic.h"
-#include "langhooks.h"
-#include "langhooks-def.h"
#include "tree-flow.h"
-#include "timevar.h"
-#include "except.h"
-#include "hashtab.h"
#include "flags.h"
#include "function.h"
-#include "expr.h"
+#include "diagnostic-core.h"
#include "toplev.h"
#include "tree-pass.h"
return 0;
}
-struct gimple_opt_pass pass_lower_cf =
+struct gimple_opt_pass pass_lower_cf =
{
{
GIMPLE_PASS,
{
for (i = 0, p = DECL_ARGUMENTS (fndecl);
i < nargs;
- i++, p = TREE_CHAIN (p))
+ i++, p = DECL_CHAIN (p))
{
/* We cannot distinguish a varargs function from the case
of excess parameters, still deferring the inlining decision
lower_omp_directive (gimple_stmt_iterator *gsi, struct lower_data *data)
{
gimple stmt;
-
+
stmt = gsi_stmt (*gsi);
lower_sequence (gimple_omp_body (stmt), data);
{
case GOTO_EXPR:
case RETURN_EXPR:
- /* Easy cases. If the last statement of the block implies
+ /* Easy cases. If the last statement of the block implies
control transfer, then we can't fall through. */
return false;
case CALL_EXPR:
/* Functions that do not return do not fall through. */
return (call_expr_flags (stmt) & ECF_NORETURN) == 0;
-
+
case CLEANUP_POINT_EXPR:
return block_may_fallthru (TREE_OPERAND (stmt, 0));
case GIMPLE_GOTO:
case GIMPLE_RETURN:
case GIMPLE_RESX:
- /* Easy cases. If the last statement of the seq implies
+ /* Easy cases. If the last statement of the seq implies
control transfer, then we can't fall through. */
return false;
if (fn != current_function_decl)
push_cfun (DECL_STRUCT_FUNCTION (fn));
- for (; vars; vars = TREE_CHAIN (vars))
+ for (; vars; vars = DECL_CHAIN (vars))
{
tree var = vars;
continue;
/* Record the variable. */
- cfun->local_decls = tree_cons (NULL_TREE, var,
- cfun->local_decls);
+ add_local_decl (cfun, var);
}
if (fn != current_function_decl)