comparison src/share/vm/prims/jvm.cpp @ 17937:78bbf4d43a14

8037816: Fix for 8036122 breaks build with Xcode5/clang 8043029: Change 8037816 breaks HS build with older GCC versions which don't support diagnostic pragmas 8043164: Format warning in traceStream.hpp Summary: Backport of main fix + two corrections, enables clang compilation, turns on format attributes, corrects/mutes warnings Reviewed-by: kvn, coleenp, iveresov, twisti
author drchase
date Thu, 22 May 2014 15:52:41 -0400
parents 386dd1c71858
children a103c376459a 54bc75c144b0
comparison
equal deleted inserted replaced
17935:7384f6a12fc1 17937:78bbf4d43a14
218 // Wrapper to trace JVM functions 218 // Wrapper to trace JVM functions
219 219
220 #ifdef ASSERT 220 #ifdef ASSERT
221 class JVMTraceWrapper : public StackObj { 221 class JVMTraceWrapper : public StackObj {
222 public: 222 public:
223 JVMTraceWrapper(const char* format, ...) { 223 JVMTraceWrapper(const char* format, ...) ATTRIBUTE_PRINTF(2, 3) {
224 if (TraceJVMCalls) { 224 if (TraceJVMCalls) {
225 va_list ap; 225 va_list ap;
226 va_start(ap, format); 226 va_start(ap, format);
227 tty->print("JVM "); 227 tty->print("JVM ");
228 tty->vprint_cr(format, ap); 228 tty->vprint_cr(format, ap);
2714 return os::available(fd, pbytes); 2714 return os::available(fd, pbytes);
2715 JVM_END 2715 JVM_END
2716 2716
2717 2717
2718 JVM_LEAF(jlong, JVM_Lseek(jint fd, jlong offset, jint whence)) 2718 JVM_LEAF(jlong, JVM_Lseek(jint fd, jlong offset, jint whence))
2719 JVMWrapper4("JVM_Lseek (0x%x, %Ld, %d)", fd, offset, whence); 2719 JVMWrapper4("JVM_Lseek (0x%x, " INT64_FORMAT ", %d)", fd, (int64_t) offset, whence);
2720 //%note jvm_r6 2720 //%note jvm_r6
2721 return os::lseek(fd, offset, whence); 2721 return os::lseek(fd, offset, whence);
2722 JVM_END 2722 JVM_END
2723 2723
2724 2724
2725 JVM_LEAF(jint, JVM_SetLength(jint fd, jlong length)) 2725 JVM_LEAF(jint, JVM_SetLength(jint fd, jlong length))
2726 JVMWrapper3("JVM_SetLength (0x%x, %Ld)", fd, length); 2726 JVMWrapper3("JVM_SetLength (0x%x, " INT64_FORMAT ")", fd, (int64_t) length);
2727 return os::ftruncate(fd, length); 2727 return os::ftruncate(fd, length);
2728 JVM_END 2728 JVM_END
2729 2729
2730 2730
2731 JVM_LEAF(jint, JVM_Sync(jint fd)) 2731 JVM_LEAF(jint, JVM_Sync(jint fd))
2736 2736
2737 2737
2738 // Printing support ////////////////////////////////////////////////// 2738 // Printing support //////////////////////////////////////////////////
2739 extern "C" { 2739 extern "C" {
2740 2740
2741 ATTRIBUTE_PRINTF(3, 0)
2741 int jio_vsnprintf(char *str, size_t count, const char *fmt, va_list args) { 2742 int jio_vsnprintf(char *str, size_t count, const char *fmt, va_list args) {
2742 // see bug 4399518, 4417214 2743 // see bug 4399518, 4417214
2743 if ((intptr_t)count <= 0) return -1; 2744 if ((intptr_t)count <= 0) return -1;
2744 return vsnprintf(str, count, fmt, args); 2745 return vsnprintf(str, count, fmt, args);
2745 } 2746 }
2746 2747
2747 2748 ATTRIBUTE_PRINTF(3, 0)
2748 int jio_snprintf(char *str, size_t count, const char *fmt, ...) { 2749 int jio_snprintf(char *str, size_t count, const char *fmt, ...) {
2749 va_list args; 2750 va_list args;
2750 int len; 2751 int len;
2751 va_start(args, fmt); 2752 va_start(args, fmt);
2752 len = jio_vsnprintf(str, count, fmt, args); 2753 len = jio_vsnprintf(str, count, fmt, args);
2753 va_end(args); 2754 va_end(args);
2754 return len; 2755 return len;
2755 } 2756 }
2756 2757
2757 2758 ATTRIBUTE_PRINTF(2,3)
2758 int jio_fprintf(FILE* f, const char *fmt, ...) { 2759 int jio_fprintf(FILE* f, const char *fmt, ...) {
2759 int len; 2760 int len;
2760 va_list args; 2761 va_list args;
2761 va_start(args, fmt); 2762 va_start(args, fmt);
2762 len = jio_vfprintf(f, fmt, args); 2763 len = jio_vfprintf(f, fmt, args);
2763 va_end(args); 2764 va_end(args);
2764 return len; 2765 return len;
2765 } 2766 }
2766 2767
2767 2768 ATTRIBUTE_PRINTF(2, 0)
2768 int jio_vfprintf(FILE* f, const char *fmt, va_list args) { 2769 int jio_vfprintf(FILE* f, const char *fmt, va_list args) {
2769 if (Arguments::vfprintf_hook() != NULL) { 2770 if (Arguments::vfprintf_hook() != NULL) {
2770 return Arguments::vfprintf_hook()(f, fmt, args); 2771 return Arguments::vfprintf_hook()(f, fmt, args);
2771 } else { 2772 } else {
2772 return vfprintf(f, fmt, args); 2773 return vfprintf(f, fmt, args);
2773 } 2774 }
2774 } 2775 }
2775 2776
2776 2777 ATTRIBUTE_PRINTF(1, 2)
2777 JNIEXPORT int jio_printf(const char *fmt, ...) { 2778 JNIEXPORT int jio_printf(const char *fmt, ...) {
2778 int len; 2779 int len;
2779 va_list args; 2780 va_list args;
2780 va_start(args, fmt); 2781 va_start(args, fmt);
2781 len = jio_vfprintf(defaultStream::output_stream(), fmt, args); 2782 len = jio_vfprintf(defaultStream::output_stream(), fmt, args);
2908 } 2909 }
2909 oop java_thread = JNIHandles::resolve_non_null(jthread); 2910 oop java_thread = JNIHandles::resolve_non_null(jthread);
2910 JavaThread* receiver = java_lang_Thread::thread(java_thread); 2911 JavaThread* receiver = java_lang_Thread::thread(java_thread);
2911 Events::log_exception(JavaThread::current(), 2912 Events::log_exception(JavaThread::current(),
2912 "JVM_StopThread thread JavaThread " INTPTR_FORMAT " as oop " INTPTR_FORMAT " [exception " INTPTR_FORMAT "]", 2913 "JVM_StopThread thread JavaThread " INTPTR_FORMAT " as oop " INTPTR_FORMAT " [exception " INTPTR_FORMAT "]",
2913 receiver, (address)java_thread, throwable); 2914 p2i(receiver), p2i((address)java_thread), p2i(throwable));
2914 // First check if thread is alive 2915 // First check if thread is alive
2915 if (receiver != NULL) { 2916 if (receiver != NULL) {
2916 // Check if exception is getting thrown at self (use oop equality, since the 2917 // Check if exception is getting thrown at self (use oop equality, since the
2917 // target object might exit) 2918 // target object might exit)
2918 if (java_thread == thread->threadObj()) { 2919 if (java_thread == thread->threadObj()) {