Your diff works well for me too, thanks !



Le dimanche 3 décembre 2023 à 5:19 PM, Rafael Sadowski <raf...@sizeofvoid.org> 
a écrit :


> 
> 
> On Sun Dec 03, 2023 at 12:33:30PM +0000, Stuart Henderson wrote:
> 
> > Could it be this?
> > 
> > https://bugreports.qt.io/plugins/servlet/mobile#issue/QBS-1684/comment/640130
> > 
> > Franz Jung
> > Added 26 Jan '23 09:38
> > 
> > Clang >= 13
> > Opitmizes the JSC::ExecState::removeHostCallFrameFlag and
> > JSC::ExecState::hasHostCallFrameFlag calls away (file
> > qtscript/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h)
> > Thats the reason why an 0x1 pointer instead of an nullptr gets propagated
> > around.
> > 
> > so if you change these to static member funtctions instead of non-static to
> > remove/check for HostCallFrame it should work.
> > 
> > see https://github.com/llvm/llvm-project/issues/60294
> 
> 
> Interesting. When I use static I ran in other compile issues with auto_ptr.
> So I tried:
> 
> 
> Index: src/3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h
> --- src/3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h.orig
> +++ src/3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h
> @@ -135,9 +135,11 @@ namespace JSC {
> static CallFrame* noCaller() { return 
> reinterpret_cast<CallFrame*>(HostCallFrameFlag); }
> 
> int returnValueRegister() const { return 
> this[RegisterFile::ReturnValueRegister].i(); }
> 
> +#pragma clang optimize off
> bool hasHostCallFrameFlag() const { return reinterpret_cast<intptr_t>(this) & 
> HostCallFrameFlag; }
> 
> CallFrame* addHostCallFrameFlag() const { return 
> reinterpret_cast<CallFrame*>(reinterpret_cast<intptr_t>(this) | 
> HostCallFrameFlag); }
> 
> CallFrame* removeHostCallFrameFlag() { return 
> reinterpret_cast<CallFrame*>(reinterpret_cast<intptr_t>(this) & 
> ~HostCallFrameFlag); }
> 
> +#pragma clang optimize on
> 
> private:
> void setArgumentCount(int count) { 
> static_cast<Register*>(this)[RegisterFile::ArgumentCount] = 
> Register::withInt(count); }
> 
> 
> This patch above compiles and qcad starts with an dialog but then an
> error message appears:
> 
> QCAD version 3.27.9
> 17:15:40: Debug: loading plugins...
> 17:15:40: Debug: loading static plugins...
> Warning: Qt WebEngine seems to be initialized from a plugin. Please set 
> Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute before 
> constructing QGuiApplication.
> 17:15:41: Debug: Renaming old unversioned config file from 
> '/home/rsadowski/.config/QCAD/QCAD3.conf' to 
> '/home/rsadowski/.config/QCAD/QCAD3_old.conf'
> Warning: RScriptHandlerEcma::eval: script engine exception: "TypeError: 
> Result of expression 'paperSize.width' [undefined] is not a function."
> Warning: "<anonymous>() at 
> /usr/local/share/qcad/scripts/Widgets/FirstStart/FirstStart.js:151\nmain() at 
> scripts/autostart.js:584\n<global>() at scripts/autostart.js:859"
> 
> Warning: At least one uncaught exception:
> Warning: "<anonymous>() at 
> /usr/local/share/qcad/scripts/Widgets/FirstStart/FirstStart.js:151\nmain() at 
> scripts/autostart.js:584\n<global>() at scripts/autostart.js:859"
> 
> 17:15:43: Debug: "<global>() at 151"
> 
> 
> (no coredump)
> 
> 
> which is funny, because now this error also appears with the "-O0"
> version. I will analyze this later.

Reply via email to