openjdk/jdk · warning
%s: Found %d warning
Error message
%s: Found %d warning
What it means
Phase-1 ADLC summary '"%s: Found %d warning(s)."' printed when only _AD._warnings > 0 (no errors). Warnings are non-fatal hygiene messages about the .ad description (e.g. unused operands at archDesc.cpp:776, ThreadLocal naming at formssel.cpp:304). The build continues and generated output is produced.
Source
Thrown at src/hotspot/share/adlc/adlparse.cpp:73
}
#endif
if( _AD._syntax_errs + _AD._semantic_errs + _AD._warnings == 0 ) {
if (!_AD._quiet_mode)
fprintf(stderr,"No errors or warnings to report from phase-1 parse.\n" );
}
else {
if( _AD._syntax_errs ) { // Any syntax errors?
fprintf(stderr,"%s: Found %d syntax error", _buf._fp->_name, _AD._syntax_errs);
if( _AD._syntax_errs > 1 ) fprintf(stderr,"s.\n\n");
else fprintf(stderr,".\n\n");
}
if( _AD._semantic_errs ) { // Any semantic errors?
fprintf(stderr,"%s: Found %d semantic error", _buf._fp->_name, _AD._semantic_errs);
if( _AD._semantic_errs > 1 ) fprintf(stderr,"s.\n\n");
else fprintf(stderr,".\n\n");
}
if( _AD._warnings ) { // Any warnings?
fprintf(stderr,"%s: Found %d warning", _buf._fp->_name, _AD._warnings);
if( _AD._warnings > 1 ) fprintf(stderr,"s.\n\n");
else fprintf(stderr,".\n\n");
}
}
if (!_AD._quiet_mode)
fprintf(stderr,"-----------------------------------------------------------------------------\n");
_AD._TotalLines += linenum()-1; // -1 for overshoot in "nextline" routine
// Write out information we have stored
// // UNIXism == fsync(stderr);
}
//------------------------------parse------------------------------------------
// Each top-level keyword should appear as the first non-whitespace on a line.
//
void ADLParser::parse() {
char *ident;
View on GitHub (pinned to 88dfb74bbe)
Solutions
- Read each warning line; remove or use the flagged construct if it is your code
- For upstream files, warnings can usually be ignored — verify the build otherwise succeeds
- Pass quiet mode (_AD._quiet_mode, e.g. via -q flag in adlc) if you only want errors
Defensive patterns
Strategy: validation
Validate before calling
make adlc 2>&1 | grep -c '^Warning' # CI: fail or annotate when warning count grows vs baseline
Prevention
- Track warning count in CI against a baseline
- Fix warnings in your own .ad edits; upstream noise may stay
- Use adlc quiet mode when only errors matter
When it happens
Trigger: Any ADLParser warning path incrementing _AD._warnings — unused operand definitions, instructions matching ThreadLocal without the tlsLoadP_ name prefix, and similar lint-level checks on the platform description.
Common situations: Upstream .ad files that carry intentionally unused compatibility operands; developers adding new vector operands without wiring them into any instruction.
Related errors
- Warning: unused operand (%s)
- -------Warning: total %d unused operands
- Error: Out of memory in ADLC\n
- %s: Found %d syntax error
- %s: Found %d semantic error
AI-assisted analysis of openjdk/jdk@88dfb74bbe (2026-08-14).
Data as JSON: /api/errors/d0d42f38c046f5ef.
Report an issue: GitHub.