projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Separate out the tests for whether the compiler suports R-value
[oota-llvm.git]
/
include
/
llvm
/
Support
/
DynamicLibrary.h
diff --git
a/include/llvm/Support/DynamicLibrary.h
b/include/llvm/Support/DynamicLibrary.h
index 04100cd891ae7ba83527cc5ee59f1ccf3b405a98..0f59cbf23947d132f26804c2e5b410a0ef63854b 100644
(file)
--- a/
include/llvm/Support/DynamicLibrary.h
+++ b/
include/llvm/Support/DynamicLibrary.h
@@
-17,6
+17,9
@@
#include <string>
namespace llvm {
#include <string>
namespace llvm {
+
+class StringRef;
+
namespace sys {
/// This class provides a portable interface to dynamic libraries which also
namespace sys {
/// This class provides a portable interface to dynamic libraries which also
@@
-32,13
+35,18
@@
namespace sys {
/// Note: there is currently no interface for temporarily loading a library,
/// or for unloading libraries when the LLVM library is unloaded.
class DynamicLibrary {
/// Note: there is currently no interface for temporarily loading a library,
/// or for unloading libraries when the LLVM library is unloaded.
class DynamicLibrary {
+ // Placeholder whose address represents an invalid library.
+ // We use this instead of NULL or a pointer-int pair because the OS library
+ // might define 0 or 1 to be "special" handles, such as "search all".
+ static char Invalid;
+
// Opaque data used to interface with OS-specific dynamic library handling.
void *Data;
// Opaque data used to interface with OS-specific dynamic library handling.
void *Data;
- explicit DynamicLibrary(void *data =
0
) : Data(data) {}
+ explicit DynamicLibrary(void *data =
&Invalid
) : Data(data) {}
public:
/// Returns true if the object refers to a valid library.
public:
/// Returns true if the object refers to a valid library.
- bool isValid() { return Data !=
0
; }
+ bool isValid() { return Data !=
&Invalid
; }
/// Searches through the library for the symbol \p symbolName. If it is
/// found, the address of that symbol is returned. If not, NULL is returned.
/// Searches through the library for the symbol \p symbolName. If it is
/// found, the address of that symbol is returned. If not, NULL is returned.