(root)/
gcc-13.2.0/
gcc/
flags.h
       1  /* Compilation switch flag definitions for GCC.
       2     Copyright (C) 1987-2023 Free Software Foundation, Inc.
       3  
       4  This file is part of GCC.
       5  
       6  GCC is free software; you can redistribute it and/or modify it under
       7  the terms of the GNU General Public License as published by the Free
       8  Software Foundation; either version 3, or (at your option) any later
       9  version.
      10  
      11  GCC is distributed in the hope that it will be useful, but WITHOUT ANY
      12  WARRANTY; without even the implied warranty of MERCHANTABILITY or
      13  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      14  for more details.
      15  
      16  You should have received a copy of the GNU General Public License
      17  along with GCC; see the file COPYING3.  If not see
      18  <http://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef GCC_FLAGS_H
      21  #define GCC_FLAGS_H
      22  
      23  #if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS) && !defined(IN_RTS)
      24  
      25  /* Names of fundamental debug info formats indexed by enum
      26     debug_info_type.  */
      27  
      28  extern const char *const debug_type_names[];
      29  
      30  /* Get enum debug_info_type of the specified debug format, for error messages.
      31     Can be used only for individual debug format types.  */
      32  
      33  extern enum debug_info_type debug_set_to_format (uint32_t debug_info_set);
      34  
      35  /* Get the number of debug formats enabled for output.  */
      36  
      37  unsigned int debug_set_count (uint32_t w_symbols);
      38  
      39  /* Get the names of the debug formats enabled for output.  */
      40  
      41  const char * debug_set_names (uint32_t w_symbols);
      42  
      43  #ifndef GENERATOR_FILE
      44  /* Return true iff BTF debug info is enabled.  */
      45  
      46  extern bool btf_debuginfo_p ();
      47  
      48  /* Return true iff BTF with CO-RE debug info is enabled.  */
      49  
      50  extern bool btf_with_core_debuginfo_p ();
      51  
      52  /* Return true iff CTF debug info is enabled.  */
      53  
      54  extern bool ctf_debuginfo_p ();
      55  
      56  /* Return true iff DWARF2 debug info is enabled.  */
      57  
      58  extern bool dwarf_debuginfo_p (struct gcc_options *opts = &global_options);
      59  
      60  /* Return true iff the debug info format is to be generated based on DWARF
      61     DIEs (like CTF and BTF debug info formats).  */
      62  
      63  extern bool dwarf_based_debuginfo_p ();
      64  #endif
      65  
      66  extern void strip_off_ending (char *, int);
      67  extern int base_of_path (const char *path, const char **base_out);
      68  
      69  /* Return true iff flags are set as if -ffast-math.  */
      70  extern bool fast_math_flags_set_p (const struct gcc_options *);
      71  extern bool fast_math_flags_struct_set_p (struct cl_optimization *);
      72  
      73  
      74  /* Now the symbols that are set with `-f' switches.  */
      75  
      76  /* True if printing into -fdump-final-insns= dump.  */
      77  
      78  extern bool final_insns_dump_p;
      79  
      80  
      81  /* Other basic status info about current function.  */
      82  
      83  class target_flag_state
      84  {
      85  public:
      86    /* Each falign-foo can generate up to two levels of alignment:
      87       -falign-foo=N:M[:N2:M2] */
      88    align_flags x_align_loops;
      89    align_flags x_align_jumps;
      90    align_flags x_align_labels;
      91    align_flags x_align_functions;
      92  };
      93  
      94  extern class target_flag_state default_target_flag_state;
      95  #if SWITCHABLE_TARGET
      96  extern class target_flag_state *this_target_flag_state;
      97  #else
      98  #define this_target_flag_state (&default_target_flag_state)
      99  #endif
     100  
     101  #define align_loops	 (this_target_flag_state->x_align_loops)
     102  #define align_jumps	 (this_target_flag_state->x_align_jumps)
     103  #define align_labels	 (this_target_flag_state->x_align_labels)
     104  #define align_functions	 (this_target_flag_state->x_align_functions)
     105  
     106  /* Returns TRUE if generated code should match ABI version N or
     107     greater is in use.  */
     108  
     109  #define abi_version_at_least(N) \
     110    (flag_abi_version == 0 || flag_abi_version >= (N))
     111  
     112  /* Whether to emit an overflow warning whose code is C.  */
     113  #define issue_strict_overflow_warning(c) (warn_strict_overflow >= (int) (c))
     114  
     115  #endif /* ! in target library */
     116  
     117  #endif /* ! GCC_FLAGS_H */