langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java
changeset 31506 4e07f827a794
parent 29842 826ac2519523
child 34560 b6a567b677f7
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Wed Jul 01 09:51:47 2015 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Wed Jul 01 09:51:48 2015 +0200
@@ -1317,13 +1317,28 @@
             for (int i = 0; i<numAttributes; i++) {
                 CompoundAnnotationProxy proxy = readCompoundAnnotation();
 
-                if (proxy.type.tsym == syms.annotationTargetType.tsym) {
-                    target = proxy;
-                } else if (proxy.type.tsym == syms.repeatableType.tsym) {
-                    repeatable = proxy;
+                if (proxy.type.tsym == syms.proprietaryType.tsym)
+                    sym.flags_field |= PROPRIETARY;
+                else if (proxy.type.tsym == syms.profileType.tsym) {
+                    if (profile != Profile.DEFAULT) {
+                        for (Pair<Name,Attribute> v: proxy.values) {
+                            if (v.fst == names.value && v.snd instanceof Attribute.Constant) {
+                                Attribute.Constant c = (Attribute.Constant) v.snd;
+                                if (c.type == syms.intType && ((Integer) c.value) > profile.value) {
+                                    sym.flags_field |= NOT_IN_PROFILE;
+                                }
+                            }
+                        }
+                    }
+                } else {
+                    if (proxy.type.tsym == syms.annotationTargetType.tsym) {
+                        target = proxy;
+                    } else if (proxy.type.tsym == syms.repeatableType.tsym) {
+                        repeatable = proxy;
+                    }
+
+                    proxies.append(proxy);
                 }
-
-                proxies.append(proxy);
             }
             annotate.normal(new AnnotationCompleter(sym, proxies.toList()));
         }