changeset 1090:6a19c36fc4a6

Merge
author Frits van Bommel <fvbommel wxs.nl>
date Wed, 11 Mar 2009 01:01:40 +0100
parents d33b0d4b816a (diff) b1d75bf46ffa (current diff)
children 20d96c148b39
files
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/dmd/template.c	Tue Mar 10 13:59:50 2009 -0400
+++ b/dmd/template.c	Wed Mar 11 01:01:40 2009 +0100
@@ -3186,6 +3186,14 @@
 	    {
 		//printf("setting aliasdecl\n");
 		aliasdecl = new AliasDeclaration(loc, s->ident, s);
+
+                // LDC propagate internal information
+                if (tempdecl->llvmInternal) {
+                    s->llvmInternal = tempdecl->llvmInternal;
+                    if (FuncDeclaration* fd = s->isFuncDeclaration()) {
+                        fd->intrinsicName = tempdecl->intrinsicName;
+                    }
+                }
 	    }
 	}
     }
--- a/gen/llvmhelpers.cpp	Tue Mar 10 13:59:50 2009 -0400
+++ b/gen/llvmhelpers.cpp	Wed Mar 11 01:01:40 2009 +0100
@@ -1541,8 +1541,8 @@
                     name.c_str(), T->toChars(),
                     (name[pos-1] == 'i' ? "n integral" : " floating-point"));
             } else {
-                // Just plain wrong.
-                ti->error("has an invalid intrinsic name: %s", name.c_str());
+                // Just plain wrong. (Error in declaration, not instantiation)
+                td->error("has an invalid intrinsic name: %s", name.c_str());
             }
             fatal(); // or LLVM asserts
         }