clang  6.0.0svn
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 "/opt/doxygen-docs/src/llvm/tools/clang/lib/Driver/ToolChains/Gnu.h"

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

Public Member Functions

bool isOlderThan (int RHSMajor, int RHSMinor, int RHSPatch, StringRef RHSPatchSuffix=StringRef()) const
 Generic_GCC - A tool chain using the 'gcc' command to perform all subcommands; this relies on gcc translating the majority of command line options. 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)
 Parse a GCCVersion object out of a string of text. More...
 

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 157 of file Gnu.h.

Member Function Documentation

◆ isOlderThan()

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

Generic_GCC - A tool chain using the 'gcc' command to perform all subcommands; this relies on gcc translating the majority of command line options.

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

Definition at line 1495 of file Gnu.cpp.

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

◆ operator<()

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

Definition at line 173 of file Gnu.h.

References Major, Minor, Patch, and PatchSuffix.

◆ operator<=()

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

Definition at line 177 of file Gnu.h.

◆ operator>()

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

Definition at line 176 of file Gnu.h.

◆ operator>=()

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

Definition at line 178 of file Gnu.h.

◆ Parse()

Generic_GCC::GCCVersion Generic_GCC::GCCVersion::Parse ( StringRef  VersionText)
static

Parse a GCCVersion object out of a string of text.

This is the primary means of forming GCCVersion objects.

Definition at line 1532 of file Gnu.cpp.

References Major, MajorStr, Minor, MinorStr, Patch, and PatchSuffix.

Referenced by clang::driver::toolchains::BareMetal::findLibCxxIncludePath().

Member Data Documentation

◆ Major

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

The parsed major, minor, and patch numbers.

Definition at line 162 of file Gnu.h.

Referenced by clang::driver::toolchains::BareMetal::findLibCxxIncludePath(), operator<(), and Parse().

◆ MajorStr

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

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

Definition at line 165 of file Gnu.h.

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

◆ Minor

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

Definition at line 162 of file Gnu.h.

Referenced by operator<(), and Parse().

◆ MinorStr

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

◆ Patch

int clang::driver::toolchains::Generic_GCC::GCCVersion::Patch

Definition at line 162 of file Gnu.h.

Referenced by operator<(), and Parse().

◆ PatchSuffix

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

Any textual suffix on the patch number.

Definition at line 168 of file Gnu.h.

Referenced by operator<(), and Parse().

◆ Text

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

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