================ Comment at: lib/Sema/DeclSpec.cpp:386 @@ -385,2 +385,3 @@ case DeclSpec::TSCS___thread: return "__thread"; + case DeclSpec::TSCS___declspec_thread: return "__declspec(thread)"; case DeclSpec::TSCS_thread_local: return "thread_local"; ---------------- Reid Kleckner wrote: > Richard Smith wrote: > > This seems like it should be unreachable. > It's used for diagnostics now, and it uses DeclSpec::TSCS___declspec_thread. > > Would you be in favor of a patch that removes the TSCS_* static const ints in > DeclSpec and replaces them with uses of the Basic/Specifiers.h enumerators? Where is it used for diagnostics? It seems strange for someone to pass it a `TSCS` that didn't come from a `DeclSpec`, and a `DeclSpec` cannot have `TSCS___declspec_thread`.
I don't think I'd be in favor of the patch you suggested -- the `DeclSpec` type and the `Basic` type notionally mean different things (even though they have the same underlying `enum`), and we're just punning between them here. In particular, it does not make sense for the `DeclSpec` type to have a value for `__declspec(thread)`, since a parsed decl-specifier-seq can't have such a thread storage class specifier. Giving `DeclSpec` a separate `enum` that doesn't have a `__declspec(thread)` enumerator would seem more consistent with the intent here. http://reviews.llvm.org/D3551 _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
