Procházet zdrojové kódy

Small patch to handle -Wfloat-equal warnings

https://groups.google.com/d/msg/protobuf/H8_D1hfg3p4/A2oPHdfUAgAJ
senhalil před 6 roky
rodič
revize
97e7ddc015
1 změnil soubory, kde provedl 4 přidání a 0 odebrání
  1. 4 0
      src/google/protobuf/compiler/cpp/cpp_message.cc

+ 4 - 0
src/google/protobuf/compiler/cpp/cpp_message.cc

@@ -177,6 +177,10 @@ bool EmitFieldNonDefaultCondition(io::Printer* printer,
     } else if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
       // Message fields still have has_$name$() methods.
       format("if ($prefix$has_$name$()) {\n");
+    } else if (field->cpp_type() == FieldDescriptor::CPPTYPE_DOUBLE 
+               || field->cpp_type() == FieldDescriptor::CPPTYPE_FLOAT) {
+      // Handle float comparison to prevent -Wfloat-equal warnings
+      format("if (!($prefix$$name$() <= 0 && $prefix$$name$() >= 0)) {\n");
     } else {
       format("if ($prefix$$name$() != 0) {\n");
     }