Mercurial > hg > graal-jvmci-8
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()) { |