aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-04 17:47:18 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-04 17:47:18 +0000
commitfb79f7cc00f9c1e04f11ed636eefb36d246b0fb8 (patch)
treeddc44a76013eed4792dead9ee6581ad531e5d524 /include/clang/Basic
parent16d81566604ca44ef8e71a6807e16944223e5ace (diff)
TargetInfo objects now own the TargetInfoImpl objects they refer to.
TargetInfo::AddSecondaryTarget is now private, as it is only used during object construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47891 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic')
-rw-r--r--include/clang/Basic/TargetInfo.h15
1 files changed, 7 insertions, 8 deletions
diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h
index 6d4147c353..0550e51e82 100644
--- a/include/clang/Basic/TargetInfo.h
+++ b/include/clang/Basic/TargetInfo.h
@@ -38,9 +38,6 @@ namespace Builtin { struct Info; }
/// target, it will warn the first time the size of the 'long' datatype is
/// queried.
///
-/// Note that TargetInfo does not take ownership of the various targets or the
-/// diagnostic info, but does expect them to be alive for as long as it is.
-///
class TargetInfo {
/// Primary - This tracks the primary target in the target set.
///
@@ -75,6 +72,11 @@ class TargetInfo {
WCharWidth = 0;
}
+ /// AddSecondaryTarget - Add a secondary target to the target set.
+ void AddSecondaryTarget(const TargetInfoImpl *Secondary) {
+ SecondaryTargets.push_back(Secondary);
+ }
+
public:
/// CreateTargetInfo - Create a TargetInfo object from a group of
/// target triples. The first target triple is considered the primary
@@ -83,6 +85,8 @@ public:
const std::string* TripledEnd,
Diagnostic* Diags = NULL);
+ ~TargetInfo();
+
//==----------------------------------------------------------------==/
// Accessors.
//==----------------------------------------------------------------==/
@@ -99,11 +103,6 @@ public:
return !NonPortable;
}
- /// AddSecondaryTarget - Add a secondary target to the target set.
- void AddSecondaryTarget(const TargetInfoImpl *Secondary) {
- SecondaryTargets.push_back(Secondary);
- }
-
///===---- Target property query methods --------------------------------===//
/// DiagnoseNonPortability - Emit a diagnostic indicating that the current