ilovepi wrote:

I think we're seeing some build failures after this patch, and it isn't clear 
to me that this is a bug in the source, so I'd appreciate it if you could take 
a look.

```
FAILED: 
obj/src/media/audio/tools/signal_generator/signal_generator.signal_generator.cc.o
 
../../prebuilt/third_party/clang/custom/bin/clang++ -MD -MF 
obj/src/media/audio/tools/signal_generator/signal_generator.signal_generator.cc.o.d
 -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS 
-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES 
-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -DZX_ASSERT_LEVEL=2 -I../.. -Igen 
-Ifidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.hardware.audio.signalprocessing/fuchsia.hardware.audio.signalprocessing/hlcpp
 -I../../sdk -Igen/sdk -I../../sdk/lib/fidl_base/include 
-I../../src/zircon/lib/zircon/include 
-Ifidling/gen/zircon/vdso/zx/zither/legacy_syscall_cdecl 
-I../../sdk/lib/fit/include -I../../sdk/lib/stdcompat/include 
-I../../sdk/lib/fit-promise/include -I../../sdk/lib/fidl/include 
-I../../zircon/system/ulib/zx/include -I../../zircon/system/ulib/async/include 
-I../../zircon/system/ulib/async-default/include 
-Ifidling/gen/sdk/fidl/fuchsia.images/fuchsia.images/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.sysmem/fuchsia.sysmem/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.io/fuchsia.io/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.unknown/fuchsia.unknown/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.images2/fuchsia.images2/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.math/fuchsia.math/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.media.audio/fuchsia.media.audio/hlcpp 
-Ifidling/gen/sdk/fidl/fuchsia.ultrasound/fuchsia.ultrasound/hlcpp 
-I../../sdk/lib/fidl/cpp/wire/include -I../../zircon/system/ulib/sync/include 
-I../../sdk/lib/fdio/include -I../../zircon/system/public 
-I../../zircon/system/ulib/fbl/include 
-I../../third_party/googletest/src/googletest/include 
-I../../zircon/system/ulib/affine/include 
-I../../zircon/system/ulib/zircon-internal/include -I../../third_party/re2/src 
-I../../zircon/system/ulib/async-loop/include 
-I../../zircon/system/ulib/fzl/include -fcolor-diagnostics 
-fcrash-diagnostics-dir=clang-crashreports -fcrash-diagnostics=all 
-gen-reproducer=error -ffp-contract=off --sysroot=gen/zircon/public/sysroot/cpp 
--target=x86_64-unknown-fuchsia -ffuchsia-api-level=4294967295 -march=x86-64-v2 
-mtune=generic -mbranches-within-32B-boundaries -ffile-compilation-dir=. 
-no-canonical-prefixes -fno-omit-frame-pointer -momit-leaf-frame-pointer 
-fdata-sections -ffunction-sections -O0 -Xclang -debug-info-kind=constructor 
-g3 -grecord-gcc-switches -gdwarf-5 -gz=zstd -Wall -Wextra -Wconversion 
-Wextra-semi -Wimplicit-fallthrough -Wnewline-eof -Wstrict-prototypes 
-Wwrite-strings -Wno-sign-conversion -Wno-unused-parameter 
-Wnonportable-system-include-path -Wno-missing-field-initializers 
-Wno-extra-qualification -Wno-cast-function-type-strict 
-Wno-cast-function-type-mismatch -Wno-unknown-warning-option 
-Wno-deprecated-pragma -fvisibility=hidden -Werror -Wa,--fatal-warnings 
-ftrivial-auto-var-init=pattern -Wthread-safety -Wno-unknown-warning-option 
-Wno-thread-safety-reference-return -Wno-undef -fvisibility-inlines-hidden 
-std=c++17 -fno-exceptions -fno-rtti -ftemplate-backtrace-limit=0 -c 
../../src/media/audio/tools/signal_generator/signal_generator.cc -o 
obj/src/media/audio/tools/signal_generator/signal_generator.signal_generator.cc.o
In file included from 
../../src/media/audio/tools/signal_generator/signal_generator.cc:4:
In file included from 
../../src/media/audio/tools/signal_generator/signal_generator.h:7:
In file included from 
fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h:6:
In file included from ../../sdk/lib/fidl/cpp/internal/header.h:11:
In file included from ../../sdk/lib/fit/include/lib/fit/function.h:9:
In file included from 
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/memory:937:
In file included from 
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/shared_ptr.h:32:
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:627:10:
 error: no matching conversion for functional-style cast from 'double *' to 
'unique_ptr<double[][4]>'
  627 |   return unique_ptr<_Tp>(new _Up[__n]());
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/media/audio/tools/signal_generator/signal_generator.cc:803:25: note: 
in instantiation of function template specialization 
'std::make_unique<double[][4]>' requested here
  803 |   input_history_ = std::make_unique<HistoryBuffer[]>(num_channels_);
      |                         ^
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:125:59:
 note: candidate constructor (the implicit copy constructor) not viable: no 
known conversion from 'double *' to 'const unique_ptr<double[][4]>' for 1st 
argument
  125 | class _LIBCPP_UNIQUE_PTR_TRIVIAL_ABI _LIBCPP_TEMPLATE_VIS unique_ptr {
      |                                                           ^~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:355:43:
 note: candidate constructor template not viable: no known conversion from 
'double *' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  355 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR unique_ptr(nullptr_t) 
_NOEXCEPT
      |                                           ^          ~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:397:55:
 note: candidate constructor not viable: no known conversion from 'double *' to 
'unique_ptr<double[][4]>' for 1st argument
  397 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 
unique_ptr(unique_ptr&& __u) _NOEXCEPT
      |                                                       ^          
~~~~~~~~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:362:64:
 note: candidate template ignored: requirement 
'_CheckArrayPointerConversion<double *>::value' was not satisfied [with _Pp = 
double *, _Dummy = true, $2 = _EnableIfDeleterDefaultConstructible<true>]
  362 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 explicit 
unique_ptr(_Pp __p) _NOEXCEPT
      |                                                                ^
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:410:55:
 note: candidate template ignored: could not match 'unique_ptr<_Up, _Ep>' 
against 'double *'
  410 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 
unique_ptr(unique_ptr<_Up, _Ep>&& __u) _NOEXCEPT
      |                                                       ^
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:352:43:
 note: candidate constructor template not viable: requires 0 arguments, but 1 
was provided
  352 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR unique_ptr() _NOEXCEPT : 
__ptr_(__value_init_tag(), __value_init_tag()) {}
      |                                           ^
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:369:55:
 note: candidate constructor template not viable: requires 2 arguments, but 1 
was provided
  369 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr(_Pp 
__p, _LValRefType<_Dummy> __d) _NOEXCEPT
      |                                                       ^          
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:373:55:
 note: candidate constructor template not viable: requires 2 arguments, but 1 
was provided
  373 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 
unique_ptr(nullptr_t, _LValRefType<_Dummy> __d) _NOEXCEPT
      |                                                       ^          
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:380:55:
 note: candidate constructor template not viable: requires 2 arguments, but 1 
was provided
  380 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr(_Pp 
__p, _GoodRValRefType<_Dummy> __d) _NOEXCEPT
      |                                                       ^          
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:386:55:
 note: candidate constructor template not viable: requires 2 arguments, but 1 
was provided
  386 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 
unique_ptr(nullptr_t, _GoodRValRefType<_Dummy> __d) _NOEXCEPT
      |                                                       ^          
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../prebuilt/third_party/clang/custom/bin/../include/c++/v1/__memory/unique_ptr.h:395:25:
 note: candidate constructor template not viable: requires 2 arguments, but 1 
was provided
  395 |   _LIBCPP_HIDE_FROM_ABI unique_ptr(_Pp __p, _BadRValRefType<_Dummy> 
__d) = delete;
      |                         ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
The type in question is defined as
 `typedef double HistoryBuffer[4]`. This code has been working correctly for 
almost 4 years.

Here's a reproducer from -gen-reproducer=always`, though it isn't reduced.
[repro.zip](https://github.com/llvm/llvm-project/files/15081117/repro.zip)

Failing bot: 
https://ci.chromium.org/ui/p/fuchsia/builders/ci/clang_toolchain.ci.core.x64-debug-tot-build_only/b8749851620110598913/overview

Would you mind taking a look, since this doesn't appear to be a source issue 
(at least not from my quick reading).

https://github.com/llvm/llvm-project/pull/89036
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to