diff options
| author | Matt Pharr <matt@pharr.org> | 2018-10-22 07:45:09 -0700 |
|---|---|---|
| committer | Tim Foley <tfoleyNV@users.noreply.github.com> | 2018-10-22 07:45:09 -0700 |
| commit | cda9c3b1a712715209a3f4ba155c1425898334cb (patch) | |
| tree | 9814bed442a388d8c1e025b07f92499b0ae0da2e | |
| parent | 53731f674601a2eb81c5715957d2e0e65637aee3 (diff) | |
Osx build fixes (#681)
* Remove 'register' qualifiers.
These will be illegal come c++17 and give a warning on OSX.
* Add UNREACHABLE_RETURNs to silence compiler warnings.
* Make FileStream::GetPosition() compile on OSX
(w.r.t. the linux build, I believe that strictly-speaking, fpos64_t is specified as an opaque type and the cast to an Int64 is not necessarily well-defined.)
* Avoid an inadvertent trigraph.
| -rw-r--r-- | source/core/slang-math.h | 6 | ||||
| -rw-r--r-- | source/core/stream.cpp | 2 | ||||
| -rw-r--r-- | source/slang/lower-to-ir.cpp | 11 | ||||
| -rw-r--r-- | source/slang/vm.cpp | 4 |
4 files changed, 17 insertions, 6 deletions
diff --git a/source/core/slang-math.h b/source/core/slang-math.h index e57cc68ff..6d6b3e7a1 100644 --- a/source/core/slang-math.h +++ b/source/core/slang-math.h @@ -63,7 +63,7 @@ namespace Slang return isinf(x); } - static inline unsigned int Ones32(register unsigned int x) + static inline unsigned int Ones32(unsigned int x) { /* 32-bit recursive reduction using SWAR... but first step is mapping 2-bit values @@ -77,7 +77,7 @@ namespace Slang return(x & 0x0000003f); } - static inline unsigned int Log2Floor(register unsigned int x) + static inline unsigned int Log2Floor(unsigned int x) { x |= (x >> 1); x |= (x >> 2); @@ -87,7 +87,7 @@ namespace Slang return(Ones32(x >> 1)); } - static inline unsigned int Log2Ceil(register unsigned int x) + static inline unsigned int Log2Ceil(unsigned int x) { int y = (x & (x - 1)); y |= -y; diff --git a/source/core/stream.cpp b/source/core/stream.cpp index f78e5af83..b705b13a1 100644 --- a/source/core/stream.cpp +++ b/source/core/stream.cpp @@ -134,6 +134,8 @@ namespace Slang fpos_t pos; fgetpos(handle, &pos); return pos; +#elif defined(__APPLE__) + return ftell(handle); #else fpos64_t pos; fgetpos64(handle, &pos); diff --git a/source/slang/lower-to-ir.cpp b/source/slang/lower-to-ir.cpp index 5f3b00b24..1ee521e3b 100644 --- a/source/slang/lower-to-ir.cpp +++ b/source/slang/lower-to-ir.cpp @@ -676,7 +676,7 @@ LoweredValInfo emitCallToDeclRef( #undef CASE default: SLANG_UNIMPLEMENTED_X("IR pseudo-op"); - break; + UNREACHABLE_RETURN(LoweredValInfo()); } } @@ -994,6 +994,7 @@ struct ValLoweringVisitor : ValVisitor<ValLoweringVisitor, LoweredValInfo, Lower LoweredValInfo visitVal(Val* /*val*/) { SLANG_UNIMPLEMENTED_X("value lowering"); + UNREACHABLE_RETURN(LoweredValInfo()); } LoweredValInfo visitGenericParamIntVal(GenericParamIntVal* val) @@ -1446,11 +1447,13 @@ struct ExprLoweringVisitorBase : ExprVisitor<Derived, LoweredValInfo> LoweredValInfo visitOverloadedExpr(OverloadedExpr* /*expr*/) { SLANG_UNEXPECTED("overloaded expressions should not occur in checked AST"); + UNREACHABLE_RETURN(LoweredValInfo()); } LoweredValInfo visitOverloadedExpr2(OverloadedExpr2* /*expr*/) { SLANG_UNEXPECTED("overloaded expressions should not occur in checked AST"); + UNREACHABLE_RETURN(LoweredValInfo()); } LoweredValInfo visitIndexExpr(IndexExpr* expr) @@ -1498,6 +1501,7 @@ struct ExprLoweringVisitorBase : ExprVisitor<Derived, LoweredValInfo> } SLANG_UNIMPLEMENTED_X("codegen for subscript expression"); + UNREACHABLE_RETURN(LoweredValInfo()); } // We will always lower a dereference expression (`*ptr`) @@ -1662,6 +1666,7 @@ struct ExprLoweringVisitorBase : ExprVisitor<Derived, LoweredValInfo> LoweredValInfo visitAggTypeCtorExpr(AggTypeCtorExpr* /*expr*/) { SLANG_UNIMPLEMENTED_X("codegen for aggregate type constructor expression"); + UNREACHABLE_RETURN(LoweredValInfo()); } // After a call to a function with `out` or `in out` @@ -2034,11 +2039,13 @@ struct ExprLoweringVisitorBase : ExprVisitor<Derived, LoweredValInfo> LoweredValInfo visitGenericAppExpr(GenericAppExpr* /*expr*/) { SLANG_UNIMPLEMENTED_X("generic application expression during code generation"); + UNREACHABLE_RETURN(LoweredValInfo()); } LoweredValInfo visitSharedTypeExpr(SharedTypeExpr* /*expr*/) { SLANG_UNIMPLEMENTED_X("shared type expression during code generation"); + UNREACHABLE_RETURN(LoweredValInfo()); } LoweredValInfo visitAssignExpr(AssignExpr* expr) @@ -5279,6 +5286,7 @@ IRInst* lowerSubstitutionArg( else { SLANG_UNIMPLEMENTED_X("value cases"); + UNREACHABLE_RETURN(nullptr); } } @@ -5419,6 +5427,7 @@ LoweredValInfo emitDeclRef( else { SLANG_UNEXPECTED("uhandled substitution type"); + UNREACHABLE_RETURN(LoweredValInfo()); } } diff --git a/source/slang/vm.cpp b/source/slang/vm.cpp index f5f5540f5..fa59a741b 100644 --- a/source/slang/vm.cpp +++ b/source/slang/vm.cpp @@ -415,11 +415,11 @@ void dumpVMFrame(VMFrame* vmFrame) break; case kIROp_HLSLRWStructuredBufferType: - fprintf(stderr, ": RWStructuredBuffer<???> = ???"); + fprintf(stderr, ": RWStructuredBuffer<??\?> = ???"); break; case kIROp_HLSLStructuredBufferType: - fprintf(stderr, ": StructuredBuffer<???> = ???"); + fprintf(stderr, ": StructuredBuffer<??\?> = ???"); break; case kIROp_BoolType: |
