Open msqr1 opened 1 month ago
I'm not sure why you mean by "pointer can definitely be converted to a unique_ptr implicitly". It seem like you would need to call make_unique
or something like that, no?
$ cat test.cc
#include <memory>
using namespace std;
struct Foo {
};
int foo(unique_ptr<Foo> f) {
return 0;
}
int main() {
Foo* f;
foo(f);
return 0;
}
$ g++ test.cc
test.cc: In function ‘int main()’:
test.cc:14:7: error: could not convert ‘f’ from ‘Foo*’ to ‘std::unique_ptr<Foo>’
14 | foo(f);
| ^
| |
| Foo*
Then why would older version like 3.1.59 work?
I don't have any ideas I'm afraid. Perhaps bisecting would give us a clue?
Well, I don't know if the error is in emscripten or not? Surely this should be in LLVM?
Please include the following in your bug report: I am build vosk, so I need openfst 1.8.0. I can build it smoothly with 3.1.59, but not with 3.1.60 Version of emscripten/emsdk: 3.1.60 Please include the output
emcc -v
here: I'm using emconfigure and emmakeFailing command line in full:
Removing all of the flags except O3 doesn't change anything, so the flags aren't the cause. Output:
This seems like a C++23/upstream LLVM error. Specifically, something that always been known to work just doesn't:
no known conversion from 'SymbolTable *' to 'const unique_ptr<SymbolTable>' for 1st argument
. Like a pointer can definitely be converted to a unique_ptr implicitly.