You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
5.7 KiB
190 lines
5.7 KiB
Index: doc/jikes.1 |
|
--- doc/jikes.1.orig 2004-03-02 10:02:11 +0100 |
|
+++ doc/jikes.1 2007-09-16 09:40:39 +0200 |
|
@@ -185,7 +185,7 @@ |
|
compatibility to older virtual machines, and some source constructs |
|
will be compiled to less efficient workarounds in order to avoid known |
|
virtual machine bugs or deficiencies. However, a lower target may |
|
-occaisionally produce incorrect semantic behavior. Furthermore, some |
|
+occasionally produce incorrect semantic behavior. Furthermore, some |
|
language features require virtual machine support, where there are no |
|
known workarounds in earlier releases: the assert statement requires |
|
1.4 (unless you also use \fB\-noassert\fP), and the planned addition |
|
Index: src/decl.cpp |
|
--- src/decl.cpp.orig 2004-09-27 00:40:41 +0200 |
|
+++ src/decl.cpp 2007-09-16 09:40:39 +0200 |
|
@@ -2596,7 +2596,9 @@ |
|
// |
|
if (control.option.deprecation && |
|
hidden_method -> IsDeprecated() && |
|
- ! method -> containing_type -> file_symbol -> IsClassOnly()) |
|
+ ! method -> containing_type -> file_symbol -> IsClassOnly() && |
|
+ ! method -> IsDeprecated() && |
|
+ ! InDeprecatedContext()) |
|
{ |
|
ReportSemError(SemanticError::DEPRECATED_METHOD_OVERRIDE, |
|
left_tok, right_tok, method -> Header(), |
|
Index: src/double.h |
|
--- src/double.h.orig 2004-06-02 13:26:22 +0200 |
|
+++ src/double.h 2007-09-16 09:40:39 +0200 |
|
@@ -63,6 +63,11 @@ |
|
#include "platform.h" |
|
#include "long.h" |
|
|
|
+// We should really have an autoconf test for this, but autoconf hates me. |
|
+#if defined(WORDS_BIGENDIAN) || (defined(__arm__) && !defined(__VFP_FP__)) |
|
+#define DOUBLES_BIGENDIAN_WORDS |
|
+#endif |
|
+ |
|
#ifdef HAVE_JIKES_NAMESPACE |
|
namespace Jikes { // Open namespace Jikes block |
|
#endif |
|
@@ -395,7 +400,25 @@ |
|
static const IEEEdouble bigtens[]; // powers of 10 by powers of 2 |
|
#endif |
|
|
|
+#if defined(WORDS_BIGENDIAN) != defined(DOUBLES_BIGENDIAN_WORDS) |
|
+ // This is sick, but then so is this entire class hierarchy. |
|
+ inline void setHighWord(u4 high) { BaseLong::setLowWord(high); } |
|
+ inline void setLowWord(u4 low) { BaseLong::setHighWord(low); } |
|
+ using BaseLong::setHighAndLowWords; |
|
+ inline void setHighAndLowWords(u4 high, u4 low) |
|
+ { BaseLong::setHighAndLowWords(low, high); } |
|
+#endif |
|
+#ifdef HAVE_64BIT_TYPES |
|
+ // This really isn't going to help anyone. Make it private. |
|
+ using BaseLong::Words; |
|
+#endif |
|
+ |
|
public: |
|
+#if defined(WORDS_BIGENDIAN) != defined(DOUBLES_BIGENDIAN_WORDS) |
|
+ inline u4 HighWord() const { return BaseLong::LowWord(); } |
|
+ inline u4 LowWord() const { return BaseLong::HighWord(); } |
|
+#endif |
|
+ |
|
// |
|
// Information methods, for evaluating components of the float |
|
// |
|
Index: src/error.cpp |
|
--- src/error.cpp.orig 2004-09-27 00:40:41 +0200 |
|
+++ src/error.cpp 2007-09-16 09:40:39 +0200 |
|
@@ -1,4 +1,4 @@ |
|
-// $Id: jikes.patch,v 1.3 2007/09/16 07:43:14 rse Exp $ |
|
+// $Id: jikes.patch,v 1.3 2007/09/16 07:43:14 rse Exp $ |
|
// |
|
// This software is subject to the terms of the IBM Jikes Compiler |
|
// License Agreement available at the following URL: |
|
@@ -513,6 +513,7 @@ |
|
warning[DEPRECATED_FIELD] = WEAK_WARNING; |
|
warning[DEPRECATED_METHOD] = WEAK_WARNING; |
|
warning[DEPRECATED_CONSTRUCTOR] = WEAK_WARNING; |
|
+ warning[DEPRECATED_METHOD_OVERRIDE] = WEAK_WARNING; |
|
|
|
warning[UNNECESSARY_TYPE_IMPORT] = WEAK_WARNING; |
|
warning[MULTIPLE_PUBLIC_TYPES] = WEAK_WARNING; |
|
Index: src/platform.h |
|
--- src/platform.h.orig 2004-08-20 02:21:17 +0200 |
|
+++ src/platform.h 2007-09-16 09:40:39 +0200 |
|
@@ -151,6 +151,18 @@ |
|
# include STD_LIB_NAME(time) |
|
#endif |
|
|
|
+// |
|
+// In the compiler, we want EXACT control over signed and unsigned values |
|
+// of certain bit widths. Configure should have already found us what we need. |
|
+// |
|
+#if HAVE_INTTYPES_H |
|
+# include <inttypes.h> |
|
+#else |
|
+# if HAVE_STDINT_H |
|
+# include <stdint.h> |
|
+# endif |
|
+#endif // HAVE_INTTYPES_H |
|
+ |
|
// C++ standard support |
|
|
|
#ifdef HAVE_STD |
|
@@ -182,18 +194,6 @@ |
|
#endif |
|
|
|
|
|
-// |
|
-// In the compiler, we want EXACT control over signed and unsigned values |
|
-// of certain bit widths. Configure should have already found us what we need. |
|
-// |
|
-#if HAVE_INTTYPES_H |
|
-# include <inttypes.h> |
|
-#else |
|
-# if HAVE_STDINT_H |
|
-# include <stdint.h> |
|
-# endif |
|
-#endif // HAVE_INTTYPES_H |
|
- |
|
typedef uint8_t u1; |
|
typedef int8_t i1; |
|
typedef uint16_t u2; |
|
Index: src/set.cpp |
|
--- src/set.cpp.orig 2002-12-11 01:55:04 +0100 |
|
+++ src/set.cpp 2007-09-16 09:40:39 +0200 |
|
@@ -43,6 +43,9 @@ |
|
|
|
bool SymbolSet::operator==(const SymbolSet& rhs) const |
|
{ |
|
+ if (!&rhs) |
|
+ return false; |
|
+ |
|
if (this != &rhs) |
|
{ |
|
if (symbol_pool.Length() != rhs.symbol_pool.Length()) |
|
@@ -70,6 +73,9 @@ |
|
// |
|
void SymbolSet::Union(const SymbolSet& set) |
|
{ |
|
+ if (!&set) |
|
+ return; |
|
+ |
|
if (this != &set) |
|
{ |
|
for (unsigned i = 0; i < set.symbol_pool.Length(); i++) |
|
@@ -90,6 +96,9 @@ |
|
// |
|
void SymbolSet::Intersection(const SymbolSet& set) |
|
{ |
|
+ if (!&set) |
|
+ return; |
|
+ |
|
if (this != &set) |
|
{ |
|
Tuple<Symbol*> old_symbol_pool(symbol_pool.Length()); |
|
@@ -120,6 +129,9 @@ |
|
// |
|
bool SymbolSet::Intersects(const SymbolSet& set) const |
|
{ |
|
+ if (!&set) |
|
+ return false; |
|
+ |
|
for (unsigned i = 0; i < set.symbol_pool.Length(); i++) |
|
{ |
|
ShadowSymbol* shadow = set.symbol_pool[i]; |
|
@@ -139,6 +151,9 @@ |
|
// |
|
void SymbolSet::RemoveElement(const Symbol* element) |
|
{ |
|
+ if (!element) |
|
+ return; |
|
+ |
|
const NameSymbol* name_symbol = element -> Identity(); |
|
unsigned i = name_symbol -> index % hash_size; |
|
ShadowSymbol* previous = NULL; |
|
Index: src/symbol.h |
|
--- src/symbol.h.orig 2004-09-27 01:10:19 +0200 |
|
+++ src/symbol.h 2007-09-16 09:40:39 +0200 |
|
@@ -1106,8 +1106,6 @@ |
|
// |
|
bool IsInner() const |
|
{ |
|
- assert((! IsLocal() && ! Anonymous()) || |
|
- (IsNested() && ! ACC_STATIC())); |
|
return IsNested() && ! ACC_STATIC(); |
|
} |
|
|
|
|