Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
halo
art
Commits
8d5c5f43
Commit
8d5c5f43
authored
9 years ago
by
Calin Juravle
Committed by
Android Git Automerger
9 years ago
Browse files
Options
Download
Plain Diff
am
163a7bcc
: am
54d8f4bc
: Fix in reference type propagation
* commit '
163a7bcc
': Fix in reference type propagation
parents
6d9c13fd
163a7bcc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
1 deletion
+52
-1
compiler/optimizing/reference_type_propagation.cc
compiler/optimizing/reference_type_propagation.cc
+3
-1
test/529-checker-rtp-bug/expected.txt
test/529-checker-rtp-bug/expected.txt
+0
-0
test/529-checker-rtp-bug/info.txt
test/529-checker-rtp-bug/info.txt
+1
-0
test/529-checker-rtp-bug/src/Main.java
test/529-checker-rtp-bug/src/Main.java
+48
-0
No files found.
compiler/optimizing/reference_type_propagation.cc
View file @
8d5c5f43
...
...
@@ -316,7 +316,9 @@ bool ReferenceTypePropagation::UpdateNullability(HInstruction* instr) {
void
ReferenceTypePropagation
::
ProcessWorklist
()
{
while
(
!
worklist_
.
IsEmpty
())
{
HInstruction
*
instruction
=
worklist_
.
Pop
();
if
(
UpdateNullability
(
instruction
)
||
UpdateReferenceTypeInfo
(
instruction
))
{
bool
updated_nullability
=
UpdateNullability
(
instruction
);
bool
updated_reference_type
=
UpdateReferenceTypeInfo
(
instruction
);
if
(
updated_nullability
||
updated_reference_type
)
{
AddDependentInstructionsToWorklist
(
instruction
);
}
}
...
...
This diff is collapsed.
Click to expand it.
test/529-checker-rtp-bug/expected.txt
0 → 100644
View file @
8d5c5f43
This diff is collapsed.
Click to expand it.
test/529-checker-rtp-bug/info.txt
0 → 100644
View file @
8d5c5f43
Test that we set the proper types for objects (b/25008765).
This diff is collapsed.
Click to expand it.
test/529-checker-rtp-bug/src/Main.java
0 → 100644
View file @
8d5c5f43
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
final
class
Final
{
}
public
class
Main
{
// CHECK-START: Final Main.testKeepCheckCast(java.lang.Object, boolean) reference_type_propagation (after)
// CHECK: [[Phi:l\d+]] Phi
// CHECK: [[Class:l\d+]] LoadClass
// CHECK: CheckCast [ [[Phi]] [[Class]] ]
// CHECK: Return [ [[Phi]] ]
// CHECK-START: Final Main.testKeepCheckCast(java.lang.Object, boolean) instruction_simplifier_after_types (after)
// CHECK: [[Phi:l\d+]] Phi
// CHECK: [[Class:l\d+]] LoadClass
// CHECK: CheckCast
// CHECK: Return [ [[Phi]] ]
public
static
Final
testKeepCheckCast
(
Object
o
,
boolean
cond
)
{
Object
x
=
new
Final
();
while
(
cond
)
{
x
=
o
;
cond
=
false
;
}
return
(
Final
)
x
;
}
public
static
void
main
(
String
[]
args
)
{
try
{
testKeepCheckCast
(
new
Object
(),
true
);
throw
new
Error
(
"Expected check cast exception"
);
}
catch
(
ClassCastException
e
)
{
// expected
}
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment