Index: test/Parser/expressions.m
===================================================================
--- test/Parser/expressions.m	(revision 0)
+++ test/Parser/expressions.m	(revision 0)
@@ -0,0 +1,6 @@
+// RUN: clang -parse-noop %s
+
+void test1() {
+  @"s";            // expected-warning {{expression result unused}}
+}
+
Index: Parse/ParseStmt.cpp
===================================================================
--- Parse/ParseStmt.cpp	(revision 45358)
+++ Parse/ParseStmt.cpp	(working copy)
@@ -87,9 +87,9 @@
   case tok::at: // May be a @try or @throw statement
     {
       AtLoc = ConsumeToken();  // consume @
-      if (Tok.getIdentifierInfo()->getObjCKeywordID() == tok::objc_try)
+      if (Tok.isObjCAtKeyword(tok::objc_try))
         return ParseObjCTryStmt(AtLoc);
-      else if (Tok.getIdentifierInfo()->getObjCKeywordID() == tok::objc_throw)
+      else if (Tok.isObjCAtKeyword(tok::objc_throw))
         return ParseObjCThrowStmt(AtLoc);
       ExprResult Res = ParseExpressionWithLeadingAt(AtLoc);
       if (Res.isInvalid) {
