aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
index def406a4b7..2f3469ca85 100644
--- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
@@ -213,6 +213,8 @@ GenericValue lle_X_floor(FunctionType *M, const vector<GenericValue> &Args) {
return GV;
}
+#ifdef HAVE_RAND48
+
// double drand48()
GenericValue lle_X_drand48(FunctionType *M, const vector<GenericValue> &Args) {
assert(Args.size() == 0);
@@ -236,6 +238,16 @@ GenericValue lle_X_srand48(FunctionType *M, const vector<GenericValue> &Args) {
return GenericValue();
}
+#endif
+
+// int rand()
+GenericValue lle_X_rand(FunctionType *M, const vector<GenericValue> &Args) {
+ assert(Args.size() == 0);
+ GenericValue GV;
+ GV.IntVal = rand();
+ return GV;
+}
+
// void srand(uint)
GenericValue lle_X_srand(FunctionType *M, const vector<GenericValue> &Args) {
assert(Args.size() == 1);
@@ -676,9 +688,12 @@ void Interpreter::initializeExternalFunctions() {
FuncNames["lle_X_log"] = lle_X_log;
FuncNames["lle_X_floor"] = lle_X_floor;
FuncNames["lle_X_srand"] = lle_X_srand;
+ FuncNames["lle_X_rand"] = lle_X_rand;
+#ifdef HAVE_RAND48
FuncNames["lle_X_drand48"] = lle_X_drand48;
FuncNames["lle_X_srand48"] = lle_X_srand48;
FuncNames["lle_X_lrand48"] = lle_X_lrand48;
+#endif
FuncNames["lle_X_sqrt"] = lle_X_sqrt;
FuncNames["lle_X_puts"] = lle_X_puts;
FuncNames["lle_X_printf"] = lle_X_printf;