[cfe-dev] error: cannot combine with previous 'type-name' declaration specifier

Douglas Gregor dgregor at apple.com
Mon Jan 11 14:53:01 CST 2010


On Jan 11, 2010, at 12:44 PM, Sascha Wildner wrote:

> Hi,
>
> encouraged by the recent improvement in clang's C++ support, I tried
> building DragonFly's devd(8) with it but am getting:
>
> clang -fno-color-diagnostics   -O -pipe  -I.
> -I/home/s/projects/dragonfly/src/sbin/devd  -g  -c devd.cc
> In file included from devd.cc:59:
> In file included from /usr/include/c++/4.1/algorithm:64:
> In file included from /usr/include/c++/4.1/bits/stl_algobase.h:69:
> In file included from /usr/include/c++/4.1/iosfwd:48:
> In file included from /usr/include/c++/4.1/bits/postypes.h:45:
> In file included from /usr/include/c++/4.1/cwchar:54:
> /usr/include/wchar.h:78:19: error: cannot combine with previous
> 'type-name' declaration specifier
> typedef __wchar_t       wchar_t;
>                         ^
> /usr/include/wchar.h:78:1: error: declaration does not declare  
> anything
> typedef __wchar_t       wchar_t;
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 2 diagnostics generated.
> *** Error code 1
>
> But what is the problem here?


The wchar.h header looks suspicious. wchar_t is a built-in type in C+ 
+, and cannot be a typedef.  Somehow, your wchar.h should protect  
against defining wchar_t when in C++ mode. I suggest looking through / 
usr/include/wchar.h to determine which preprocessor macros control  
that definition.

	- Doug


More information about the cfe-dev mailing list