about summary refs log tree commit diff
path: root/third_party/nix/src/libexpr
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-07-19T20·52+0100
committertazjin <mail@tazj.in>2020-07-19T22·00+0000
commit15afa8472e1b1bbf236d4cf8e9f399345c48d3fe (patch)
tree88e475abad625ea4fed00525ab7d2ff882238a59 /third_party/nix/src/libexpr
parentca50fb66d26a589dbc2935de68d95716b595a07a (diff)
fix(3p/nix): Fix all remaining compiler warnings r/1403
This compiles under `-Wall -Werror`.

The largest chunk of this change is `final` qualifiers for the various
Nix CLI command structs, which inherit from a Command class that has
more virtual functions than are implemented by each command.

Change-Id: I0925e6e1a39013f026773db5816e4a77d50f3b4a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1294
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Diffstat (limited to 'third_party/nix/src/libexpr')
-rw-r--r--third_party/nix/src/libexpr/eval.cc1
-rw-r--r--third_party/nix/src/libexpr/parser.hh11
-rw-r--r--third_party/nix/src/libexpr/parser.y5
-rw-r--r--third_party/nix/src/libexpr/primops.cc2
4 files changed, 15 insertions, 4 deletions
diff --git a/third_party/nix/src/libexpr/eval.cc b/third_party/nix/src/libexpr/eval.cc
index 704a05b197..5f267f2053 100644
--- a/third_party/nix/src/libexpr/eval.cc
+++ b/third_party/nix/src/libexpr/eval.cc
@@ -1252,7 +1252,6 @@ void EvalState::concatLists(Value& v, const NixList& lists, const Pos& pos) {
 
   auto outlist = new (GC) NixList();
 
-  size_t len = 0;
   for (Value* list : lists) {
     forceList(*list, pos);
     outlist->insert(outlist->end(), list->list->begin(), list->list->end());
diff --git a/third_party/nix/src/libexpr/parser.hh b/third_party/nix/src/libexpr/parser.hh
index 7592e3f82c..7b8f955731 100644
--- a/third_party/nix/src/libexpr/parser.hh
+++ b/third_party/nix/src/libexpr/parser.hh
@@ -34,6 +34,15 @@ struct ParseData : public gc {
         sLetBody(symbols.Create("<let-body>")){};
 };
 
+// Clang fails to identify these functions as used, probably because
+// of some interaction between the lexer/parser codegen and something
+// else.
+//
+// To avoid warnings for that we disable -Wunused-function in this block.
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-function"
+
 // TODO(tazjin): move dupAttr to anonymous namespace
 static void dupAttr(const AttrPath& attrPath, const Pos& pos,
                     const Pos& prevPos) {
@@ -85,4 +94,6 @@ static Expr* unescapeStr(SymbolTable& symbols, const char* s, size_t length) {
   return new ExprString(symbols.Create(t));
 }
 
+#pragma clang diagnostic pop  // re-enable -Wunused-function
+
 }  // namespace nix
diff --git a/third_party/nix/src/libexpr/parser.y b/third_party/nix/src/libexpr/parser.y
index 56674ee7ed..9998721488 100644
--- a/third_party/nix/src/libexpr/parser.y
+++ b/third_party/nix/src/libexpr/parser.y
@@ -11,7 +11,10 @@
 %expect 1
 %expect-rr 1
 
-%code requires { #include "libexpr/parser.hh" }
+%code requires {
+#define YY_NO_INPUT 1 // disable unused yyinput features
+#include "libexpr/parser.hh"
+}
 
 %{
 
diff --git a/third_party/nix/src/libexpr/primops.cc b/third_party/nix/src/libexpr/primops.cc
index fcd6914424..107cacb963 100644
--- a/third_party/nix/src/libexpr/primops.cc
+++ b/third_party/nix/src/libexpr/primops.cc
@@ -1680,8 +1680,6 @@ static void prim_partition(EvalState& state, const Pos& pos, Value** args,
   state.forceFunction(*args[0], pos);
   state.forceList(*args[1], pos);
 
-  auto len = args[1]->listSize();
-
   NixList* right = new (GC) NixList();
   NixList* wrong = new (GC) NixList();