| Index: src/compilation-cache.cc
|
| ===================================================================
|
| --- src/compilation-cache.cc (revision 1983)
|
| +++ src/compilation-cache.cc (working copy)
|
| @@ -138,13 +138,17 @@
|
| int line_offset,
|
| int column_offset) {
|
| Object* result = NULL;
|
| - Entry generation = SCRIPT; // First generation.
|
| + // Using int below so value range propagation in gcc 4.3+ won't assume
|
| + // |generation| can only go up to LAST_ENTRY when in fact it can go
|
| + // up to SCRIPT + NUMBER_OF_SCRIPT_GENERATIONS.
|
| + int generation = static_cast<int>(SCRIPT); // First generation.
|
|
|
| // Probe the script generation tables. Make sure not to leak handles
|
| // into the caller's handle scope.
|
| { HandleScope scope;
|
| while (generation < SCRIPT + NUMBER_OF_SCRIPT_GENERATIONS) {
|
| - Handle<CompilationCacheTable> table = GetTable(generation);
|
| + Handle<CompilationCacheTable> table =
|
| + GetTable(static_cast<Entry>(generation));
|
| Handle<Object> probe(table->Lookup(*source));
|
| if (probe->IsJSFunction()) {
|
| Handle<JSFunction> boilerplate = Handle<JSFunction>::cast(probe);
|
| @@ -156,7 +160,7 @@
|
| }
|
| }
|
| // Go to the next generation.
|
| - generation = static_cast<Entry>(generation + 1);
|
| + generation++;
|
| }
|
| }
|
|
|
|
|