GCC前端处理阶段添加开关选项

1. 选项文件

  GCC8.2.0 中的各种选项说明都是保存在以.opt为后缀的文件里,通用选项和其内部标记信息保存在gcc/common.opt中,前端相关的选项和一些警告类型选项保存在gcc/c-family/c.opt中。在.opt选项列表中,每个选项单独占用一行,注释由分号(;)开头,对空格没有严格要求。例如:
f1

2. 选项定义

  • 选项名字通常以“f”“m”“W”开头
  • 选项与选项之间空行分隔,选项区分大小写,且单词之间“-”连接(例如:fdefault-inline
  • 一般以“f”“m”开头的选项都有一个默认的“no-”形式,分别用于选项的打开和关闭操作

3. 选项添加位置

  在前端词法分析和预处理的时候主要涉及gcc/c/c-opts.c文件中的c_common_handle_option函数,该函数根据所给的-f-W选项返回true或是false。
  c_common_handle_option函数中所使用的选项参数定义在libcpp/include/cpplib.h头文件中的cpp_options struct中。
  选项的定义位置在c.opt中。

具体添加步骤如下:

  1. struct cpp_options中:
    f2

  2. c.opt中:
    f3

  3. c_common_handle_option函数中:
    f4

  4. c-opts.c中根据选项的返回值判断是否执行对应优化代码(其中cc_type_xx为自己声明的函数,my_fun也是自己的相关实现代码):
    f5

  5. Makefile.in中的C_COMMON_OBJS内添加C-family front ends对应源码的.o文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值