diff --git a/internal/new.cc b/internal/new.cc index 31ec82a08..5ed81d8e1 100644 --- a/internal/new.cc +++ b/internal/new.cc @@ -92,7 +92,11 @@ std::pair SizeReturningAlignedNew(size_t size, std::align_val_t alignment) { ABSL_DCHECK(absl::has_single_bit(static_cast(alignment))); #ifdef CEL_INTERNAL_HAVE_ALIGNED_NEW +#if defined(_MSC_VER) + return std::pair{::operator new(size, alignment), size}; +#else return std::pair{::operator new(size, alignment), size}; +#endif #else return std::pair{AlignedNew(size, alignment), size}; #endif diff --git a/parser/BUILD b/parser/BUILD index 6650d9fe9..2e476d427 100644 --- a/parser/BUILD +++ b/parser/BUILD @@ -27,9 +27,11 @@ cc_library( hdrs = [ "parser.h", ], - copts = [ - "-fexceptions", - ], + copts = select({ + "@rules_cc//cc/compiler:msvc-cl": ["/EHsc"], + "@rules_cc//cc/compiler:clang-cl": ["/EHsc"], + "//conditions:default": ["-fexceptions"], + }), defines = [ "ANTLR4CPP_STATIC", ],