CBMC
gcc_version.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: gcc version numbering scheme
4 
5 Author: Daniel Kroening
6 
7 Date: May 2018
8 
9 \*******************************************************************/
10 
11 #ifndef CPROVER_GOTO_CC_GCC_VERSION_H
12 #define CPROVER_GOTO_CC_GCC_VERSION_H
13 
14 #include <iosfwd>
15 #include <string>
16 
17 #include <util/config.h>
18 
20 {
21 public:
23 
24  void get(const std::string &executable);
25 
26  bool is_at_least(
27  unsigned v_major,
28  unsigned v_minor = 0,
29  unsigned v_patchlevel = 0) const;
30 
31  enum class flavort
32  {
33  UNKNOWN,
34  CLANG,
35  GCC,
36  BCC
37  } flavor;
38 
41 
43  : v_major(0),
44  v_minor(0),
45  v_patchlevel(0),
47  default_c_standard(configt::ansi_ct::c_standardt::C89),
48  default_cxx_standard(configt::cppt::cpp_standardt::CPP98)
49  {
50  }
51 };
52 
53 void configure_gcc(const gcc_versiont &);
54 
55 std::ostream &operator<<(std::ostream &, const gcc_versiont &);
56 
57 #endif
ai_verifier_statust::UNKNOWN
@ UNKNOWN
gcc_versiont::get
void get(const std::string &executable)
Definition: gcc_version.cpp:18
configt::cppt::cpp_standardt
cpp_standardt
Definition: config.h:285
gcc_versiont::flavor
enum gcc_versiont::flavort flavor
gcc_versiont::default_cxx_standard
configt::cppt::cpp_standardt default_cxx_standard
Definition: gcc_version.h:40
configt
Globally accessible architectural configuration.
Definition: config.h:118
gcc_versiont::flavort::UNKNOWN
@ UNKNOWN
gcc_versiont::flavort::GCC
@ GCC
configure_gcc
void configure_gcc(const gcc_versiont &)
Definition: gcc_version.cpp:147
gcc_versiont::v_major
unsigned v_major
Definition: gcc_version.h:22
gcc_versiont::is_at_least
bool is_at_least(unsigned v_major, unsigned v_minor=0, unsigned v_patchlevel=0) const
Definition: gcc_version.cpp:132
gcc_versiont::flavort::CLANG
@ CLANG
gcc_versiont
Definition: gcc_version.h:19
gcc_versiont::gcc_versiont
gcc_versiont()
Definition: gcc_version.h:42
gcc_versiont::v_minor
unsigned v_minor
Definition: gcc_version.h:22
gcc_versiont::default_c_standard
configt::ansi_ct::c_standardt default_c_standard
Definition: gcc_version.h:39
config.h
gcc_versiont::flavort::BCC
@ BCC
operator<<
std::ostream & operator<<(std::ostream &, const gcc_versiont &)
Definition: gcc_version.cpp:142
gcc_versiont::flavort
flavort
Definition: gcc_version.h:31
configt::ansi_ct::c_standardt
c_standardt
Definition: config.h:142
gcc_versiont::v_patchlevel
unsigned v_patchlevel
Definition: gcc_version.h:22