GCC C语言处理主要函数之init_pragma

/* Set up front-end pragmas.  */
void
init_pragma (void)
{
  if (flag_openacc)
    {
      const int n_oacc_pragmas
 = sizeof (oacc_pragmas) / sizeof (*oacc_pragmas);
      int i;

      for (i = 0; i < n_oacc_pragmas; ++i)  cpp_register_deferred_pragma (parse_in, "acc", oacc_pragmas[i].name,           oacc_pragmas[i].id, true, true);     }

  if (flag_openmp)     {       const int n_omp_pragmas = sizeof (omp_pragmas) / sizeof (*omp_pragmas);       int i;

      for (i = 0; i < n_omp_pragmas; ++i)  cpp_register_deferred_pragma (parse_in, "omp", omp_pragmas[i].name,           omp_pragmas[i].id, true, true);     }   if (flag_openmp || flag_openmp_simd)     {       const int n_omp_pragmas_simd = sizeof (omp_pragmas_simd)          / sizeof (*omp_pragmas);       int i;

      for (i = 0; i < n_omp_pragmas_simd; ++i)  cpp_register_deferred_pragma (parse_in, "omp", omp_pragmas_simd[i].name,           omp_pragmas_simd[i].id, true, true);     }

  if (flag_cilkplus)     cpp_register_deferred_pragma (parse_in, NULL, "simd", PRAGMA_CILK_SIMD,       true, false);

  if (!flag_preprocess_only)     cpp_register_deferred_pragma (parse_in, "GCC", "pch_preprocess",       PRAGMA_GCC_PCH_PREPROCESS, false, false);

  if (!flag_preprocess_only)     cpp_register_deferred_pragma (parse_in, "GCC", "ivdep", PRAGMA_IVDEP, false,       false);

  if (flag_cilkplus)     cpp_register_deferred_pragma (parse_in, "cilk", "grainsize",       PRAGMA_CILK_GRAINSIZE, true, false);

#ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION   c_register_pragma_with_expansion (0, "pack", handle_pragma_pack); #else   c_register_pragma (0, "pack", handle_pragma_pack); #endif   c_register_pragma (0, "weak", handle_pragma_weak);

  c_register_pragma ("GCC", "visibility", handle_pragma_visibility);

  c_register_pragma ("GCC", "diagnostic", handle_pragma_diagnostic);   c_register_pragma ("GCC", "target", handle_pragma_target);   c_register_pragma ("GCC", "optimize", handle_pragma_optimize);   c_register_pragma ("GCC", "push_options", handle_pragma_push_options);   c_register_pragma ("GCC", "pop_options", handle_pragma_pop_options);   c_register_pragma ("GCC", "reset_options", handle_pragma_reset_options);

  c_register_pragma ("STDC", "FLOAT_CONST_DECIMAL64",        handle_pragma_float_const_decimal64);

  c_register_pragma_with_expansion (0, "redefine_extname",         handle_pragma_redefine_extname);

  c_register_pragma_with_expansion (0, "message", handle_pragma_message);

#ifdef REGISTER_TARGET_PRAGMAS   REGISTER_TARGET_PRAGMAS (); #endif

  global_sso = default_sso;   c_register_pragma (0, "scalar_storage_order",        handle_pragma_scalar_storage_order);

  /* Allow plugins to register their own pragmas. */   invoke_plugin_callbacks (PLUGIN_PRAGMAS, NULL); }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值