public final FunctionSpecifierContext functionSpecifier() throws RecognitionException {
		FunctionSpecifierContext _localctx = new FunctionSpecifierContext(_ctx, getState());
		enterRule(_localctx, 98, RULE_functionSpecifier);
		int _la;
		try {
			setState(734);
			switch (_input.LA(1)) {
			case 4:
			case 8:
			case Inline:
			case Noreturn:
				enterOuterAlt(_localctx, 1);
				{
				setState(728);
				_la = _input.LA(1);
				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << 4) | (1L << 8) | (1L << Inline) | (1L << Noreturn))) != 0)) ) {
				_errHandler.recoverInline(this);
				}
				consume();
				}
				break;
			case 13:
				enterOuterAlt(_localctx, 2);
				{
				setState(729); gccAttributeSpecifier();
				}
				break;
			case 6:
				enterOuterAlt(_localctx, 3);
				{
				setState(730); match(6);
				setState(731); match(LeftParen);
				setState(732); match(Identifier);
				setState(733); match(RightParen);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}