Details
Diff Detail
Event Timeline
This seems incorrect. There is an argument to the call. Why do you think that this change is needed?
.../build/src/compiler-rt/lib/builtins/clear_cache.c: In function '__clear_cache': .../build/src/compiler-rt/lib/builtins/clear_cache.c:106:9: error: asm-specifier for variable 'start_reg' conflicts with asm clobber list __asm __volatile("svc 0x0" : "=r"(start_reg) ^ .../build/src/compiler-rt/lib/builtins/clear_cache.c:106:9: error: asm-specifier for variable 'start_reg' conflicts with asm clobber list .../build/obj/arm-linux-androideabi/rt/compiler-rt/triple/builtins/armv7/SubDir.lib__builtins/clear_cache.o] Error 1
I believe the compiler takes into account r0 being changed/clobbered, since it's already in the output register list.
Ah, wrapping on a phone made it look like you were modifying the input parameters, not the clobbers list. What are you seeing that error with? Ive not seen it with clang nor gcc.
GCC 4.8 in the Android NDK.
The person who made this change reportedly made it after it failed on Clang too. Not sure exactly. I'll try with Clang.
Clang 3.7 compiles the version GCC rejects fine.
But even with the clobber list removed, the output assembly is identical.
Seems that gcc 5.3.0 also will warn about this. Since this shouldn't effect the output, I think that this should be safe enough to merge.