--- old/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java 2013-08-19 13:26:44.000000000 -0700 +++ new/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java 2013-08-19 13:26:44.000000000 -0700 @@ -363,6 +363,7 @@ throw new Abort(); } source = Source.instance(context); + Target target = Target.instance(context); attr = Attr.instance(context); chk = Check.instance(context); gen = Gen.instance(context); @@ -403,6 +404,8 @@ } } + checkForObsoleteOptions(target); + verboseCompilePolicy = options.isSet("verboseCompilePolicy"); if (attrParseOnly) @@ -432,6 +435,26 @@ log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context)); } + private void checkForObsoleteOptions(Target target) { + // Unless lint checking on options is disabled, check for + // obsolete source and target options. + boolean obsoleteOptionFound = false; + if (options.isUnset(XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option)) { + if (source.compareTo(Source.JDK1_5) <= 0) { + log.warning(LintCategory.OPTIONS, "option.obsolete.source", source.name); + obsoleteOptionFound = true; + } + + if (target.compareTo(Target.JDK1_5) <= 0) { + log.warning(LintCategory.OPTIONS, "option.obsolete.target", source.name); + obsoleteOptionFound =true; + } + + if (obsoleteOptionFound) + log.warning(LintCategory.OPTIONS, "option.obsolete.suppression"); + } + } + /* Switches: */