 ;; Define chpl primitive types
 
 (c-lang-defconst c-primitive-type-kwds
-  chpl '("bool" "complex" "domain" "imag" "int" "locale" "opaque" "range" "real" "string" "subdomain" "uint"))
+  chpl '("bool" "complex" "domain" "imag" "index" "int" "locale" "opaque" "range" "real" "string" "subdomain" "uint"))
 
 ;; Define chpl type modifiers
 (c-lang-defconst c-type-modifier-kwds

  ;; Default to `c-class-decl-kwds' and `c-brace-list-decl-kwds'
  ;; (since e.g. "Foo" is the identifier being defined in "class Foo
  ;; {...}").
  chpl '("const" "def" "module" "param" "type" "var" "_extern"))

(c-lang-defconst c-ref-list-kwds
  "Keywords that may be followed by a comma separated list of

but they don't build a type of themselves.  Unlike the keywords on
`c-primitive-type-kwds', they are fontified with the keyword face and
not the type face."
  chpl '("const" "config" "iter" "module" "param" "proc" "type" "use" "var" "_extern"))

;; Class-style declarations
(c-lang-defconst c-class-decl-kwds
