diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index b6af67617880da16ff9376662ee3698bbb1c5784..83d1ccc8edc8f31e52313f932dac621ded78fe69 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR objc/94637
+	* c-parser.c (c_parser_objc_selector_arg): Handle CPP_SCOPE like
+	two CPP_COLON tokens.
+
 2020-04-17  Jakub Jelinek  <jakub@redhat.com>
 
 	PR other/94629
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 4e90d55f30f4a466e10f4ed852dde471ce67e885..ae354e6af66ac0297133143b6a250961463adb00 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -11782,15 +11782,28 @@ c_parser_objc_selector_arg (c_parser *parser)
 {
   tree sel = c_parser_objc_selector (parser);
   tree list = NULL_TREE;
-  if (sel && c_parser_next_token_is_not (parser, CPP_COLON))
+  if (sel
+      && c_parser_next_token_is_not (parser, CPP_COLON)
+      && c_parser_next_token_is_not (parser, CPP_SCOPE))
     return sel;
   while (true)
     {
-      if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
-	return list;
-      list = chainon (list, build_tree_list (sel, NULL_TREE));
+      if (c_parser_next_token_is (parser, CPP_SCOPE))
+	{
+	  c_parser_consume_token (parser);
+	  list = chainon (list, build_tree_list (sel, NULL_TREE));
+	  list = chainon (list, build_tree_list (NULL_TREE, NULL_TREE));
+	}
+      else
+	{
+	  if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
+	    return list;
+	  list = chainon (list, build_tree_list (sel, NULL_TREE));
+	}
       sel = c_parser_objc_selector (parser);
-      if (!sel && c_parser_next_token_is_not (parser, CPP_COLON))
+      if (!sel
+	  && c_parser_next_token_is_not (parser, CPP_COLON)
+	  && c_parser_next_token_is_not (parser, CPP_SCOPE))
 	break;
     }
   return list;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fb1a1539d6ad4daf4b80b53b6c21ac4cfa8a0716..9f8ae6ccccb1b6e0a83a5ecae8188a7a456f8c42 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR objc/94637
+	* objc.dg/pr94637.m: New test.
+
 2020-04-18  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	* lib/gdc-utils.exp (gdc-convert-test): Add dg-skip-if for tests that
diff --git a/gcc/testsuite/objc.dg/pr94637.m b/gcc/testsuite/objc.dg/pr94637.m
new file mode 100644
index 0000000000000000000000000000000000000000..10a0ea8307b20bec57dfd82a7c0de5d04e33f60e
--- /dev/null
+++ b/gcc/testsuite/objc.dg/pr94637.m
@@ -0,0 +1,10 @@
+/* PR objc/94637 */
+/* { dg-do compile } */
+
+#include <objc/objc.h>
+
+SEL
+foo ()
+{
+  return @selector(example::);
+}