Instead of adding stdlib we just prototype malloc correctly.
[oota-llvm.git] / tools / llvm-as / as.cpp
index 36f845687838cd1fafa77b588b30244157dc8ebb..c9bd3b4e08c05a6d7bc5ebb71b66a1fdb40d5216 100644 (file)
@@ -12,6 +12,7 @@
 #include "llvm/Module.h"
 #include "llvm/Assembly/Parser.h"
 #include "llvm/Bytecode/Writer.h"
+#include "llvm/Analysis/Verifier.h"
 #include "Support/CommandLine.h"
 #include "Support/Signals.h"
 #include <fstream>
@@ -40,16 +41,23 @@ int main(int argc, char **argv) {
     // Parse the file now...
     std::auto_ptr<Module> M(ParseAssemblyFile(InputFilename));
     if (M.get() == 0) {
-      cerr << "assembly didn't read correctly.\n";
+      cerr << argv[0] << ": assembly didn't read correctly.\n";
       return 1;
     }
+
+    if (verifyModule(*M.get())) {
+      cerr << argv[0] << ": assembly parsed, but does not verify as correct!\n";
+      return 1;
+    }
+
   
     if (DumpAsm) cerr << "Here's the assembly:\n" << M.get();
 
     if (OutputFilename != "") {   // Specified an output filename?
       if (!Force && std::ifstream(OutputFilename.c_str())) {
         // If force is not specified, make sure not to overwrite a file!
-        cerr << "Error opening '" << OutputFilename << "': File exists!\n"
+        cerr << argv[0] << ": error opening '" << OutputFilename
+             << "': file exists!\n"
              << "Use -f command line argument to force output\n";
         return 1;
       }
@@ -71,7 +79,8 @@ int main(int argc, char **argv) {
 
         if (!Force && std::ifstream(OutputFilename.c_str())) {
           // If force is not specified, make sure not to overwrite a file!
-          cerr << "Error opening '" << OutputFilename << "': File exists!\n"
+          cerr << argv[0] << ": error opening '" << OutputFilename
+               << "': file exists!\n"
                << "Use -f command line argument to force output\n";
           return 1;
         }
@@ -84,13 +93,13 @@ int main(int argc, char **argv) {
     }
   
     if (!Out->good()) {
-      cerr << "Error opening " << OutputFilename << "!\n";
+      cerr << argv[0] << ": error opening " << OutputFilename << "!\n";
       return 1;
     }
    
     WriteBytecodeToFile(M.get(), *Out);
   } catch (const ParseException &E) {
-    cerr << E.getMessage() << std::endl;
+    cerr << argv[0] << ": " << E.getMessage() << "\n";
     return 1;
   }