THRIFT-2030 Thrift allows for inconsistent use of "oneway"

Patch: Jens Geyer
diff --git a/compiler/cpp/src/parse/t_function.h b/compiler/cpp/src/parse/t_function.h
index 0da2fd6..ae8c2f6 100644
--- a/compiler/cpp/src/parse/t_function.h
+++ b/compiler/cpp/src/parse/t_function.h
@@ -42,6 +42,9 @@
     arglist_(arglist),
     oneway_(oneway) {
     xceptions_ = new t_struct(NULL);
+    if (oneway_ && (! returntype_->is_void())) {
+      pwarning(1, "Oneway methods should return void.\n");
+    }
   }
 
   t_function(t_type* returntype,
@@ -58,6 +61,9 @@
     if (oneway_ && !xceptions_->get_members().empty()) {
       throw std::string("Oneway methods can't throw exceptions.");
     }
+    if (oneway_ && (! returntype_->is_void())) {
+      pwarning(1, "Oneway methods should return void.\n");
+    }
   }
 
   ~t_function() {}