码迷,mamicode.com
首页 > 其他好文 > 详细

gcc源代码分析,debug_tree()函数,又一利器啊

时间:2015-01-03 22:29:52      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:gcc   源代码   分析   

gcc源代码分析,debug_rtx()函数,利器啊


print-tree.c


#include "config.h"
#include "tree.h"
#include <stdio.h>


/* Names of tree components.
   Used for printing out the tree and error messages.  */
#define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME,

char *tree_code_name[] = {
#include "tree.def"
};
#undef DEFTREECODE


同样的debug_tree()函数放在哪里才有用是个重要而有用的问题,

只有看完相关的代码才能知道。

我认为放到expr.c文件中比较好。


  if (mode != Pmode && modifier == EXPAND_SUM)
    modifier = EXPAND_NORMAL;
fprintf(stderr ,"expand_expr code = %x\n",code);
debug_tree (exp);


  /* Ensure we reference a volatile object even if value is ignored.  */
  if (ignore && TREE_THIS_VOLATILE (exp)
      && mode != VOIDmode && mode != BLKmode)
    {
      target = gen_reg_rtx (mode);
      temp = expand_expr (exp, target, VOIDmode, modifier);
      if (temp != target)
    emit_move_insn (target, temp);
      return target;
    }

  switch (code)
/*再这个关键的分支处,之前打印出语法树是个明智的选择*/
    {
    case PARM_DECL:
      if (DECL_RTL (exp) == 0)
    {
      error_with_decl (exp, "prior parameter‘s size depends on `%s‘");
      return const0_rtx;
    }

    case FUNCTION_DECL:
    case VAR_DECL:



gcc源代码分析,debug_tree()函数,又一利器啊

标签:gcc   源代码   分析   

原文地址:http://blog.csdn.net/oldlinux/article/details/42370355

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!