summaryrefslogtreecommitdiff
path: root/odb/error.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/error.cxx')
-rw-r--r--odb/error.cxx78
1 files changed, 78 insertions, 0 deletions
diff --git a/odb/error.cxx b/odb/error.cxx
index 5dab2a9..05a30ca 100644
--- a/odb/error.cxx
+++ b/odb/error.cxx
@@ -3,6 +3,7 @@
// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
// license : GNU GPL v3; see accompanying LICENSE file
+#include <odb/gcc.hxx>
#include <odb/error.hxx>
using namespace std;
@@ -10,12 +11,32 @@ using namespace std;
std::ostream&
error (cutl::fs::path const& p, size_t line, size_t clmn)
{
+ //@@ We only need to do this if we are still parsing (i.e.,
+ // pragma parsing). Is there a way to detect this?
+ //
errorcount++;
+
cerr << p << ':' << line << ':' << clmn << ": error: ";
return cerr;
}
std::ostream&
+warn (cutl::fs::path const& p, size_t line, size_t clmn)
+{
+ warningcount++;
+
+ cerr << p << ':' << line << ':' << clmn << ": warning: ";
+ return cerr;
+}
+
+std::ostream&
+info (cutl::fs::path const& p, size_t line, size_t clmn)
+{
+ cerr << p << ':' << line << ':' << clmn << ": info: ";
+ return cerr;
+}
+
+std::ostream&
error (location_t loc)
{
errorcount++;
@@ -25,3 +46,60 @@ error (location_t loc)
<< " error: ";
return cerr;
}
+
+std::ostream&
+warn (location_t loc)
+{
+ warningcount++;
+ cerr << LOCATION_FILE (loc) << ':'
+ << LOCATION_LINE (loc) << ':'
+ << LOCATION_COLUMN (loc) << ':'
+ << " warning: ";
+ return cerr;
+}
+
+std::ostream&
+info (location_t loc)
+{
+ cerr << LOCATION_FILE (loc) << ':'
+ << LOCATION_LINE (loc) << ':'
+ << LOCATION_COLUMN (loc) << ':'
+ << " info: ";
+ return cerr;
+}
+
+std::ostream&
+error ()
+{
+ return error (input_location);
+}
+
+std::ostream&
+warn ()
+{
+ return warn (input_location);
+}
+
+std::ostream&
+info ()
+{
+ return info (input_location);
+}
+
+cutl::fs::path
+location_file (location_t loc)
+{
+ return cutl::fs::path (LOCATION_FILE (loc));
+}
+
+size_t
+location_line (location_t loc)
+{
+ return LOCATION_LINE (loc);
+}
+
+size_t
+location_column (location_t loc)
+{
+ return LOCATION_COLUMN (loc);
+}