Closed Bug 549207 Opened 14 years ago Closed 14 years ago

My local Windows 2000 build fails to compile in js/src/jshashtable.h

Categories

(Core :: JavaScript Engine, defect)

x86
Windows 2000
defect
Not set
blocker

Tracking

()

VERIFIED FIXED
mozilla1.9.3a4

People

(Reporter: sgautherie, Assigned: sayrer)

Details

(Keywords: regression, Whiteboard: [fixed by tracemonkey merge])

{
\js\src\jshashtable.h(81) : error C2248:
'js::HashMap<Key,Value,HashPolicy,AllocPolicy>::Entry::operator =' : cannot acce
ss private member declared in class 'js::HashMap<Key,Value,HashPolicy,AllocPolic
y>::Entry'
        with
        [
            Key=jsbytecode *,
            Value=size_t,
            HashPolicy=js::DefaultHasher<jsbytecode *>,
            AllocPolicy=js::SystemAllocPolicy
        ]
        \js\src\jshashtable.h(696) : see
declaration of 'js::HashMap<Key,Value,HashPolicy,AllocPolicy>::Entry::operator =
'
        with
        [
            Key=jsbytecode *,
            Value=size_t,
            HashPolicy=js::DefaultHasher<jsbytecode *>,
            AllocPolicy=js::SystemAllocPolicy
        ]
        \js\src\jshashtable.h(694) : see
declaration of 'js::HashMap<Key,Value,HashPolicy,AllocPolicy>::Entry'
        with
        [
            Key=jsbytecode *,
            Value=size_t,
            HashPolicy=js::DefaultHasher<jsbytecode *>,
            AllocPolicy=js::SystemAllocPolicy
        ]
        \js\src\jshashtable.h(81) : while
 compiling class template member function 'void js::detail::HashTable<T,HashPoli
cy,AllocPolicy>::Entry::setFree(void)'
        with
        [
            T=js::HashMap<jsbytecode *,size_t,js::DefaultHasher<jsbytecode *>,js
::SystemAllocPolicy>::Entry,
            HashPolicy=js::HashMap<jsbytecode *,size_t,js::DefaultHasher<jsbytec
ode *>,js::SystemAllocPolicy>::MapHashPolicy,
            AllocPolicy=js::SystemAllocPolicy
        ]
        /js/src/jstracer.cpp(1372) : see
reference to class template instantiation 'js::detail::HashTable<T,HashPolicy,Al
locPolicy>::Entry' being compiled
        with
        [
            T=js::HashMap<jsbytecode *,size_t,js::DefaultHasher<jsbytecode *>,js
::SystemAllocPolicy>::Entry,
            HashPolicy=js::HashMap<jsbytecode *,size_t,js::DefaultHasher<jsbytec
ode *>,js::SystemAllocPolicy>::MapHashPolicy,
            AllocPolicy=js::SystemAllocPolicy
        ]
make[5]: *** [jstracer.obj] Error 2
}

I'm trying to find out which changeset caused this...
blocking2.0: --- → ?
Regression timeframe:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=a8d65f5da19a&tochange=7b1d42444f85
though I don't know why it displays empty instead of 20 changesets.

I tried 2 changesets in between but had other failures :-/

Fwiw, I'm using
Platform SDK directory: [...]\Microsoft Platform SDK for Windows Server 2003 R2
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
(In reply to comment #1)
> though I don't know why it displays empty instead of 20 changesets.

Ah, because they are in the same push:
http://hg.mozilla.org/mozilla-central/pushloghtml?changeset=69627183a733
What compiler are you using?  gcc 4.0 has a known template bug that makes it miscompile this file, and your error is looking very similar.  It might be that your compiler is just buggy...
Could you try replacing your js/src/jshashtable.h with http://hg.mozilla.org/tracemonkey/file/7a2c87fe31b7/js/src/jshashtable.h and see if that works?  We had some issues with various compiler versions and friend declarations / access protection in the templatey world of jshashtable.h, and I guess the fixes haven't been pushed to m-c yet.
(In reply to comment #3)

(In reply to comment #1)
> Setting environment for using Microsoft Visual Studio 2005 x86 tools.

= "Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86"

***

(In reply to comment #4)

From that changeset,
jshashtable.h alone: gives me another error;
+ jstracer.cpp: yet another error.

Then I can't tell.
Hmm.  Can you build tracemonkey tip?
No, I don't use that repository.
Alright then... well the error should be fixed on m-c by the next merge from tracemonkey.
Any ETA.?.
Rob Sayre tends to merge with m-c on a weekly basis, assuming tm is green.
Eventually fixed by today merge:
http://hg.mozilla.org/mozilla-central/rev/03136ff6b1a8
(+ http://hg.mozilla.org/mozilla-central/rev/2b30f6f99313)

V.Fixed locally.
Assignee: general → sayrer
Status: NEW → RESOLVED
blocking2.0: ? → ---
Closed: 14 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
Whiteboard: [fixed by tracemonkey merge]
Target Milestone: --- → mozilla1.9.3a4
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.