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 |
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
•