]> git.llucax.com Git - software/druntime.git/blobdiff - src/compiler/dmd/util/cpuid.d
* Auto type determination was broken in some unit tests. This has been fixed.
[software/druntime.git] / src / compiler / dmd / util / cpuid.d
index b4d9cbab15647eb57b19cb366034b2b44652b13b..da11f9ead258576e35abfb4d8b97ac2d95d5b670 100644 (file)
@@ -40,14 +40,14 @@ COPYRIGHT:      Public Domain
 
 module rt.util.cpuid;
 
 
 module rt.util.cpuid;
 
-private import stdc.string;
+private import core.stdc.string;
 
 version(D_InlineAsm_X86)
 {
     /// Returns vendor string
     char[] vendor()             {return vendorStr;}
     /// Returns processor string
 
 version(D_InlineAsm_X86)
 {
     /// Returns vendor string
     char[] vendor()             {return vendorStr;}
     /// Returns processor string
-    char[] processor()          {return processorStr;}
+    string processor()          {return processorStr;}
 
     /// Is MMX supported?
     bool mmx()                  {return (flags&MMX_BIT)!=0;}
 
     /// Is MMX supported?
     bool mmx()                  {return (flags&MMX_BIT)!=0;}
@@ -186,8 +186,8 @@ private:
     uint flags, misc, exflags, apic, signature;
     uint _stepping, _model, _family;
 
     uint flags, misc, exflags, apic, signature;
     uint _stepping, _model, _family;
 
-    char[12] vendorStr = "";
-    char[] processorStr = "";
+    char[12] vendorStr = 0;
+    string processorStr = "";
 
     uint maxThreads=1;
     uint maxCores=1;
 
     uint maxThreads=1;
     uint maxCores=1;
@@ -250,7 +250,7 @@ private:
             return;
 
         // seems many intel processors prepend whitespace
             return;
 
         // seems many intel processors prepend whitespace
-        processorStr = strip(toString(dst)).dup;
+        processorStr = cast(string)strip(toString(dst)).dup;
     }
 
     private void getFeatureFlags()
     }
 
     private void getFeatureFlags()
@@ -421,9 +421,14 @@ private:
             return stripr(stripl(s));
         }
 
             return stripr(stripl(s));
         }
 
-        string toString(char *s)
+        char[] toString(char* s)
         {
         {
-            return s ? s[0 .. strlen(s)] : cast(char[])null;
+            return s ? s[0 .. strlen(s)] : null;
+        }
+
+        string toString(invariant(char)* s)
+        {
+            return s ? s[0 .. strlen(s)] : null;
         }
     }
 }
         }
     }
 }