aboutsummaryrefslogtreecommitdiff
path: root/examples/BrainF/BrainFDriver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/BrainF/BrainFDriver.cpp')
-rw-r--r--examples/BrainF/BrainFDriver.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/examples/BrainF/BrainFDriver.cpp b/examples/BrainF/BrainFDriver.cpp
index 57a86fbf5212..65f8033a7e27 100644
--- a/examples/BrainF/BrainFDriver.cpp
+++ b/examples/BrainF/BrainFDriver.cpp
@@ -77,7 +77,7 @@ void addMainFunction(Module *mod) {
getOrInsertFunction("main", IntegerType::getInt32Ty(mod->getContext()),
IntegerType::getInt32Ty(mod->getContext()),
PointerType::getUnqual(PointerType::getUnqual(
- IntegerType::getInt8Ty(mod->getContext()))), NULL));
+ IntegerType::getInt8Ty(mod->getContext())))));
{
Function::arg_iterator args = main_func->arg_begin();
Value *arg_0 = &*args++;
@@ -166,6 +166,10 @@ int main(int argc, char **argv) {
std::vector<GenericValue> args;
Function *brainf_func = M.getFunction("brainf");
GenericValue gv = ee->runFunction(brainf_func, args);
+ // Genereated code calls putchar, and output is not guaranteed without fflush.
+ // The better place for fflush(stdout) call would be the generated code, but it
+ // is unmanageable because stdout linkage name depends on stdlib implementation.
+ fflush(stdout);
} else {
WriteBitcodeToFile(Mod.get(), *out);
}