clang  3.9.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::driver::toolchains::Generic_GCC::GCCVersion Struct Reference

Struct to store and manipulate GCC versions. More...

#include <ToolChains.h>

Collaboration diagram for clang::driver::toolchains::Generic_GCC::GCCVersion:
[legend]

Public Member Functions

bool isOlderThan (int RHSMajor, int RHSMinor, int RHSPatch, StringRef RHSPatchSuffix=StringRef()) const
 Less-than for GCCVersion, implementing a Strict Weak Ordering. More...
 
bool operator< (const GCCVersion &RHS) const
 
bool operator> (const GCCVersion &RHS) const
 
bool operator<= (const GCCVersion &RHS) const
 
bool operator>= (const GCCVersion &RHS) const
 

Static Public Member Functions

static GCCVersion Parse (StringRef VersionText)
 

Public Attributes

std::string Text
 The unparsed text of the version. More...
 
int Major
 The parsed major, minor, and patch numbers. More...
 
int Minor
 
int Patch
 
std::string MajorStr
 The text of the parsed major, and major+minor versions. More...
 
std::string MinorStr
 
std::string PatchSuffix
 Any textual suffix on the patch number. More...
 

Detailed Description

Struct to store and manipulate GCC versions.

We rely on assumptions about the form and structure of GCC version numbers: they consist of at most three '.'-separated components, and each component is a non-negative integer except for the last component. For the last component we are very flexible in order to tolerate release candidates or 'x' wildcards.

Note that the ordering established among GCCVersions is based on the preferred version string to use. For example we prefer versions without a hard-coded patch number to those with a hard coded patch number.

Currently this doesn't provide any logic for textual suffixes to patches in the way that (for example) Debian's version format does. If that ever becomes necessary, it can be added.

Definition at line 50 of file ToolChains.h.

Member Function Documentation

bool Generic_GCC::GCCVersion::isOlderThan ( int  RHSMajor,
int  RHSMinor,
int  RHSPatch,
StringRef  RHSPatchSuffix = StringRef() 
) const

Less-than for GCCVersion, implementing a Strict Weak Ordering.

Definition at line 1326 of file ToolChains.cpp.

Referenced by clang::driver::toolchains::Generic_ELF::addClangTargetOptions().

bool clang::driver::toolchains::Generic_GCC::GCCVersion::operator< ( const GCCVersion RHS) const
inline

Definition at line 66 of file ToolChains.h.

References Major, Minor, Patch, and PatchSuffix.

bool clang::driver::toolchains::Generic_GCC::GCCVersion::operator<= ( const GCCVersion RHS) const
inline

Definition at line 70 of file ToolChains.h.

bool clang::driver::toolchains::Generic_GCC::GCCVersion::operator> ( const GCCVersion RHS) const
inline

Definition at line 69 of file ToolChains.h.

bool clang::driver::toolchains::Generic_GCC::GCCVersion::operator>= ( const GCCVersion RHS) const
inline

Definition at line 71 of file ToolChains.h.

static GCCVersion clang::driver::toolchains::Generic_GCC::GCCVersion::Parse ( StringRef  VersionText)
static

Member Data Documentation

int clang::driver::toolchains::Generic_GCC::GCCVersion::Major

The parsed major, minor, and patch numbers.

Definition at line 55 of file ToolChains.h.

Referenced by operator<().

std::string clang::driver::toolchains::Generic_GCC::GCCVersion::MajorStr

The text of the parsed major, and major+minor versions.

Definition at line 58 of file ToolChains.h.

Referenced by clang::driver::toolchains::Solaris::AddClangCXXStdlibIncludeArgs(), and clang::driver::toolchains::Linux::AddClangCXXStdlibIncludeArgs().

int clang::driver::toolchains::Generic_GCC::GCCVersion::Minor

Definition at line 55 of file ToolChains.h.

Referenced by operator<().

std::string clang::driver::toolchains::Generic_GCC::GCCVersion::MinorStr
int clang::driver::toolchains::Generic_GCC::GCCVersion::Patch

Definition at line 55 of file ToolChains.h.

Referenced by operator<().

std::string clang::driver::toolchains::Generic_GCC::GCCVersion::PatchSuffix

Any textual suffix on the patch number.

Definition at line 61 of file ToolChains.h.

Referenced by operator<().

std::string clang::driver::toolchains::Generic_GCC::GCCVersion::Text

The documentation for this struct was generated from the following files: