aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Support
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Support')
-rw-r--r--include/llvm/Support/DataTypes.h18
-rw-r--r--include/llvm/Support/NonCopyable.h37
-rw-r--r--include/llvm/Support/Unique.h56
3 files changed, 50 insertions, 61 deletions
diff --git a/include/llvm/Support/DataTypes.h b/include/llvm/Support/DataTypes.h
index 84b8a65..2f69479 100644
--- a/include/llvm/Support/DataTypes.h
+++ b/include/llvm/Support/DataTypes.h
@@ -1,3 +1,16 @@
+//===-- include/Support/DataTypes.h - Define fixed size types ----*- C++ -*--=//
+//
+// This file contains definitions to figure out the size of _HOST_ data types.
+// This file is important because different host OS's define different macros,
+// which makes portability tough. This file exports the following definitions:
+//
+// LITTLE_ENDIAN: is #define'd if the host is little endian
+// int64_t : is a typedef for the signed 64 bit system type
+// uint64_t : is a typedef for the unsigned 64 bit system type
+//
+// No library is required when using these functinons.
+//
+//===----------------------------------------------------------------------===//
// TODO: This file sucks. Not only does it not work, but this stuff should be
// autoconfiscated anyways. Major FIXME
@@ -6,11 +19,6 @@
#ifndef LLVM_SUPPORT_DATATYPES_H
#define LLVM_SUPPORT_DATATYPES_H
-// Should define the following:
-// LITTLE_ENDIAN if applicable
-// int64_t
-// uint64_t
-
#ifdef LINUX
#include <stdint.h> // Defined by ISO C 99
#include <endian.h>
diff --git a/include/llvm/Support/NonCopyable.h b/include/llvm/Support/NonCopyable.h
new file mode 100644
index 0000000..f4fc268
--- /dev/null
+++ b/include/llvm/Support/NonCopyable.h
@@ -0,0 +1,37 @@
+//===-- NonCopyable.h - Disable copy ctor and op= in subclasses --*- C++ -*--=//
+//
+// This file defines the NonCopyable and NonCopyableV classes. These mixin
+// classes may be used to mark a class not being copyable. You should derive
+// from NonCopyable if you don't want to have a virtual dtor, or NonCopyableV
+// if you do want polymorphic behavior in your class.
+//
+// No library is required when using these functinons.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_NONCOPYABLE_H
+#define LLVM_SUPPORT_NONCOPYABLE_H
+
+class NonCopyable {
+ // Disable the copy constructor and the assignment operator
+ // by making them both private:
+ //
+ NonCopyable(const NonCopyable &); // DO NOT IMPLEMENT
+ NonCopyable &operator=(const NonCopyable &); // DO NOT IMPLEMENT
+protected:
+ inline NonCopyable() {}
+ inline ~NonCopyable() {}
+};
+
+class NonCopyableV {
+ // Disable the copy constructor and the assignment operator
+ // by making them both private:
+ //
+ NonCopyableV(const NonCopyableV &); // DO NOT IMPLEMENT
+ NonCopyableV &operator=(const NonCopyableV &); // DO NOT IMPLEMENT
+protected:
+ inline NonCopyableV() {}
+ virtual ~NonCopyableV() {}
+};
+
+#endif
diff --git a/include/llvm/Support/Unique.h b/include/llvm/Support/Unique.h
deleted file mode 100644
index 2219553..0000000
--- a/include/llvm/Support/Unique.h
+++ /dev/null
@@ -1,56 +0,0 @@
-//************************************************************-*- C++ -*-
-// class Unique:
-// Mixin class for classes that should never be copied.
-//
-// Purpose:
-// This mixin disables both the copy constructor and the
-// assignment operator. It also provides a default equality operator.
-//
-// History:
-// 09/24/96 - vadve - Created (adapted from dHPF).
-//
-//***************************************************************************
-
-#ifndef UNIQUE_H
-#define UNIQUE_H
-
-#include <assert.h>
-
-
-class Unique
-{
-protected:
- /*ctor*/ Unique () {}
- /*dtor*/ virtual ~Unique () {}
-
-public:
- virtual bool operator== (const Unique& u1) const;
- virtual bool operator!= (const Unique& u1) const;
-
-private:
- //
- // Disable the copy constructor and the assignment operator
- // by making them both private:
- //
- /*ctor*/ Unique (Unique&) { assert(0); }
- virtual Unique& operator= (const Unique& u1) { assert(0);
- return *this; }
-};
-
-
-// Unique object equality.
-inline bool
-Unique::operator==(const Unique& u2) const
-{
- return (bool) (this == &u2);
-}
-
-
-// Unique object inequality.
-inline bool
-Unique::operator!=(const Unique& u2) const
-{
- return (bool) !(this == &u2);
-}
-
-#endif