https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120721

--- Comment #4 from Sam James <sjames at gcc dot gnu.org> ---
Hopefully it's C-isable:
```
template <int __v> struct integral_constant {
  static constexpr int value = __v;
};
template <bool __v> using __bool_constant = integral_constant<__v>;
template <bool> using enable_if_t = int;
struct function_ref {
  template <typename Callable>
  function_ref(
      Callable,
      enable_if_t<__bool_constant<__is_same(int, int)>::value> * = nullptr);
};
struct ArrayRef {
  int Data;
  long Length;
  int *begin();
  int *end();
};
struct StringRef {
  char Data;
  long Length;
};
void attributeObject(function_ref);
struct ScopedPrinter {
  virtual void printBinaryImpl(StringRef, StringRef, ArrayRef, bool, unsigned);
};
struct JSONScopedPrinter : ScopedPrinter {
  JSONScopedPrinter();
  void printBinaryImpl(StringRef, StringRef, ArrayRef Value, bool,
                       unsigned StartOffset) {
    attributeObject([&] {
      StartOffset;
      for (char Val : Value)
        ;
    });
  }
};
JSONScopedPrinter::JSONScopedPrinter() {}
```

Bisecting...

Reply via email to