aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/cpp/cpp_message.cc
diff options
context:
space:
mode:
authorGravatar kenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-10-30 22:02:17 +0000
committerGravatar kenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-10-30 22:02:17 +0000
commit573989f7828809e8fe615a1ee9d9657a379958d9 (patch)
tree83d5005b7d500859fac873f3fb7433e6a397b6e3 /src/google/protobuf/compiler/cpp/cpp_message.cc
parent1a4193c2cbf1b076384363de0394a14637402643 (diff)
Explicitly call superclass constructor in generated code to avoid pedantic warning. Based on patch from Oleg Smolsky.
Diffstat (limited to 'src/google/protobuf/compiler/cpp/cpp_message.cc')
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_message.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/google/protobuf/compiler/cpp/cpp_message.cc b/src/google/protobuf/compiler/cpp/cpp_message.cc
index ae243dd9..eb836418 100644
--- a/src/google/protobuf/compiler/cpp/cpp_message.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_message.cc
@@ -833,12 +833,17 @@ GenerateSharedDestructorCode(io::Printer* printer) {
void MessageGenerator::
GenerateStructors(io::Printer* printer) {
+ string superclass = HasDescriptorMethods(descriptor_->file()) ?
+ "Message" : "MessageLite";
+
// Generate the default constructor.
printer->Print(
- "$classname$::$classname$() {\n"
+ "$classname$::$classname$()\n"
+ " : $superclass$() {\n"
" SharedCtor();\n"
"}\n",
- "classname", classname_);
+ "classname", classname_,
+ "superclass", superclass);
printer->Print(
"\n"
@@ -868,12 +873,14 @@ GenerateStructors(io::Printer* printer) {
// Generate the copy constructor.
printer->Print(
- "$classname$::$classname$(const $classname$& from) {\n"
+ "$classname$::$classname$(const $classname$& from)\n"
+ " : $superclass$() {\n"
" SharedCtor();\n"
" MergeFrom(from);\n"
"}\n"
"\n",
- "classname", classname_);
+ "classname", classname_,
+ "superclass", superclass);
// Generate the shared constructor code.
GenerateSharedConstructorCode(printer);