+ sym_link *symlink=dest;
+
+#if 0
+ if (!IS_SPEC(dest)) {
+ // This can happen for pointers, find the end type
+ while (dest && !IS_SPEC(dest))
+ dest=dest->next;
+ }
+ if (!IS_SPEC(src)) {
+ // here we have a declarator as source, reverse them
+ symlink=src;
+ src=dest;
+ dest=symlink;
+ while (dest && !IS_SPEC(dest)) {
+ // and find the specifier
+ dest=dest->next;
+ }
+ } else {
+ symlink=dest;
+ }
+#endif
+
+ if (!IS_SPEC(dest) || !IS_SPEC(src)) {
+ werror (E_INTERNAL_ERROR, __FILE__, __LINE__, "cannot merge declarator");
+ exit (1);
+ }
+
+ if (getenv("DEBUG_mergeSpec")) {
+ fprintf (stderr, "mergeSpec: \"%s\"\n", name);
+ }
+