summaryrefslogtreecommitdiff
path: root/src/ilasm/assembler.cpp
diff options
context:
space:
mode:
authorKyungwoo Lee <kyulee@microsoft.com>2015-12-10 16:18:25 -0800
committerKyungwoo Lee <kyulee@microsoft.com>2015-12-11 08:19:16 -0800
commit1c472d376ac40130b78f32b62ab26dee1454c430 (patch)
tree961e0149f21b23da01d15a77e4c2cdca077431f6 /src/ilasm/assembler.cpp
parentcb25307b3022b67cf240ff534f05778845090921 (diff)
downloadcoreclr-1c472d376ac40130b78f32b62ab26dee1454c430.tar.gz
coreclr-1c472d376ac40130b78f32b62ab26dee1454c430.tar.bz2
coreclr-1c472d376ac40130b78f32b62ab26dee1454c430.zip
Enable ILASM for *nix
This enables ILASM for x-platforms. 1. Added a bunch of warning disable options mostly due to this prebuilt asmparse.cpp 2. Create a separte entry point "main" to pass WCHAR arguments. 3. PDB (CorSymWriter) part is disabled. 4. Converting/embedding resource file to binary is disabled. 5. jkotas kindly provided a code for IsTextUnicode which is unavailable on CoreCLR.
Diffstat (limited to 'src/ilasm/assembler.cpp')
-rw-r--r--src/ilasm/assembler.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/ilasm/assembler.cpp b/src/ilasm/assembler.cpp
index d83bf7ce2b..275b721f36 100644
--- a/src/ilasm/assembler.cpp
+++ b/src/ilasm/assembler.cpp
@@ -93,7 +93,7 @@ void Assembler::ClearBoundList(void)
m_TyParList = NULL;
}
/**************************************************************************/
-mdToken Assembler::ResolveClassRef(mdToken tkResScope, __in __nullterminated char *pszFullClassName, Class** ppClass)
+mdToken Assembler::ResolveClassRef(mdToken tkResScope, __in __nullterminated const char *pszFullClassName, Class** ppClass)
{
Class *pClass = NULL;
mdToken tkRet = mdTokenNil;
@@ -167,11 +167,11 @@ private:
mdToken token_;
public:
// Constructor for a 'lookup' object
- TypeSpecContainer(BinStr *typeSpec) :
- len_(typeSpec->length()),
- hash_(typeSpec->length()),
- token_(mdTokenNil),
- ptr_(typeSpec->ptr())
+ TypeSpecContainer(BinStr *typeSpec) :
+ ptr_(typeSpec->ptr()),
+ len_(typeSpec->length()),
+ hash_(typeSpec->length()),
+ token_(mdTokenNil)
{
for (unsigned i = 0; i < len_; i++)
hash_ = (hash_ * 257) ^ ((i + 1) * (ptr_[i] ^ 0xA5));
@@ -179,10 +179,10 @@ public:
// Constructor for a 'permanent' object
// Don't bother re-hashing, since we will always have already constructed the lookup object
TypeSpecContainer(const TypeSpecContainer &t, mdToken tk) :
- len_(t.len_),
+ ptr_(new unsigned __int8[t.len_]),
+ len_(t.len_),
hash_(t.hash_),
- token_(tk),
- ptr_(new unsigned __int8[t.len_])
+ token_(tk)
{
_ASSERT(tk != mdTokenNil);
_ASSERT(t.token_ == mdTokenNil);
@@ -252,7 +252,7 @@ mdToken Assembler::ResolveTypeSpec(BinStr* typeSpec)
}
/**************************************************************************/
-mdToken Assembler::GetAsmRef(__in __nullterminated char* szName)
+mdToken Assembler::GetAsmRef(__in __nullterminated const char* szName)
{
mdToken tkResScope = 0;
if(strcmp(szName,"*")==0) tkResScope = mdTokenNil;
@@ -938,7 +938,7 @@ BOOL Assembler::EmitField(FieldDescriptor* pFD)
WszMultiByteToWideChar(g_uCodePage,0,pFD->m_szName,-1,wzFieldName,dwUniBuf); //int)cFieldNameLength);
if(IsFdPrivateScope(pFD->m_dwAttr))
{
- WCHAR* p = wcsstr(wzFieldName,L"$PST04");
+ WCHAR* p = wcsstr(wzFieldName,W("$PST04"));
if(p) *p = 0;
}
@@ -2020,7 +2020,7 @@ void Assembler::EmitInstrStringLiteral(Instr* instr, BinStr* literal, BOOL Conve
L = UnicodeString ? WszMultiByteToWideChar(g_uCodePage,0,(char*)pb,-1,UnicodeString,DataLen+1) : 0;
if(L == 0)
{
- char* sz=NULL;
+ const char* sz=NULL;
DWORD dw;
switch(dw=GetLastError())
{