]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Objective-C/C++: Ensure sufficient setup for the preprocessor.
authorIain Sandoe <iain@sandoe.co.uk>
Tue, 9 Jan 2024 17:31:41 +0000 (17:31 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Thu, 18 Jan 2024 14:27:54 +0000 (14:27 +0000)
The tokenizer makes use of functions that determine if identifiers
are interface or class names, and those functions need a hash map
to be set up.

This ensures that these are initialized before pre-process-only
jobs are run.

gcc/objc/ChangeLog:

* objc-act.cc (objc_init): Initialize interface and class
name hash maps before the preprocessor uses them.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/objc/objc-act.cc

index 143134832ff8173b9eaea28266470c945f683877..cec64c4bfbd48f17f73ae77d3d2d122a1520ee08 100644 (file)
@@ -345,6 +345,11 @@ bool
 objc_init (void)
 {
   bool ok;
+
+  /* Set up stuff used by the preprocessor as well as FE parser.  */
+  interface_hash_init ();
+  hash_init ();
+
 #ifdef OBJCPLUS
   if (cxx_init () == false)
 #else
@@ -374,8 +379,6 @@ objc_init (void)
 
   /* Set up stuff used by FE parser and all runtimes.  */
   errbuf = XNEWVEC (char, 1024 * 10);
-  interface_hash_init ();
-  hash_init ();
   objc_encoding_init ();
   /* ... and then check flags and set-up for the selected runtime ... */
   if (flag_next_runtime && flag_objc_abi >= 2)