Closed
Bug 1384719
Opened 7 years ago
Closed 7 years ago
"error: implicit conversion of nullptr constant to 'bool'" in nsCSSVisitedDependentPropList.h
Categories
(Core :: CSS Parsing and Computation, defect)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
FIXED
mozilla56
Tracking | Status | |
---|---|---|
firefox56 | --- | fixed |
People
(Reporter: botond, Assigned: botond)
References
Details
Attachments
(1 file)
I'm getting the following errors building latest m-c with clang 3.8 and --enable-warnings-as-errors: 0:26.92 In file included from /home/botond/dev/mozilla/central/objdir-desktop-clang/layout/style/Unified_cpp_layout_style5.cpp:47: 0:26.92 In file included from /home/botond/dev/mozilla/central/layout/style/nsStyleContext.cpp:366: 0:26.92 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:23:153: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.92 if (!change && (IsGecko() ? PeekStyleColor() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_Color))) ? AsServo()->ComputedData()->GetStyleColor() : nullptr))) { const nsStyleColor* thisVisStruct = thisVis->ThreadsafeStyleColor(); const nsStyleColor* otherVisStruct = otherVis->ThreadsafeStyleColor(); if (thisVisStruct->mColor != otherVisStruct->mColor) { change = true; } } 0:26.92 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:24:168: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleBackground() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_Background))) ? AsServo()->ComputedData()->GetStyleBackground() : nullptr))) { const nsStyleBackground* thisVisStruct = thisVis->ThreadsafeStyleBackground(); const nsStyleBackground* otherVisStruct = otherVis->ThreadsafeStyleBackground(); if (thisVisStruct->mBackgroundColor != otherVisStruct->mBackgroundColor) { change = true; } } 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:25:156: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleBorder() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_Border))) ? AsServo()->ComputedData()->GetStyleBorder() : nullptr))) { const nsStylerTopColor || thisVisStruct->mBorderRightColor != otherVisStruct->mBorderRightColor || thisVisStruct->mBorderBottomColor != otherVisStruct->mBorderBottomColor || thisVisStruct->mBorderLeftCol 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:29:159: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleOutline() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_Outline))) ? AsServo()->ComputedData()->GetStyleOutline() : nullptr))) { const nsStOutlineColor) { change = true; } } 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:30:156: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleColumn() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_Column))) ? AsServo()->ComputedData()->GetStyleColumn() : nullptr))) { const nsStylemnRuleColor) { change = true; } } 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:31:150: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleText() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_Text))) ? AsServo()->ComputedData()->GetStyleText() : nullptr))) { const nsStyleText* r || thisVisStruct->mWebkitTextFillColor != otherVisStruct->mWebkitTextFillColor || thisVisStruct->mWebkitTextStrokeColor != otherVisStruct->mWebkitTextStrokeColor) { change = true; } } 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:34:165: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleTextReset() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_TextReset))) ? AsServo()->ComputedData()->GetStyleTextReset() : nullptr))) { cons != otherVisStruct->mTextDecorationColor) { change = true; } } 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:35:147: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleSVG() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_SVG))) ? AsServo()->ComputedData()->GetStyleSVG() : nullptr))) { const nsStyleSVG* thisherVisStruct->mStroke) { change = true; } } 0:26.93 ~~ ^~~~~~~ 0:26.93 false 0:26.93 /home/botond/dev/mozilla/central/layout/style/nsCSSVisitedDependentPropList.h:36:177: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] 0:26.93 if (!change && (IsGecko() ? PeekStyleUserInterface() : ((aRelevantStructs & (1 << uint64_t(eStyleStruct_UserInterface))) ? AsServo()->ComputedData()->GetStyleUserInterface() : nullpStruct->mCaretColor != otherVisStruct->mCaretColor) { change = true; } } 0:26.93 ~~ ^~~~~ 0:26.93 false 0:26.93 9 errors generated.
Assignee | ||
Comment 1•7 years ago
|
||
Appears to be a regression from bug 1380133. Reduced code pattern that triggers the warning: $ cat test.cpp void foo(bool a, void* b) { if (a ? b : nullptr) {} } $ clang++ -c -std=c++11 -Wall -Werror test.cpp test.cpp:2:15: error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion] if (a ? b : nullptr) {} ~~ ^~~~~~~ false 1 error generated.
Blocks: 1380133
Comment hidden (mozreview-request) |
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → botond
Comment 3•7 years ago
|
||
mozreview-review |
Comment on attachment 8890546 [details] Bug 1384719 - Fix -Wnull-conversion warning in nsStyleContext::CalcStyleDifference(). https://reviewboard.mozilla.org/r/161680/#review167158 Thanks for fixing this. ::: layout/style/nsStyleContext.cpp:357 (Diff revision 1) > // |thisVis| (including this function if we skip one of these checks > // due to change being true already or due to the old style context > // not having a style-if-visited), but not the other way around. > #define STYLE_FIELD(name_) thisVisStruct->name_ != otherVisStruct->name_ > #define STYLE_STRUCT(name_, fields_) \ > - if (!change && PEEK(name_)) { \ > + if (!change && (PEEK(name_) != nullptr)) { \ Nit: please fix the alignment of the backslash.
Attachment #8890546 -
Flags: review?(cam) → review+
Comment hidden (mozreview-request) |
Assignee | ||
Comment 5•7 years ago
|
||
(In reply to Cameron McCormack (:heycam) from comment #3) > Nit: please fix the alignment of the backslash. Fixed.
Pushed by bballo@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fcae3602b0c3 Fix -Wnull-conversion warning in nsStyleContext::CalcStyleDifference(). r=heycam
Comment 7•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fcae3602b0c3
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox56:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in
before you can comment on or make changes to this bug.
Description
•