Revert (and fix properly) "Uninitialize the file descriptor."
authorMircea Trofin <mtrofin@google.com>
Thu, 2 Feb 2023 01:39:34 +0000 (17:39 -0800)
committerMircea Trofin <mtrofin@google.com>
Thu, 2 Feb 2023 01:44:47 +0000 (17:44 -0800)
This reverts commit f514b0e144db063931d19a8ebc2dc42083d0eb2f.

The culprit is that InEC is initialized before Inbound, and Inbound's
initialization happens through a call to openFileForRead. However, the
typical initialization order warnings don't fire; so the behavior was:
Inbound is initialized correctly by openFileForRead; then it's reset to
whatever initializer value (0 originally).

A fix is to move Inbound's decl upfront. I'd still prefer initializing
it to something - and -1 seems like a more appropriate value (it causes
a fail-fast rather than a hang due to trying to read from a
valid-looking but unopen fd).

llvm/include/llvm/Analysis/InteractiveModelRunner.h

index 16fc0982ce5e53f0da3f6b953842e8b8d09ace62..a35e06df09a1620024fb374249168f723821fcdb 100644 (file)
@@ -57,11 +57,13 @@ public:
 
 private:
   void *evaluateUntyped() override;
+  // This must be declared before InEC if we want to initialize it in the
+  // ctor initializer list.
+  int Inbound = -1;
   const std::vector<TensorSpec> InputSpecs;
   const TensorSpec OutputSpec;
   std::error_code OutEC;
   std::error_code InEC;
-  int Inbound;
   std::vector<char> OutputBuffer;
   std::unique_ptr<Logger> Log;
 };