Ticket #123 (closed defect: fixed)

Opened 7 months ago

Last modified 4 months ago

Range overflow for irritants in CompilerOptions

Reported by: stephan Owned by: stephan
Priority: major Milestone: OTDT_1.2.1
Component: compiler Version: 1.2.0pre
Keywords: Cc:

Description

The long constants encoding irritants in class CompilerOptions are used for making certain classes of problems configurable (error,warning,ignore). These constants use individual bits to support storing a set of irritants within one long value. While merging Eclipse 3.4 with the OTDT we ran out of bits.

Currently, I work around this by

  • discarding our previous irritants effectless_fieldaccess, unused_parammap and incomplete_build
  • sacrifice JDT irritant assertIdentifier

The above problems are now invariably reported as fatal errors.

I should discuss a long-term strategy with the jdt core team. Also the JML4 people might soon run into this.

Also note, that the constants in org.eclipse.jdt.core.CompletionProposal just about hit the ceiling: 31 of 32 bits in an int are used.

Change History

Changed 7 months ago by stephan

  • keywords junitfailure added

Test org.eclipse.jdt.core.tests.compiler.parser.ComplianceDiagnoseTest has been adjusted for changed behavior regarding assert as identifier (r18600).

This should be reverted, once this issue is fixed (if it can be).

Changed 7 months ago by stephan

The affected compiler options are additionally disabled in the preference page (see r18670).

Changed 5 months ago by stephan

  • keywords junitfailure removed
  • status changed from new to closed
  • resolution set to fixed
  • milestone set to OTDT_1.2.1

Solved in r18817 and r18820 by a different encoding:

  • OT/J-irritants now use two bits: a constant OTJFlag (bit64L) to switch between sets of irritants and the individual bit

(not enabling old irritants, which are not considered very useful).

Changed 4 months ago by stephan

Based on a hint by Pilippe Mulet, r18958 adapts analysis of suppressed warnings to the new encoding. See also B.1.1-otjld-sh-67 and B.1.1-otjld-sh-68.

Changed 4 months ago by stephan

r18960 and r18961 fix regressions introduced by r18958.

Changed 4 months ago by stephan

r18963 adds special treatment to the suppress "all" irritant: in order to safely apply to irritants of both sets (Java-OT/J) it must first be stored in both sets.

Note: See TracTickets for help on using tickets.