diff dmd/attrib.c @ 73:b706170e24a9 trunk

[svn r77] Fixed foreach on slice. Fixed some nested function problems when accessing outer function parameters. Major changes to handling of structs. Initial support for unions. Probably more...
author lindquist
date Wed, 31 Oct 2007 03:11:32 +0100
parents 0ccfae271c45
children eb379601d445
line wrap: on
line diff
--- a/dmd/attrib.c	Mon Oct 29 03:28:12 2007 +0100
+++ b/dmd/attrib.c	Wed Oct 31 03:11:32 2007 +0100
@@ -887,13 +887,17 @@
                     llvm_internal = LLVMva_intrinsic;
                     assert(args->dim == 2);
                 }
+                else if (strcmp(str,"notypeinfo")==0) {
+                    llvm_internal = LLVMnotypeinfo;
+                    assert(args->dim == 1);
+                }
                 else {
                     error("unknown pragma command: %s", str);
                 }
             }
             else
             error("1st argument must be a string");
-            
+
             if (llvm_internal)
             switch (llvm_internal)
             {
@@ -910,12 +914,13 @@
                 else
                 error("2nd argument must be a string");
                 break;
-            
+
             case LLVMnull:
             case LLVMva_arg:
             case LLVMva_start:
+            case LLVMnotypeinfo:
                 break;
-            
+
             default:
                 assert(0);
             }
@@ -988,6 +993,10 @@
                 }
                 break;
 
+            case LLVMnotypeinfo:
+                s->llvmInternal = llvm_internal;
+                break;
+
             default:
                 assert(0 && "invalid LLVM_internal pragma got through :/");
             }