Skip to content

Commit

Permalink
Version 7.3.492.1 (cherry-pick)
Browse files Browse the repository at this point in the history
Merged 42b50b7

Revert "[build][torque] remove workarounds for clang bug"

TBR=hablich@chromium.org

Change-Id: Ib398b13fa10b711659aea20d7a4c8abb3c475c79
Reviewed-on: https://chromium-review.googlesource.com/c/1430071
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/7.3.492@{v8#2}
Cr-Branched-From: be213cf-refs/heads/master@{#59024}
  • Loading branch information
LeszekSwirski committed Jan 23, 2019
1 parent 21b1ee5 commit 9df9418
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 7 deletions.
6 changes: 6 additions & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -3050,6 +3050,9 @@ v8_source_set("torque_base") {
]

configs = [ ":internal_config" ]
if (is_win && is_asan) {
remove_configs = [ "//build/config/sanitizers:default_sanitizer_flags" ]
}
}

v8_component("v8_libbase") {
Expand Down Expand Up @@ -3413,6 +3416,9 @@ if (current_toolchain == v8_snapshot_toolchain) {
]

configs = [ ":internal_config" ]
if (is_win && is_asan) {
remove_configs = [ "//build/config/sanitizers:default_sanitizer_flags" ]
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion include/v8-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 7
#define V8_MINOR_VERSION 3
#define V8_BUILD_NUMBER 492
#define V8_PATCH_LEVEL 0
#define V8_PATCH_LEVEL 1

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
22 changes: 16 additions & 6 deletions src/torque/instructions.h
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,10 @@ struct LoadObjectFieldInstruction : InstructionBase {
TORQUE_INSTRUCTION_BOILERPLATE()
LoadObjectFieldInstruction(const ClassType* class_type,
std::string field_name)
: class_type(class_type), field_name(std::move(field_name)) {}
: class_type(class_type) {
// The normal way to write this triggers a bug in Clang on Windows.
this->field_name = std::move(field_name);
}
const ClassType* class_type;
std::string field_name;
};
Expand All @@ -216,7 +219,10 @@ struct StoreObjectFieldInstruction : InstructionBase {
TORQUE_INSTRUCTION_BOILERPLATE()
StoreObjectFieldInstruction(const ClassType* class_type,
std::string field_name)
: class_type(class_type), field_name(std::move(field_name)) {}
: class_type(class_type) {
// The normal way to write this triggers a bug in Clang on Windows.
this->field_name = std::move(field_name);
}
const ClassType* class_type;
std::string field_name;
};
Expand Down Expand Up @@ -389,8 +395,10 @@ struct ReturnInstruction : InstructionBase {

struct PrintConstantStringInstruction : InstructionBase {
TORQUE_INSTRUCTION_BOILERPLATE()
explicit PrintConstantStringInstruction(std::string message)
: message(std::move(message)) {}
explicit PrintConstantStringInstruction(std::string message) {
// The normal way to write this triggers a bug in Clang on Windows.
this->message = std::move(message);
}

std::string message;
};
Expand All @@ -399,8 +407,10 @@ struct AbortInstruction : InstructionBase {
TORQUE_INSTRUCTION_BOILERPLATE()
enum class Kind { kDebugBreak, kUnreachable, kAssertionFailure };
bool IsBlockTerminator() const override { return kind != Kind::kDebugBreak; }
explicit AbortInstruction(Kind kind, std::string message = "")
: kind(kind), message(std::move(message)) {}
explicit AbortInstruction(Kind kind, std::string message = "") : kind(kind) {
// The normal way to write this triggers a bug in Clang on Windows.
this->message = std::move(message);
}

Kind kind;
std::string message;
Expand Down

0 comments on commit 9df9418

Please sign in to comment.