diff options
author | Ian Rogers <irogers@google.com> | 2013-03-04 09:00:40 -0800 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2013-03-04 09:00:40 -0800 |
commit | 8e6960569e9de6350d7da89aa02efe0e4b924d6f (patch) | |
tree | ac01b8f4319f2274b87ff228ccdd91391ba45724 /src/compiler/driver/compiler_driver.h | |
parent | a87f1dc5c1b35d5aa37fd23e83e259dae000b1c2 (diff) | |
download | android_art-8e6960569e9de6350d7da89aa02efe0e4b924d6f.tar.gz android_art-8e6960569e9de6350d7da89aa02efe0e4b924d6f.tar.bz2 android_art-8e6960569e9de6350d7da89aa02efe0e4b924d6f.zip |
Fix bug in GBC expansion wrt invoke return types.
An invoke may return a value but that value is then unused. In this situation
mir_to_gbc will see there is no use and generate a call with a void result.
GBC expansion looks at return types to determine the result of a call, leading
to it converting void calls back to ones returning ints and causing assertion
failures in LLVM.
This change bases the return type of the expanded call on the type of the call
instruction it is expanding.
The change contains some other minor bits of LLVM codegen clean-up.
Change-Id: Ia49e7308a641c96892df21662a5a04696a955e00
Diffstat (limited to 'src/compiler/driver/compiler_driver.h')
0 files changed, 0 insertions, 0 deletions