This commit adds VTableLayoutDiffIR::IsExtended() that determines
whether the difference is a pure extension, i.e., appending virtual
functions to vtables.
Test: ./test.py
Bug: 248418092
Change-Id: I339713c5fff1dfa50dc7875272c0e3a59f858f57
The instructions are organized into a section. The developers who need
to resolve ABI difference can easily find it.
Test: None
Bug: 244520027
Change-Id: I211de0e1f65eece093fe716122753ea795c43b3e
That seems like a sign none of these are used. (Two of them haven't been
touched since their initial import in 2009!)
Test: treehugger
Change-Id: I76042f6c8fab84669c83aa72cd0b5df13f01ed7c
Bug: http://b/241011085
Create symlink lib -> lib64 as toolchain libraries have a RUNPATH pointing
to $ORIGIN/../lib instead of lib64
Test: presubmit with new clang-tools prebuilts
Change-Id: I90973fc756b9489a16a0837473b86e728f50d8e0
This commit is part of a large scale change to fix errorprone
errors that have been downgraded to warnings in the android
source tree, so that they can be promoted to errors again.
The full list of changes include the following, but not all
will be present in any one individual commit:
BadAnnotationImplementation
BadShiftAmount
BanJNDI
BoxedPrimitiveEquality
ComparableType
ComplexBooleanConstant
CollectionToArraySafeParameter
ConditionalExpressionNumericPromotion
DangerousLiteralNull
DoubleBraceInitialization
DurationFrom
DurationTemporalUnit
EmptyTopLevelDeclaration
EqualsNull
EqualsReference
FormatString
FromTemporalAccessor
GetClassOnAnnotation
GetClassOnClass
HashtableContains
IdentityBinaryExpression
IdentityHashMapBoxing
InstantTemporalUnit
InvalidTimeZoneID
InvalidZoneId
IsInstanceIncompatibleType
JUnitParameterMethodNotFound
LockOnBoxedPrimitive
MathRoundIntLong
MislabeledAndroidString
MisusedDayOfYear
MissingSuperCall
MisusedWeekYear
ModifyingCollectionWithItself
NoCanIgnoreReturnValueOnClasses
NonRuntimeAnnotation
NullableOnContainingClass
NullTernary
OverridesJavaxInjectableMethod
ParcelableCreator
PeriodFrom
PreconditionsInvalidPlaceholder
ProtoBuilderReturnValueIgnored
ProtoFieldNullComparison
RandomModInteger
RectIntersectReturnValueIgnored
ReturnValueIgnored
SelfAssignment
SelfComparison
SelfEquals
SizeGreaterThanOrEqualsZero
StringBuilderInitWithChar
TreeToString
TryFailThrowable
UnnecessaryCheckNotNull
UnusedCollectionModifiedInPlace
XorPower
See https://errorprone.info/bugpatterns for more
information on the checks.
Bug: 253827323
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: Ic7e78cc74523ee09c1b4aa9969756f0cfd609e08
The types defined in more than one source file are identified with
"#ODR:" and the source paths. The paths can be in intermediate
directories and differ between build targets. They cause ABI check
failure on opaque types. This commit fixes the bug by removing the
suffixes before the comparison.
Test: make libcamera2ndk
Bug: 253095767
Change-Id: I79e6e843460c981afcf2ce0e0d2ad9335d0b3e90
Because 'adb push' often misses the executable permission, lldbserver
can fail without any meaningful error messages. This may happen when the
users are on Windows. To fix that, explicitly chmod remote lldbserver
after push.
Bug: 185210505
Test: manual
Change-Id: I88defd4905a9b902424ae8ef4b38a16932b31f02
Function parameters can be opaque and have no size information. For
example, __va_list in AArch64 ABI. header-abi-diff considers opaque
types compatible if their mangled names are the same.
The mangled name of __va_list can be _ZTI9__va_list or _ZTISt9__va_list.
They are also compatible.
Test: ./test.py
Bug: 248418092
Change-Id: I812abcabb620301eb575c54c7e3d2ff63dade488
- Remove "VNDK" from the message.
- Deprecate -elf-unreferenced-symbol-errors.
- Fix the status string for CompatibilityStatusIR::UnreferencedChanges.
Test: ./test.py
Bug: 249324120
Change-Id: I5a1fd64f9101caa29d87d9f65bd4d17b8bd77059
Overrides properties will now be captured in json flag files, which will
be copied to installed vendor snapshot modules.
Bug: 216567575
Test: soong test && manual install
Change-Id: I921a19b978b17812e830d15df562d217e4e51f73
Test: run idegen.sh to generate files for IntelliJ without error
Signed-off-by: utzcoz <utzcoz@gmail.com>
Change-Id: If1066d236ef44aff6b9f73a40751ad232a80f6f9
This commit removes the comparison between class size and member offsets
from RecordTypeDiffIR::IsExtended. New members can be added to padding
space in a class without changing the existing members.
Test: ./test.py
Bug: 248418092
Change-Id: I34d002478f1dcfd3c183e76899917e602de2b4c1
Resizing the parameters or return types changes the stack layout. It
is not an allowed extension to functions.
AbiDiffHelper::CompareFunctionTypes additionally checks the sizes of the
parameters and the return types. The difference cannot be ignored by
-allow-extensions. The user who intends to ignore the difference should
specify -ignore-symbols or -ignore-linker-set-key.
Test: ./test.py
Bug: 248418092
Change-Id: Ibef3b9260504afff3fc0260b0565736133b8e0dc
This commit adds RecordTypeDiffIR::IsExtended() that determines whether
the difference is a pure extension, i.e., appending members and
increasing the size. The extensions are stored in
record_type_extension_diffs in abi_diff messages. They can be ignored by
specifying -allow-extensions.
Test: ./test.py
Bug: 248418092
Change-Id: Ibdef042c6176dc84d2dd61f71a3f88035e943dd4
If your app targets Android 12, you must specify the mutability of each PendingIntent
object that your app creates. This additional requirement improves your app's security.
https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability
Android Lint is being updated, and adds an error-level check for this.
Bug: 247885568
Test: Presubmits
Change-Id: I2bb91d98b443af2b5c16944ce197d863dbd33f9a
Test: run idegen.sh to generate files for IntelliJ without error
Signed-off-by: utzcoz <utzcoz@gmail.com>
Change-Id: I80958e94f93a8e1ef546bc34bd929d04a224dc9e
RecordTypeDiff and EnumTypeDiff in abi_diff.proto contain linker set
keys. The developers can copy them to the ignore list. The other Diff
messages do not need the field because it's in the messages imported
from abi_dump.proto.
Test: Update prebuilts/clang-tools; make libz
Bug: 243903630
Change-Id: I1e90d3c6cbfd09d72b3fdb244a4079ae899630aa
this app is designed for emulator
Bug: 247004472
Test: presubmit
Signed-off-by: Roman Kiryanov <rkir@google.com>
Change-Id: I3fa6178d51551bc3540d03827dea17d5abba06c7