clang 22.0.0git
clang::driver::toolchains::Generic_GCC::GCCVersion Struct Reference

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

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Driver/ToolChains/Gnu.h"

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.
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.

Public Attributes

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

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 163 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 1941 of file Gnu.cpp.

References Major, Minor, Patch, and PatchSuffix.

Referenced by operator<().

◆ operator<()

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

Definition at line 179 of file Gnu.h.

References isOlderThan(), Major, Minor, Patch, and PatchSuffix.

◆ operator<=()

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

Definition at line 183 of file Gnu.h.

◆ operator>()

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

Definition at line 182 of file Gnu.h.

◆ operator>=()

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

Definition at line 184 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 1985 of file Gnu.cpp.

References clang::First, Major, MajorStr, Minor, MinorStr, Patch, and PatchSuffix.

Referenced by clang::driver::toolchains::BareMetal::AddClangCXXStdlibIncludeArgs(), findGccVersion(), and clang::driver::toolchains::Generic_GCC::GCCInstallationDetector::init().

Member Data Documentation

◆ Major

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

The parsed major, minor, and patch numbers.

Definition at line 168 of file Gnu.h.

Referenced by clang::driver::toolchains::BareMetal::AddClangCXXStdlibIncludeArgs(), isOlderThan(), 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 171 of file Gnu.h.

Referenced by Parse().

◆ Minor

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

Definition at line 168 of file Gnu.h.

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

◆ MinorStr

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

Definition at line 171 of file Gnu.h.

Referenced by Parse().

◆ Patch

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

Definition at line 168 of file Gnu.h.

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

◆ PatchSuffix

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

Any textual suffix on the patch number.

Definition at line 174 of file Gnu.h.

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

◆ Text


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