diff --git a/caps/nsScriptSecurityManager.cpp b/caps/nsScriptSecurityManager.cpp index 2a60221726dd..5e27e73728f6 100644 --- a/caps/nsScriptSecurityManager.cpp +++ b/caps/nsScriptSecurityManager.cpp @@ -154,8 +154,8 @@ inline void SetPendingExceptionASCII(JSContext *cx, const char *aMsg) inline void SetPendingException(JSContext *cx, const char16_t *aMsg) { - NS_ConvertUTF16toUTF8 msg(aMsg); - JS_ReportErrorUTF8(cx, "%s", msg.get()); + // FIXME: Need to convert to UTF-8 (bug XXX). + JS_ReportErrorLatin1(cx, "%hs", aMsg); } // Helper class to get stuff from the ClassInfo and not waste extra time with diff --git a/dom/plugins/base/nsJSNPRuntime.cpp b/dom/plugins/base/nsJSNPRuntime.cpp index d9377a70604d..020cffd4e69c 100644 --- a/dom/plugins/base/nsJSNPRuntime.cpp +++ b/dom/plugins/base/nsJSNPRuntime.cpp @@ -638,7 +638,7 @@ ThrowJSExceptionASCII(JSContext *cx, const char *message) PopException(); } else { - ::JS_ReportErrorASCII(cx, "%s", message); + ::JS_ReportErrorASCII(cx, message); } } diff --git a/js/src/asmjs/AsmJS.cpp b/js/src/asmjs/AsmJS.cpp index e375b49bcb7a..545a95a37842 100644 --- a/js/src/asmjs/AsmJS.cpp +++ b/js/src/asmjs/AsmJS.cpp @@ -2250,7 +2250,7 @@ class MOZ_STACK_CLASS ModuleValidator return false; } - bool failfOffset(uint32_t offset, const char* fmt, ...) MOZ_FORMAT_PRINTF(3, 4) { + bool failfOffset(uint32_t offset, const char* fmt, ...) { va_list ap; va_start(ap, fmt); failfVAOffset(offset, fmt, ap); @@ -2258,7 +2258,7 @@ class MOZ_STACK_CLASS ModuleValidator return false; } - bool failf(ParseNode* pn, const char* fmt, ...) MOZ_FORMAT_PRINTF(3, 4) { + bool failf(ParseNode* pn, const char* fmt, ...) { va_list ap; va_start(ap, fmt); failfVAOffset(pn->pn_pos.begin, fmt, ap); @@ -2944,7 +2944,7 @@ class MOZ_STACK_CLASS FunctionValidator return m_.fail(pn, str); } - bool failf(ParseNode* pn, const char* fmt, ...) MOZ_FORMAT_PRINTF(3, 4) { + bool failf(ParseNode* pn, const char* fmt, ...) { va_list ap; va_start(ap, fmt); m_.failfVAOffset(pn->pn_pos.begin, fmt, ap); @@ -4720,8 +4720,7 @@ static bool CheckSignatureAgainstExisting(ModuleValidator& m, ParseNode* usepn, const Sig& sig, const Sig& existing) { if (sig.args().length() != existing.args().length()) { - return m.failf(usepn, "incompatible number of arguments (%" PRIuSIZE - " here vs. %" PRIuSIZE " before)", + return m.failf(usepn, "incompatible number of arguments (%u here vs. %u before)", sig.args().length(), existing.args().length()); } diff --git a/js/src/asmjs/WasmBinary.cpp b/js/src/asmjs/WasmBinary.cpp index f5104f846b3a..4c1946583a6c 100644 --- a/js/src/asmjs/WasmBinary.cpp +++ b/js/src/asmjs/WasmBinary.cpp @@ -57,7 +57,7 @@ wasm::DecodePreamble(Decoder& d) return d.fail("failed to match magic number"); if (!d.readFixedU32(&u32) || u32 != EncodingVersion) - return d.fail("binary version 0x%" PRIx32 " does not match expected version 0x%" PRIx32, + return d.fail("binary version 0x%lx does not match expected version 0x%lx", u32, EncodingVersion); return true; @@ -151,7 +151,7 @@ wasm::DecodeLimits(Decoder& d, Limits* limits) // TODO (bug 1310149): tighten this check (s/3/1) when the AngryBots demo // gets updated. if (flags & ~uint32_t(0x3)) - return d.fail("unexpected bits set in flags: %" PRIu32, (flags & ~uint32_t(0x3))); + return d.fail("unexpected bits set in flags: %lu", (flags & ~uint32_t(0x3))); if (!d.readVarU32(&limits->initial)) return d.fail("expected initial length"); @@ -163,7 +163,7 @@ wasm::DecodeLimits(Decoder& d, Limits* limits) if (limits->initial > maximum) { return d.fail("memory size minimum must not be greater than maximum; " - "maximum length %" PRIu32 " is less than initial length %" PRIu32 , + "maximum length %lu is less than initial length %lu", maximum, limits->initial); } diff --git a/js/src/asmjs/WasmBinary.h b/js/src/asmjs/WasmBinary.h index 40ad205f73f3..b81121a8b42e 100644 --- a/js/src/asmjs/WasmBinary.h +++ b/js/src/asmjs/WasmBinary.h @@ -778,7 +778,7 @@ class Decoder error_(error) {} - bool fail(const char* msg, ...) MOZ_FORMAT_PRINTF(2, 3); + bool fail(const char* msg, ...); bool fail(UniqueChars msg); void clearError() { if (error_) diff --git a/js/src/asmjs/WasmBinaryIterator.h b/js/src/asmjs/WasmBinaryIterator.h index ae244044225c..9a9bf1edfa06 100644 --- a/js/src/asmjs/WasmBinaryIterator.h +++ b/js/src/asmjs/WasmBinaryIterator.h @@ -725,7 +725,7 @@ template bool ExprIter::fail(const char* msg) { - return d_.fail("%s", msg); + return d_.fail(msg); } template diff --git a/js/src/asmjs/WasmCode.cpp b/js/src/asmjs/WasmCode.cpp index 619dba2b921e..3b0b37c8c1af 100644 --- a/js/src/asmjs/WasmCode.cpp +++ b/js/src/asmjs/WasmCode.cpp @@ -796,10 +796,8 @@ Code::ensureProfilingState(JSContext* cx, bool newProfilingEnabled) if (!name.append('\0')) return false; - TwoByteChars chars(name.begin(), name.length()); - UniqueChars utf8Name(JS::CharsToNewUTF8CharsZ(nullptr, chars).c_str()); - UniqueChars label(JS_smprintf("%s (%s:%u)", - utf8Name.get(), + UniqueChars label(JS_smprintf("%hs (%s:%u)", + name.begin(), metadata_->filename.get(), codeRange.funcLineOrBytecode())); if (!label) { diff --git a/js/src/asmjs/WasmTextToBinary.cpp b/js/src/asmjs/WasmTextToBinary.cpp index 6ac574544680..822654924e8f 100644 --- a/js/src/asmjs/WasmTextToBinary.cpp +++ b/js/src/asmjs/WasmTextToBinary.cpp @@ -1488,7 +1488,7 @@ struct WasmParseContext {} bool fail(const char* message) { - error->reset(js_strdup(message)); + error->reset(JS_smprintf(message)); return false; } ~WasmParseContext() { @@ -3336,9 +3336,12 @@ class Resolver return false; } bool failResolveLabel(const char* kind, AstName name) { - TwoByteChars chars(name.begin(), name.length()); - UniqueChars utf8Chars(CharsToNewUTF8CharsZ(nullptr, chars).c_str()); - error_->reset(JS_smprintf("%s label '%s' not found", kind, utf8Chars.get())); + Vector nameWithNull; + if (!nameWithNull.append(name.begin(), name.length())) + return false; + if (!nameWithNull.append(0)) + return false; + error_->reset(JS_smprintf("%s label '%hs' not found", kind, nameWithNull.begin())); return false; } diff --git a/js/src/devtools/gctrace/gcstats.cpp b/js/src/devtools/gctrace/gcstats.cpp index 865e65839dea..9b7d22247aef 100644 --- a/js/src/devtools/gctrace/gcstats.cpp +++ b/js/src/devtools/gctrace/gcstats.cpp @@ -165,7 +165,6 @@ Array, MaxClasses> finalizedHeapObjectCountByCl std::vector, HeapKinds> > objectCountByTypeHeapAndLifetime; static void -MOZ_FORMAT_PRINTF(1, 2) die(const char* format, ...) { va_list va; diff --git a/js/src/irregexp/RegExpEngine.cpp b/js/src/irregexp/RegExpEngine.cpp index bc556b4a1ef2..623525d2215a 100644 --- a/js/src/irregexp/RegExpEngine.cpp +++ b/js/src/irregexp/RegExpEngine.cpp @@ -1872,7 +1872,7 @@ irregexp::CompilePattern(JSContext* cx, RegExpShared* shared, RegExpCompileData* Analysis analysis(cx, ignore_case, is_ascii, unicode); analysis.EnsureAnalyzed(node); if (analysis.has_failed()) { - JS_ReportErrorASCII(cx, "%s", analysis.errorMessage()); + JS_ReportErrorASCII(cx, analysis.errorMessage()); return RegExpCode(); } diff --git a/js/src/jit/BacktrackingAllocator.cpp b/js/src/jit/BacktrackingAllocator.cpp index bb5dfac3624f..8d2bca22bf67 100644 --- a/js/src/jit/BacktrackingAllocator.cpp +++ b/js/src/jit/BacktrackingAllocator.cpp @@ -1245,7 +1245,7 @@ bool BacktrackingAllocator::processBundle(MIRGenerator* mir, LiveBundle* bundle) { if (JitSpewEnabled(JitSpew_RegAlloc)) { - JitSpew(JitSpew_RegAlloc, "Allocating %s [priority %" PRIuSIZE "] [weight %" PRIuSIZE "]", + JitSpew(JitSpew_RegAlloc, "Allocating %s [priority %lu] [weight %lu]", bundle->toString().get(), computePriority(bundle), computeSpillWeight(bundle)); } @@ -1437,13 +1437,13 @@ BacktrackingAllocator::tryAllocateRegister(PhysicalRegister& r, LiveBundle* bund if (JitSpewEnabled(JitSpew_RegAlloc)) { if (aliasedConflicting.length() == 1) { LiveBundle* existing = aliasedConflicting[0]; - JitSpew(JitSpew_RegAlloc, " %s collides with %s [weight %" PRIuSIZE "]", + JitSpew(JitSpew_RegAlloc, " %s collides with %s [weight %lu]", r.reg.name(), existing->toString().get(), computeSpillWeight(existing)); } else { JitSpew(JitSpew_RegAlloc, " %s collides with the following", r.reg.name()); for (size_t i = 0; i < aliasedConflicting.length(); i++) { LiveBundle* existing = aliasedConflicting[i]; - JitSpew(JitSpew_RegAlloc, " %s [weight %" PRIuSIZE "]", + JitSpew(JitSpew_RegAlloc, " %s [weight %lu]", existing->toString().get(), computeSpillWeight(existing)); } } @@ -1482,7 +1482,7 @@ bool BacktrackingAllocator::evictBundle(LiveBundle* bundle) { if (JitSpewEnabled(JitSpew_RegAlloc)) { - JitSpew(JitSpew_RegAlloc, " Evicting %s [priority %" PRIuSIZE "] [weight %" PRIuSIZE "]", + JitSpew(JitSpew_RegAlloc, " Evicting %s [priority %lu] [weight %lu]", bundle->toString().get(), computePriority(bundle), computeSpillWeight(bundle)); } @@ -2296,8 +2296,7 @@ LiveBundle::toString() const { AutoEnterOOMUnsafeRegion oomUnsafe; - // Suppress -Wformat warning. - char *buf = JS_smprintf("%s", ""); + char *buf = JS_smprintf(""); for (LiveRange::BundleLinkIterator iter = rangesBegin(); buf && iter; iter++) { buf = JS_sprintf_append(buf, "%s %s", diff --git a/js/src/jit/BaselineBailouts.cpp b/js/src/jit/BaselineBailouts.cpp index 0b081c265483..4c990b61de55 100644 --- a/js/src/jit/BaselineBailouts.cpp +++ b/js/src/jit/BaselineBailouts.cpp @@ -230,11 +230,11 @@ struct BaselineStackBuilder if (info) { if (sizeof(size_t) == 4) { JitSpew(JitSpew_BaselineBailouts, - " WRITE_WRD %p/%p %-15s %08" PRIxSIZE, + " WRITE_WRD %p/%p %-15s %08x", header_->copyStackBottom, virtualPointerAtStackOffset(0), info, w); } else { JitSpew(JitSpew_BaselineBailouts, - " WRITE_WRD %p/%p %-15s %016" PRIxSIZE, + " WRITE_WRD %p/%p %-15s %016llx", header_->copyStackBottom, virtualPointerAtStackOffset(0), info, w); } } @@ -246,7 +246,7 @@ struct BaselineStackBuilder return false; if (info) { JitSpew(JitSpew_BaselineBailouts, - " WRITE_VAL %p/%p %-15s %016" PRIx64, + " WRITE_VAL %p/%p %-15s %016llx", header_->copyStackBottom, virtualPointerAtStackOffset(0), info, *((uint64_t*) &val)); } @@ -637,7 +637,7 @@ InitFromBailout(JSContext* cx, HandleScript caller, jsbytecode* callerPC, // | ReturnAddr | <-- return into main jitcode after IC // +===============+ - JitSpew(JitSpew_BaselineBailouts, " Unpacking %s:%" PRIuSIZE, script->filename(), script->lineno()); + JitSpew(JitSpew_BaselineBailouts, " Unpacking %s:%d", script->filename(), script->lineno()); JitSpew(JitSpew_BaselineBailouts, " [BASELINE-JS FRAME]"); // Calculate and write the previous frame pointer value. @@ -749,7 +749,7 @@ InitFromBailout(JSContext* cx, HandleScript caller, jsbytecode* callerPC, } JitSpew(JitSpew_BaselineBailouts, " EnvChain=%p", envChain); blFrame->setEnvironmentChain(envChain); - JitSpew(JitSpew_BaselineBailouts, " ReturnValue=%016" PRIx64, *((uint64_t*) &returnValue)); + JitSpew(JitSpew_BaselineBailouts, " ReturnValue=%016llx", *((uint64_t*) &returnValue)); blFrame->setReturnValue(returnValue); // Do not need to initialize scratchValue field in BaselineFrame. @@ -764,13 +764,13 @@ InitFromBailout(JSContext* cx, HandleScript caller, jsbytecode* callerPC, // in the calling frame. Value thisv = iter.read(); JitSpew(JitSpew_BaselineBailouts, " Is function!"); - JitSpew(JitSpew_BaselineBailouts, " thisv=%016" PRIx64, *((uint64_t*) &thisv)); + JitSpew(JitSpew_BaselineBailouts, " thisv=%016llx", *((uint64_t*) &thisv)); size_t thisvOffset = builder.framePushed() + JitFrameLayout::offsetOfThis(); builder.valuePointerAtStackOffset(thisvOffset).set(thisv); MOZ_ASSERT(iter.numAllocations() >= CountArgSlots(script, fun)); - JitSpew(JitSpew_BaselineBailouts, " frame slots %u, nargs %" PRIuSIZE ", nfixed %" PRIuSIZE, + JitSpew(JitSpew_BaselineBailouts, " frame slots %u, nargs %u, nfixed %u", iter.numAllocations(), fun->nargs(), script->nfixed()); if (!callerPC) { @@ -786,7 +786,7 @@ InitFromBailout(JSContext* cx, HandleScript caller, jsbytecode* callerPC, for (uint32_t i = 0; i < fun->nargs(); i++) { Value arg = iter.read(); - JitSpew(JitSpew_BaselineBailouts, " arg %d = %016" PRIx64, + JitSpew(JitSpew_BaselineBailouts, " arg %d = %016llx", (int) i, *((uint64_t*) &arg)); if (callerPC) { size_t argOffset = builder.framePushed() + JitFrameLayout::offsetOfActualArg(i); @@ -1314,7 +1314,7 @@ InitFromBailout(JSContext* cx, HandleScript caller, jsbytecode* callerPC, return false; // Push callee token (must be a JS Function) - JitSpew(JitSpew_BaselineBailouts, " Callee = %016" PRIx64, callee.asRawBits()); + JitSpew(JitSpew_BaselineBailouts, " Callee = %016llx", callee.asRawBits()); JSFunction* calleeFun = &callee.toObject().as(); if (!builder.writePtr(CalleeToToken(calleeFun, JSOp(*pc) == JSOP_NEW), "CalleeToken")) @@ -1494,7 +1494,7 @@ jit::BailoutIonToBaseline(JSContext* cx, JitActivation* activation, JitFrameIter // | ||||| | // +---------------+ - JitSpew(JitSpew_BaselineBailouts, "Bailing to baseline %s:%" PRIuSIZE " (IonScript=%p) (FrameType=%d)", + JitSpew(JitSpew_BaselineBailouts, "Bailing to baseline %s:%u (IonScript=%p) (FrameType=%d)", iter.script()->filename(), iter.script()->lineno(), (void*) iter.ionScript(), (int) prevFrameType); @@ -1514,7 +1514,7 @@ jit::BailoutIonToBaseline(JSContext* cx, JitActivation* activation, JitFrameIter propagatingExceptionForDebugMode = false; } - JitSpew(JitSpew_BaselineBailouts, " Reading from snapshot offset %u size %" PRIuSIZE, + JitSpew(JitSpew_BaselineBailouts, " Reading from snapshot offset %u size %u", iter.snapshotOffset(), iter.ionScript()->snapshotsListSize()); if (!excInfo) @@ -1540,7 +1540,7 @@ jit::BailoutIonToBaseline(JSContext* cx, JitActivation* activation, JitFrameIter RootedFunction callee(cx, iter.maybeCallee()); RootedScript scr(cx, iter.script()); if (callee) { - JitSpew(JitSpew_BaselineBailouts, " Callee function (%s:%" PRIuSIZE ")", + JitSpew(JitSpew_BaselineBailouts, " Callee function (%s:%u)", scr->filename(), scr->lineno()); } else { JitSpew(JitSpew_BaselineBailouts, " No callee!"); @@ -1575,7 +1575,7 @@ jit::BailoutIonToBaseline(JSContext* cx, JitActivation* activation, JitFrameIter TraceLogStartEvent(logger, TraceLogger_Baseline); } - JitSpew(JitSpew_BaselineBailouts, " FrameNo %" PRIuSIZE, frameNo); + JitSpew(JitSpew_BaselineBailouts, " FrameNo %d", frameNo); // If we are bailing out to a catch or finally block in this frame, // pass excInfo to InitFromBailout and don't unpack any other frames. @@ -1671,7 +1671,7 @@ InvalidateAfterBailout(JSContext* cx, HandleScript outerScript, const char* reas static void HandleBoundsCheckFailure(JSContext* cx, HandleScript outerScript, HandleScript innerScript) { - JitSpew(JitSpew_IonBailouts, "Bounds check failure %s:%" PRIuSIZE ", inlined into %s:%" PRIuSIZE, + JitSpew(JitSpew_IonBailouts, "Bounds check failure %s:%d, inlined into %s:%d", innerScript->filename(), innerScript->lineno(), outerScript->filename(), outerScript->lineno()); @@ -1686,7 +1686,7 @@ HandleBoundsCheckFailure(JSContext* cx, HandleScript outerScript, HandleScript i static void HandleShapeGuardFailure(JSContext* cx, HandleScript outerScript, HandleScript innerScript) { - JitSpew(JitSpew_IonBailouts, "Shape guard failure %s:%" PRIuSIZE ", inlined into %s:%" PRIuSIZE, + JitSpew(JitSpew_IonBailouts, "Shape guard failure %s:%d, inlined into %s:%d", innerScript->filename(), innerScript->lineno(), outerScript->filename(), outerScript->lineno()); @@ -1701,7 +1701,7 @@ HandleShapeGuardFailure(JSContext* cx, HandleScript outerScript, HandleScript in static void HandleBaselineInfoBailout(JSContext* cx, HandleScript outerScript, HandleScript innerScript) { - JitSpew(JitSpew_IonBailouts, "Baseline info failure %s:%" PRIuSIZE ", inlined into %s:%" PRIuSIZE, + JitSpew(JitSpew_IonBailouts, "Baseline info failure %s:%d, inlined into %s:%d", innerScript->filename(), innerScript->lineno(), outerScript->filename(), outerScript->lineno()); @@ -1711,7 +1711,7 @@ HandleBaselineInfoBailout(JSContext* cx, HandleScript outerScript, HandleScript static void HandleLexicalCheckFailure(JSContext* cx, HandleScript outerScript, HandleScript innerScript) { - JitSpew(JitSpew_IonBailouts, "Lexical check failure %s:%" PRIuSIZE ", inlined into %s:%" PRIuSIZE, + JitSpew(JitSpew_IonBailouts, "Lexical check failure %s:%d, inlined into %s:%d", innerScript->filename(), innerScript->lineno(), outerScript->filename(), outerScript->lineno()); @@ -1754,7 +1754,7 @@ CopyFromRematerializedFrame(JSContext* cx, JitActivation* act, uint8_t* fp, size frame->setHasCachedSavedFrame(); JitSpew(JitSpew_BaselineBailouts, - " Copied from rematerialized frame at (%p,%" PRIuSIZE ")", + " Copied from rematerialized frame at (%p,%u)", fp, inlineDepth); // Propagate the debuggee frame flag. For the case where the Debugger did @@ -1891,7 +1891,7 @@ jit::FinishBailoutToBaseline(BaselineBailoutInfo* bailoutInfo) } JitSpew(JitSpew_BaselineBailouts, - " Restored outerScript=(%s:%" PRIuSIZE ",%u) innerScript=(%s:%" PRIuSIZE ",%u) (bailoutKind=%u)", + " Restored outerScript=(%s:%u,%u) innerScript=(%s:%u,%u) (bailoutKind=%u)", outerScript->filename(), outerScript->lineno(), outerScript->getWarmUpCount(), innerScript->filename(), innerScript->lineno(), innerScript->getWarmUpCount(), (unsigned) bailoutKind); diff --git a/js/src/jit/BaselineCompiler.cpp b/js/src/jit/BaselineCompiler.cpp index 846a6cd3c816..5c9174655a9a 100644 --- a/js/src/jit/BaselineCompiler.cpp +++ b/js/src/jit/BaselineCompiler.cpp @@ -7,7 +7,6 @@ #include "jit/BaselineCompiler.h" #include "mozilla/Casting.h" -#include "mozilla/SizePrintfMacros.h" #include "jit/BaselineIC.h" #include "jit/BaselineJIT.h" @@ -83,10 +82,10 @@ BaselineCompiler::addPCMappingEntry(bool addIndexEntry) MethodStatus BaselineCompiler::compile() { - JitSpew(JitSpew_BaselineScripts, "Baseline compiling script %s:%" PRIuSIZE " (%p)", + JitSpew(JitSpew_BaselineScripts, "Baseline compiling script %s:%d (%p)", script->filename(), script->lineno(), script); - JitSpew(JitSpew_Codegen, "# Emitting baseline code for script %s:%" PRIuSIZE, + JitSpew(JitSpew_Codegen, "# Emitting baseline code for script %s:%d", script->filename(), script->lineno()); TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime()); @@ -218,7 +217,7 @@ BaselineCompiler::compile() baselineScript->setMethod(code); baselineScript->setTemplateEnvironment(templateEnv); - JitSpew(JitSpew_BaselineScripts, "Created BaselineScript %p (raw %p) for %s:%" PRIuSIZE, + JitSpew(JitSpew_BaselineScripts, "Created BaselineScript %p (raw %p) for %s:%d", (void*) baselineScript.get(), (void*) code->raw(), script->filename(), script->lineno()); @@ -280,7 +279,7 @@ BaselineCompiler::compile() // Always register a native => bytecode mapping entry, since profiler can be // turned on with baseline jitcode on stack, and baseline jitcode cannot be invalidated. { - JitSpew(JitSpew_Profiling, "Added JitcodeGlobalEntry for baseline script %s:%" PRIuSIZE " (%p)", + JitSpew(JitSpew_Profiling, "Added JitcodeGlobalEntry for baseline script %s:%d (%p)", script->filename(), script->lineno(), baselineScript.get()); // Generate profiling string. diff --git a/js/src/jit/BaselineDebugModeOSR.cpp b/js/src/jit/BaselineDebugModeOSR.cpp index 8b937ee24591..889f44dc9b70 100644 --- a/js/src/jit/BaselineDebugModeOSR.cpp +++ b/js/src/jit/BaselineDebugModeOSR.cpp @@ -7,7 +7,6 @@ #include "jit/BaselineDebugModeOSR.h" #include "mozilla/DebugOnly.h" -#include "mozilla/SizePrintfMacros.h" #include "jit/BaselineIC.h" #include "jit/JitcodeMap.h" @@ -323,7 +322,7 @@ SpewPatchBaselineFrame(uint8_t* oldReturnAddress, uint8_t* newReturnAddress, JSScript* script, ICEntry::Kind frameKind, jsbytecode* pc) { JitSpew(JitSpew_BaselineDebugModeOSR, - "Patch return %p -> %p on BaselineJS frame (%s:%" PRIuSIZE ") from %s at %s", + "Patch return %p -> %p on BaselineJS frame (%s:%d) from %s at %s", oldReturnAddress, newReturnAddress, script->filename(), script->lineno(), ICEntryKindToString(frameKind), CodeName[(JSOp)*pc]); } @@ -333,7 +332,7 @@ SpewPatchBaselineFrameFromExceptionHandler(uint8_t* oldReturnAddress, uint8_t* n JSScript* script, jsbytecode* pc) { JitSpew(JitSpew_BaselineDebugModeOSR, - "Patch return %p -> %p on BaselineJS frame (%s:%" PRIuSIZE ") from exception handler at %s", + "Patch return %p -> %p on BaselineJS frame (%s:%d) from exception handler at %s", oldReturnAddress, newReturnAddress, script->filename(), script->lineno(), CodeName[(JSOp)*pc]); } @@ -668,7 +667,7 @@ RecompileBaselineScriptForDebugMode(JSContext* cx, JSScript* script, if (oldBaselineScript->hasDebugInstrumentation() == observing) return true; - JitSpew(JitSpew_BaselineDebugModeOSR, "Recompiling (%s:%" PRIuSIZE ") for %s", + JitSpew(JitSpew_BaselineDebugModeOSR, "Recompiling (%s:%d) for %s", script->filename(), script->lineno(), observing ? "DEBUGGING" : "NORMAL EXECUTION"); script->setBaselineScript(cx->runtime(), nullptr); diff --git a/js/src/jit/BaselineIC.cpp b/js/src/jit/BaselineIC.cpp index 4f43c18989d0..5835283268d4 100644 --- a/js/src/jit/BaselineIC.cpp +++ b/js/src/jit/BaselineIC.cpp @@ -2586,7 +2586,7 @@ DoSetElemFallback(JSContext* cx, BaselineFrame* frame, ICSetElem_Fallback* stub_ { JitSpew(JitSpew_BaselineIC, " Generating SetElem_DenseOrUnboxedArrayAdd stub " - "(shape=%p, group=%p, protoDepth=%" PRIuSIZE ")", + "(shape=%p, group=%p, protoDepth=%u)", shape.get(), group.get(), protoDepth); ICSetElemDenseOrUnboxedArrayAddCompiler compiler(cx, obj, protoDepth); ICUpdatedStub* newStub = compiler.getStub(compiler.getStubSpace(outerScript)); diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp index 72018eacd719..680748482a3c 100644 --- a/js/src/jit/CodeGenerator.cpp +++ b/js/src/jit/CodeGenerator.cpp @@ -9244,7 +9244,7 @@ CodeGenerator::generateWasm(wasm::SigIdDesc sigId, wasm::TrapOffset trapOffset, bool CodeGenerator::generate() { - JitSpew(JitSpew_Codegen, "# Emitting code for script %s:%" PRIuSIZE, + JitSpew(JitSpew_Codegen, "# Emitting code for script %s:%d", gen->info().script()->filename(), gen->info().script()->lineno()); diff --git a/js/src/jit/FlowAliasAnalysis.cpp b/js/src/jit/FlowAliasAnalysis.cpp index 2b88e36785af..e237163bb7f8 100644 --- a/js/src/jit/FlowAliasAnalysis.cpp +++ b/js/src/jit/FlowAliasAnalysis.cpp @@ -402,7 +402,7 @@ DumpImprovement(MDefinition *load, MDefinitionVector& input, MDefinitionVector& if (JitSpewEnabled(JitSpew_Alias)) { Fprinter &print = JitSpewPrinter(); JitSpewHeader(JitSpew_Alias); - print.printf(" Improve dependency from %d", load->id()); + print.printf(" Improve dependency from ", load->id()); DumpStoreList(input); print.printf(" to "); DumpStoreList(output); diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp index 13c20fc41edd..6e164d058f6f 100644 --- a/js/src/jit/Ion.cpp +++ b/js/src/jit/Ion.cpp @@ -6,7 +6,6 @@ #include "jit/Ion.h" -#include "mozilla/IntegerPrintfMacros.h" #include "mozilla/MemoryReporting.h" #include "mozilla/SizePrintfMacros.h" #include "mozilla/ThreadLocal.h" @@ -2137,7 +2136,7 @@ TrackIonAbort(JSContext* cx, JSScript* script, jsbytecode* pc, const char* messa static void TrackAndSpewIonAbort(JSContext* cx, JSScript* script, const char* message) { - JitSpew(JitSpew_IonAbort, "%s", message); + JitSpew(JitSpew_IonAbort, message); TrackIonAbort(cx, script, script->code(), message); } @@ -2396,7 +2395,7 @@ CheckScriptSize(JSContext* cx, JSScript* script) numLocalsAndArgs > MAX_MAIN_THREAD_LOCALS_AND_ARGS) { if (!OffThreadCompilationAvailable(cx)) { - JitSpew(JitSpew_IonAbort, "Script too large (%" PRIuSIZE " bytes) (%u locals/args)", + JitSpew(JitSpew_IonAbort, "Script too large (%u bytes) (%u locals/args)", script->length(), numLocalsAndArgs); TrackIonAbort(cx, script, script->code(), "too large"); return Method_CantCompile; @@ -3015,7 +3014,7 @@ InvalidateActivation(FreeOp* fop, const JitActivationIterator& activations, bool #ifdef JS_JITSPEW switch (it.type()) { case JitFrame_Exit: - JitSpew(JitSpew_IonInvalidate, "#%" PRIuSIZE " exit frame @ %p", frameno, it.fp()); + JitSpew(JitSpew_IonInvalidate, "#%d exit frame @ %p", frameno, it.fp()); break; case JitFrame_BaselineJS: case JitFrame_IonJS: @@ -3030,26 +3029,26 @@ InvalidateActivation(FreeOp* fop, const JitActivationIterator& activations, bool else if (it.isBailoutJS()) type = "Bailing"; JitSpew(JitSpew_IonInvalidate, - "#%" PRIuSIZE " %s JS frame @ %p, %s:%" PRIuSIZE " (fun: %p, script: %p, pc %p)", + "#%d %s JS frame @ %p, %s:%" PRIuSIZE " (fun: %p, script: %p, pc %p)", frameno, type, it.fp(), it.script()->maybeForwardedFilename(), it.script()->lineno(), it.maybeCallee(), (JSScript*)it.script(), it.returnAddressToFp()); break; } case JitFrame_IonStub: - JitSpew(JitSpew_IonInvalidate, "#%" PRIuSIZE " ion stub frame @ %p", frameno, it.fp()); + JitSpew(JitSpew_IonInvalidate, "#%d ion stub frame @ %p", frameno, it.fp()); break; case JitFrame_BaselineStub: - JitSpew(JitSpew_IonInvalidate, "#%" PRIuSIZE " baseline stub frame @ %p", frameno, it.fp()); + JitSpew(JitSpew_IonInvalidate, "#%d baseline stub frame @ %p", frameno, it.fp()); break; case JitFrame_Rectifier: - JitSpew(JitSpew_IonInvalidate, "#%" PRIuSIZE " rectifier frame @ %p", frameno, it.fp()); + JitSpew(JitSpew_IonInvalidate, "#%d rectifier frame @ %p", frameno, it.fp()); break; case JitFrame_IonAccessorIC: - JitSpew(JitSpew_IonInvalidate, "#%" PRIuSIZE " ion IC getter/setter frame @ %p", frameno, it.fp()); + JitSpew(JitSpew_IonInvalidate, "#%d ion IC getter/setter frame @ %p", frameno, it.fp()); break; case JitFrame_Entry: - JitSpew(JitSpew_IonInvalidate, "#%" PRIuSIZE " entry frame @ %p", frameno, it.fp()); + JitSpew(JitSpew_IonInvalidate, "#%d entry frame @ %p", frameno, it.fp()); break; } #endif // JS_JITSPEW @@ -3144,7 +3143,7 @@ InvalidateActivation(FreeOp* fop, const JitActivationIterator& activations, bool CodeLocationLabel osiPatchPoint = SafepointReader::InvalidationPatchPoint(ionScript, si); CodeLocationLabel invalidateEpilogue(ionCode, CodeOffset(ionScript->invalidateEpilogueOffset())); - JitSpew(JitSpew_IonInvalidate, " ! Invalidate ionScript %p (inv count %" PRIuSIZE ") -> patching osipoint %p", + JitSpew(JitSpew_IonInvalidate, " ! Invalidate ionScript %p (inv count %u) -> patching osipoint %p", ionScript, ionScript->invalidationCount(), (void*) osiPatchPoint.raw()); Assembler::PatchWrite_NearCall(osiPatchPoint, invalidateEpilogue); } @@ -3361,7 +3360,7 @@ AutoFlushICache::setRange(uintptr_t start, size_t len) AutoFlushICache* afc = TlsPerThreadData.get()->PerThreadData::autoFlushICache(); MOZ_ASSERT(afc); MOZ_ASSERT(!afc->start_); - JitSpewCont(JitSpew_CacheFlush, "(%" PRIxPTR " %" PRIxSIZE "):", start, len); + JitSpewCont(JitSpew_CacheFlush, "(%x %x):", start, len); uintptr_t stop = start + len; afc->start_ = start; diff --git a/js/src/jit/IonAnalysis.cpp b/js/src/jit/IonAnalysis.cpp index 294331b10865..e683b9fb695d 100644 --- a/js/src/jit/IonAnalysis.cpp +++ b/js/src/jit/IonAnalysis.cpp @@ -6,8 +6,6 @@ #include "jit/IonAnalysis.h" -#include "mozilla/SizePrintfMacros.h" - #include "jit/AliasAnalysis.h" #include "jit/BaselineInspector.h" #include "jit/BaselineJIT.h" @@ -447,10 +445,9 @@ jit::PruneUnusedBranches(MIRGenerator* mir, MIRGraph& graph) shouldBailout = false; JitSpew(JitSpew_Prune, "info: block %d," - " predCount: %" PRIuSIZE ", domInst: %" PRIuSIZE - ", span: %" PRIuSIZE ", effectful: %" PRIuSIZE ", " - " isLoopExit: %s, numSuccessorsOfPred: %" PRIuSIZE "." - " (score: %" PRIuSIZE ", shouldBailout: %s)", + " predCount: %lu, domInst: %lu, span: %lu, effectful: %lu, " + " isLoopExit: %s, numSuccessorsOfPred: %lu." + " (score: %lu, shouldBailout: %s)", block->id(), predCount, numDominatedInst, branchSpan, numEffectfulInst, isLoopExit ? "true" : "false", numSuccessorsOfPreds, score, shouldBailout ? "true" : "false"); diff --git a/js/src/jit/IonBuilder.h b/js/src/jit/IonBuilder.h index 868d9e8e497f..42797a84c8bd 100644 --- a/js/src/jit/IonBuilder.h +++ b/js/src/jit/IonBuilder.h @@ -229,7 +229,7 @@ class IonBuilder MOZ_MUST_USE bool inspectOpcode(JSOp op); uint32_t readIndex(jsbytecode* pc); JSAtom* readAtom(jsbytecode* pc); - bool abort(const char* message, ...) MOZ_FORMAT_PRINTF(2, 3); + bool abort(const char* message, ...); void trackActionableAbort(const char* message); void spew(const char* message); diff --git a/js/src/jit/JSONSpewer.cpp b/js/src/jit/JSONSpewer.cpp index 330b419f5774..d6105f498bab 100644 --- a/js/src/jit/JSONSpewer.cpp +++ b/js/src/jit/JSONSpewer.cpp @@ -8,8 +8,6 @@ #include "jit/JSONSpewer.h" -#include "mozilla/SizePrintfMacros.h" - #include #include "jit/BacktrackingAllocator.h" @@ -148,7 +146,7 @@ JSONSpewer::beginFunction(JSScript* script) { beginObject(); if (script) - stringProperty("name", "%s:%" PRIuSIZE, script->filename(), script->lineno()); + stringProperty("name", "%s:%d", script->filename(), script->lineno()); else stringProperty("name", "asm.js compilation"); beginListProperty("passes"); @@ -158,7 +156,7 @@ void JSONSpewer::beginPass(const char* pass) { beginObject(); - stringProperty("name", "%s", pass); + stringProperty("name", pass); } void diff --git a/js/src/jit/JSONSpewer.h b/js/src/jit/JSONSpewer.h index 02f449c7ab04..f4172c6b46ed 100644 --- a/js/src/jit/JSONSpewer.h +++ b/js/src/jit/JSONSpewer.h @@ -36,8 +36,8 @@ class JSONSpewer void beginObject(); void beginObjectProperty(const char* name); void beginListProperty(const char* name); - void stringValue(const char* format, ...) MOZ_FORMAT_PRINTF(2, 3); - void stringProperty(const char* name, const char* format, ...) MOZ_FORMAT_PRINTF(3, 4); + void stringValue(const char* format, ...); + void stringProperty(const char* name, const char* format, ...); void beginStringProperty(const char* name); void endStringProperty(); void integerValue(int value); diff --git a/js/src/jit/JitSpewer.h b/js/src/jit/JitSpewer.h index a44eec4662f9..024e7d5a1ff8 100644 --- a/js/src/jit/JitSpewer.h +++ b/js/src/jit/JitSpewer.h @@ -172,9 +172,9 @@ class JitSpewIndent ~JitSpewIndent(); }; -void JitSpew(JitSpewChannel channel, const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); -void JitSpewStart(JitSpewChannel channel, const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); -void JitSpewCont(JitSpewChannel channel, const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); +void JitSpew(JitSpewChannel channel, const char* fmt, ...); +void JitSpewStart(JitSpewChannel channel, const char* fmt, ...); +void JitSpewCont(JitSpewChannel channel, const char* fmt, ...); void JitSpewFin(JitSpewChannel channel); void JitSpewHeader(JitSpewChannel channel); bool JitSpewEnabled(JitSpewChannel channel); diff --git a/js/src/jit/MIRGenerator.h b/js/src/jit/MIRGenerator.h index 342ff2945431..2aedc1a924a6 100644 --- a/js/src/jit/MIRGenerator.h +++ b/js/src/jit/MIRGenerator.h @@ -72,7 +72,7 @@ class MIRGenerator // Set an error state and prints a message. Returns false so errors can be // propagated up. - bool abort(const char* message, ...) MOZ_FORMAT_PRINTF(2, 3); // always returns false + bool abort(const char* message, ...); // always returns false bool abortFmt(const char* message, va_list ap); // always returns false bool errored() const { diff --git a/js/src/jit/OptimizationTracking.cpp b/js/src/jit/OptimizationTracking.cpp index 8ef16e33938a..029b3c082be1 100644 --- a/js/src/jit/OptimizationTracking.cpp +++ b/js/src/jit/OptimizationTracking.cpp @@ -326,7 +326,7 @@ UniqueTrackedOptimizations::sortByFrequency(JSContext* cx) MOZ_ASSERT(p); p->value().index = sorted_.length(); - JitSpew(JitSpew_OptimizationTracking, " Entry %" PRIuSIZE " has frequency %" PRIu32, + JitSpew(JitSpew_OptimizationTracking, " Entry %u has frequency %u", sorted_.length(), p->value().frequency); if (!sorted_.append(entries[i])) @@ -765,14 +765,14 @@ IonTrackedOptimizationsRegion::WriteRun(CompactBufferWriter& writer, const UniqueTrackedOptimizations& unique) { // Write the header, which is the range that this whole run encompasses. - JitSpew(JitSpew_OptimizationTracking, " Header: [%" PRIuSIZE ", %" PRIuSIZE "]", + JitSpew(JitSpew_OptimizationTracking, " Header: [%u, %u]", start->startOffset.offset(), (end - 1)->endOffset.offset()); writer.writeUnsigned(start->startOffset.offset()); writer.writeUnsigned((end - 1)->endOffset.offset()); // Write the first entry of the run, which is not delta-encoded. JitSpew(JitSpew_OptimizationTracking, - " [%6" PRIuSIZE ", %6" PRIuSIZE "] vector %3u, offset %4" PRIuSIZE, + " [%6u, %6u] vector %3u, offset %4u", start->startOffset.offset(), start->endOffset.offset(), unique.indexOf(start->optimizations), writer.length()); uint32_t prevEndOffset = start->endOffset.offset(); @@ -789,7 +789,7 @@ IonTrackedOptimizationsRegion::WriteRun(CompactBufferWriter& writer, uint8_t index = unique.indexOf(entry->optimizations); JitSpew(JitSpew_OptimizationTracking, - " [%6u, %6u] delta [+%5u, +%5u] vector %3u, offset %4" PRIuSIZE, + " [%6u, %6u] delta [+%5u, +%5u] vector %3u, offset %4u", startOffset, endOffset, startDelta, length, index, writer.length()); WriteDelta(writer, startDelta, length, index); @@ -825,7 +825,7 @@ WriteOffsetsTable(CompactBufferWriter& writer, const Vector& offse // Write entry offset table. for (size_t i = 0; i < offsets.length(); i++) { - JitSpew(JitSpew_OptimizationTracking, " Entry %" PRIuSIZE " reverse offset %u", + JitSpew(JitSpew_OptimizationTracking, " Entry %u reverse offset %u", i, tableOffset - padding - offsets[i]); writer.writeNativeEndianUint32_t(tableOffset - padding - offsets[i]); } @@ -919,7 +919,7 @@ jit::WriteIonTrackedOptimizationsTable(JSContext* cx, CompactBufferWriter& write if (JitSpewEnabled(JitSpew_OptimizationTracking)) { JitSpewStart(JitSpew_OptimizationTracking, "=> Training data: "); for (const NativeToTrackedOptimizations* entry = start; entry != end; entry++) { - JitSpewCont(JitSpew_OptimizationTracking, "%" PRIuSIZE ",%" PRIuSIZE ",%u ", + JitSpewCont(JitSpew_OptimizationTracking, "%u,%u,%u ", entry->startOffset.offset(), entry->endOffset.offset(), unique.indexOf(entry->optimizations)); } @@ -934,8 +934,7 @@ jit::WriteIonTrackedOptimizationsTable(JSContext* cx, CompactBufferWriter& write JitSpew(JitSpew_Profiling, "=> Writing regions"); while (entry != end) { uint32_t runLength = IonTrackedOptimizationsRegion::ExpectedRunLength(entry, end); - JitSpew(JitSpew_OptimizationTracking, - " Run at entry %" PRIuSIZE ", length %" PRIu32 ", offset %" PRIuSIZE, + JitSpew(JitSpew_OptimizationTracking, " Run at entry %u, length %u, offset %u", entry - start, runLength, writer.length()); if (!offsets.append(writer.length())) @@ -958,7 +957,7 @@ jit::WriteIonTrackedOptimizationsTable(JSContext* cx, CompactBufferWriter& write offsets.clear(); const UniqueTrackedOptimizations::SortedVector& vec = unique.sortedVector(); - JitSpew(JitSpew_OptimizationTracking, "=> Writing unique optimizations table with %" PRIuSIZE " entr%s", + JitSpew(JitSpew_OptimizationTracking, "=> Writing unique optimizations table with %u entr%s", vec.length(), vec.length() == 1 ? "y" : "ies"); // Write out type info payloads. @@ -968,8 +967,7 @@ jit::WriteIonTrackedOptimizationsTable(JSContext* cx, CompactBufferWriter& write for (const UniqueTrackedOptimizations::SortEntry* p = vec.begin(); p != vec.end(); p++) { const TempOptimizationTypeInfoVector* v = p->types; - JitSpew(JitSpew_OptimizationTracking, - " Type info entry %" PRIuSIZE " of length %" PRIuSIZE ", offset %" PRIuSIZE, + JitSpew(JitSpew_OptimizationTracking, " Type info entry %u of length %u, offset %u", p - vec.begin(), v->length(), writer.length()); SpewTempOptimizationTypeInfoVector(v, " "); @@ -1019,8 +1017,7 @@ jit::WriteIonTrackedOptimizationsTable(JSContext* cx, CompactBufferWriter& write // Write out attempts payloads. for (const UniqueTrackedOptimizations::SortEntry* p = vec.begin(); p != vec.end(); p++) { const TempOptimizationAttemptsVector* v = p->attempts; - JitSpew(JitSpew_OptimizationTracking, - " Attempts entry %" PRIuSIZE " of length %" PRIuSIZE ", offset %" PRIuSIZE, + JitSpew(JitSpew_OptimizationTracking, " Attempts entry %u of length %u, offset %u", p - vec.begin(), v->length(), writer.length()); SpewTempOptimizationAttemptsVector(v, " "); diff --git a/js/src/jit/Recover.cpp b/js/src/jit/Recover.cpp index 93b2c2390a3d..73f4393806eb 100644 --- a/js/src/jit/Recover.cpp +++ b/js/src/jit/Recover.cpp @@ -6,8 +6,6 @@ #include "jit/Recover.h" -#include "mozilla/SizePrintfMacros.h" - #include "jsapi.h" #include "jscntxt.h" #include "jsmath.h" @@ -125,7 +123,7 @@ MResumePoint::writeRecoverData(CompactBufferWriter& writer) const uint32_t formalArgs = CountArgSlots(script, fun); uint32_t nallocs = formalArgs + script->nfixed() + exprStack; - JitSpew(JitSpew_IonSnapshots, "Starting frame; implicit %u, formals %u, fixed %" PRIuSIZE ", exprs %u", + JitSpew(JitSpew_IonSnapshots, "Starting frame; implicit %u, formals %u, fixed %u, exprs %u", implicit, formalArgs - implicit, script->nfixed(), exprStack); uint32_t pcoff = script->pcToOffset(pc()); diff --git a/js/src/jit/Safepoints.cpp b/js/src/jit/Safepoints.cpp index b0bb530f9933..c775c7d131c0 100644 --- a/js/src/jit/Safepoints.cpp +++ b/js/src/jit/Safepoints.cpp @@ -7,7 +7,6 @@ #include "jit/Safepoints.h" #include "mozilla/MathAlgorithms.h" -#include "mozilla/SizePrintfMacros.h" #include "jit/BitSet.h" #include "jit/JitSpewer.h" @@ -32,7 +31,7 @@ SafepointWriter::init(TempAllocator& alloc) uint32_t SafepointWriter::startEntry() { - JitSpew(JitSpew_Safepoints, "Encoding safepoint (position %" PRIuSIZE "):", stream_.length()); + JitSpew(JitSpew_Safepoints, "Encoding safepoint (position %d):", stream_.length()); return uint32_t(stream_.length()); } diff --git a/js/src/jit/SharedIC.cpp b/js/src/jit/SharedIC.cpp index 177f5e8e394e..1c227439e349 100644 --- a/js/src/jit/SharedIC.cpp +++ b/js/src/jit/SharedIC.cpp @@ -2132,7 +2132,7 @@ UpdateExistingGenerationalDOMProxyStub(ICGetProp_Fallback* stub, // Update generation uint64_t generation = expandoAndGeneration->generation; JitSpew(JitSpew_BaselineIC, - " Updating existing stub with generation, old value: %" PRIu64 ", " + " Updating existing stub with generation, old value: %i, " "new value: %" PRIu64 "", updateStub->generation(), generation); updateStub->setGeneration(generation); diff --git a/js/src/jit/SharedIC.h b/js/src/jit/SharedIC.h index 42198c89096f..b8e081688897 100644 --- a/js/src/jit/SharedIC.h +++ b/js/src/jit/SharedIC.h @@ -202,10 +202,8 @@ class ICFallbackStub; #undef FORWARD_DECLARE_STUBS #ifdef JS_JITSPEW -void FallbackICSpew(JSContext* cx, ICFallbackStub* stub, const char* fmt, ...) - MOZ_FORMAT_PRINTF(3, 4); -void TypeFallbackICSpew(JSContext* cx, ICTypeMonitor_Fallback* stub, const char* fmt, ...) - MOZ_FORMAT_PRINTF(3, 4); +void FallbackICSpew(JSContext* cx, ICFallbackStub* stub, const char* fmt, ...); +void TypeFallbackICSpew(JSContext* cx, ICTypeMonitor_Fallback* stub, const char* fmt, ...); #else #define FallbackICSpew(...) #define TypeFallbackICSpew(...) diff --git a/js/src/jit/ValueNumbering.cpp b/js/src/jit/ValueNumbering.cpp index 8d563f8ef909..e8b245274bfe 100644 --- a/js/src/jit/ValueNumbering.cpp +++ b/js/src/jit/ValueNumbering.cpp @@ -996,7 +996,7 @@ ValueNumberer::visitBlock(MBasicBlock* block, const MBasicBlock* dominatorRoot) bool ValueNumberer::visitDominatorTree(MBasicBlock* dominatorRoot) { - JitSpew(JitSpew_GVN, " Visiting dominator tree (with %" PRIu64 " blocks) rooted at block%u%s", + JitSpew(JitSpew_GVN, " Visiting dominator tree (with %llu blocks) rooted at block%u%s", uint64_t(dominatorRoot->numDominated()), dominatorRoot->id(), dominatorRoot == graph_.entryBlock() ? " (normal entry block)" : dominatorRoot == graph_.osrBlock() ? " (OSR entry block)" : @@ -1222,7 +1222,7 @@ ValueNumberer::run(UpdateAliasAnalysisFlag updateAliasAnalysis) { updateAliasAnalysis_ = updateAliasAnalysis == UpdateAliasAnalysis; - JitSpew(JitSpew_GVN, "Running GVN on graph (with %" PRIu64 " blocks)", + JitSpew(JitSpew_GVN, "Running GVN on graph (with %llu blocks)", uint64_t(graph_.numBlocks())); // Adding fixup blocks only make sense iff we have a second entry point into @@ -1282,7 +1282,7 @@ ValueNumberer::run(UpdateAliasAnalysisFlag updateAliasAnalysis) break; } - JitSpew(JitSpew_GVN, "Re-running GVN on graph (run %d, now with %" PRIu64 " blocks)", + JitSpew(JitSpew_GVN, "Re-running GVN on graph (run %d, now with %llu blocks)", runs, uint64_t(graph_.numBlocks())); } diff --git a/js/src/jit/arm/Assembler-arm.h b/js/src/jit/arm/Assembler-arm.h index 04813096c044..455a3e828515 100644 --- a/js/src/jit/arm/Assembler-arm.h +++ b/js/src/jit/arm/Assembler-arm.h @@ -1363,7 +1363,7 @@ class Assembler : public AssemblerShared uint32_t spewResolve(Label* l); uint32_t spewProbe(Label* l); uint32_t spewDefine(Label* l); - void spew(const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); + void spew(const char* fmt, ...); void spew(const char* fmt, va_list args); #endif diff --git a/js/src/jit/arm/disasm/Disasm-arm.cpp b/js/src/jit/arm/disasm/Disasm-arm.cpp index 8bd7bff0c283..1e0cb389387b 100644 --- a/js/src/jit/arm/disasm/Disasm-arm.cpp +++ b/js/src/jit/arm/disasm/Disasm-arm.cpp @@ -43,7 +43,6 @@ namespace disasm { // Helper function for printing to a Vector. static int -MOZ_FORMAT_PRINTF(2, 3) SNPrintF(V8Vector str, const char* format, ...) { va_list args; diff --git a/js/src/jit/shared/CodeGenerator-shared.cpp b/js/src/jit/shared/CodeGenerator-shared.cpp index f69cb7449196..30c638edc375 100644 --- a/js/src/jit/shared/CodeGenerator-shared.cpp +++ b/js/src/jit/shared/CodeGenerator-shared.cpp @@ -7,7 +7,6 @@ #include "jit/shared/CodeGenerator-shared-inl.h" #include "mozilla/DebugOnly.h" -#include "mozilla/SizePrintfMacros.h" #include "jit/CompactBuffer.h" #include "jit/IonCaches.h" @@ -234,7 +233,7 @@ CodeGeneratorShared::addNativeToBytecodeEntry(const BytecodeSite* site) // bytecodeOffset, but the nativeOffset has changed, do nothing. // The same site just generated some more code. if (lastEntry.tree == tree && lastEntry.pc == pc) { - JitSpew(JitSpew_Profiling, " => In-place update [%" PRIuSIZE "-%" PRIu32 "]", + JitSpew(JitSpew_Profiling, " => In-place update [%u-%u]", lastEntry.nativeOffset.offset(), nativeOffset); return true; } @@ -281,7 +280,7 @@ CodeGeneratorShared::dumpNativeToBytecodeEntries() { #ifdef JS_JITSPEW InlineScriptTree* topTree = gen->info().inlineScriptTree(); - JitSpewStart(JitSpew_Profiling, "Native To Bytecode Entries for %s:%" PRIuSIZE "\n", + JitSpewStart(JitSpew_Profiling, "Native To Bytecode Entries for %s:%d\n", topTree->script()->filename(), topTree->script()->lineno()); for (unsigned i = 0; i < nativeToBytecodeList_.length(); i++) dumpNativeToBytecodeEntry(i); @@ -304,16 +303,16 @@ CodeGeneratorShared::dumpNativeToBytecodeEntry(uint32_t idx) if (nextRef->tree == ref.tree) pcDelta = nextRef->pc - ref.pc; } - JitSpewStart(JitSpew_Profiling, " %08" PRIxSIZE " [+%-6d] => %-6ld [%-4d] {%-10s} (%s:%" PRIuSIZE, + JitSpewStart(JitSpew_Profiling, " %08x [+%-6d] => %-6d [%-4d] {%-10s} (%s:%d", ref.nativeOffset.offset(), nativeDelta, - (long) (ref.pc - script->code()), + ref.pc - script->code(), pcDelta, CodeName[JSOp(*ref.pc)], script->filename(), script->lineno()); for (tree = tree->caller(); tree; tree = tree->caller()) { - JitSpewCont(JitSpew_Profiling, " <= %s:%" PRIuSIZE, tree->script()->filename(), + JitSpewCont(JitSpew_Profiling, " <= %s:%d", tree->script()->filename(), tree->script()->lineno()); } JitSpewCont(JitSpew_Profiling, ")"); @@ -928,7 +927,7 @@ CodeGeneratorShared::generateCompactTrackedOptimizationsMap(JSContext* cx, JitCo "== Compact Native To Optimizations Map [%p-%p] size %u", data, data + trackedOptimizationsMapSize_, trackedOptimizationsMapSize_); JitSpew(JitSpew_OptimizationTracking, - " with type list of length %" PRIuSIZE ", size %" PRIuSIZE, + " with type list of length %u, size %u", allTypes->length(), allTypes->length() * sizeof(IonTrackedTypeWithAddendum)); return true; diff --git a/js/src/jit/shared/IonAssemblerBufferWithConstantPools.h b/js/src/jit/shared/IonAssemblerBufferWithConstantPools.h index 74fa60b12402..c6783c61950a 100644 --- a/js/src/jit/shared/IonAssemblerBufferWithConstantPools.h +++ b/js/src/jit/shared/IonAssemblerBufferWithConstantPools.h @@ -8,7 +8,6 @@ #define jit_shared_IonAssemblerBufferWithConstantPools_h #include "mozilla/MathAlgorithms.h" -#include "mozilla/SizePrintfMacros.h" #include @@ -793,7 +792,7 @@ struct AssemblerBufferWithConstantPools : public AssemblerBufferpcToOffset(i.pc())); } else { sprinter.printf(" (%p)\n", i.pc()); diff --git a/js/src/jsopcode.cpp b/js/src/jsopcode.cpp index ff340275806e..a492b36831fa 100644 --- a/js/src/jsopcode.cpp +++ b/js/src/jsopcode.cpp @@ -151,14 +151,14 @@ const char * PCCounts::numExecName = "interp"; static MOZ_MUST_USE bool DumpIonScriptCounts(Sprinter* sp, HandleScript script, jit::IonScriptCounts* ionCounts) { - if (!sp->jsprintf("IonScript [%" PRIuSIZE " blocks]:\n", ionCounts->numBlocks())) + if (!sp->jsprintf("IonScript [%lu blocks]:\n", ionCounts->numBlocks())) return false; for (size_t i = 0; i < ionCounts->numBlocks(); i++) { const jit::IonBlockCounts& block = ionCounts->block(i); unsigned lineNumber = 0, columnNumber = 0; lineNumber = PCToLineNumber(script, script->offsetToPC(block.offset()), &columnNumber); - if (!sp->jsprintf("BB #%" PRIu32 " [%05u,%u,%u]", + if (!sp->jsprintf("BB #%lu [%05u,%u,%u]", block.id(), block.offset(), lineNumber, columnNumber)) { return false; @@ -168,10 +168,10 @@ DumpIonScriptCounts(Sprinter* sp, HandleScript script, jit::IonScriptCounts* ion return false; } for (size_t j = 0; j < block.numSuccessors(); j++) { - if (!sp->jsprintf(" -> #%" PRIu32, block.successor(j))) + if (!sp->jsprintf(" -> #%lu", block.successor(j))) return false; } - if (!sp->jsprintf(" :: %" PRIu64 " hits\n", block.hitCount())) + if (!sp->jsprintf(" :: %llu hits\n", block.hitCount())) return false; if (!sp->jsprintf("%s\n", block.code())) return false; diff --git a/js/src/jsprf.cpp b/js/src/jsprf.cpp index 646b938de834..1f8c1a6dffc3 100644 --- a/js/src/jsprf.cpp +++ b/js/src/jsprf.cpp @@ -63,18 +63,18 @@ struct NumArgState typedef mozilla::Vector NumArgStateVector; -#define TYPE_SHORT 0 -#define TYPE_USHORT 1 +#define TYPE_INT16 0 +#define TYPE_UINT16 1 #define TYPE_INTN 2 #define TYPE_UINTN 3 -#define TYPE_LONG 4 -#define TYPE_ULONG 5 -#define TYPE_LONGLONG 6 -#define TYPE_ULONGLONG 7 +#define TYPE_INT32 4 +#define TYPE_UINT32 5 +#define TYPE_INT64 6 +#define TYPE_UINT64 7 #define TYPE_STRING 8 #define TYPE_DOUBLE 9 #define TYPE_INTSTR 10 -#define TYPE_POINTER 11 +#define TYPE_WSTRING 11 #define TYPE_UNKNOWN 20 #define FLAG_LEFT 0x1 @@ -89,9 +89,31 @@ generic_write(SprintfState* ss, const char* src, size_t srclen) return (*ss->stuff)(ss, src, srclen); } +inline bool +generic_write(SprintfState* ss, const char16_t* src, size_t srclen) +{ + const size_t CHUNK_SIZE = 64; + char chunk[CHUNK_SIZE]; + + size_t j = 0; + size_t i = 0; + while (i < srclen) { + // FIXME: truncates characters to 8 bits + chunk[j++] = char(src[i++]); + + if (j == CHUNK_SIZE || i == srclen) { + if (!(*ss->stuff)(ss, chunk, j)) + return false; + j = 0; + } + } + return true; +} + // Fill into the buffer using the data in src +template static bool -fill2(SprintfState* ss, const char* src, int srclen, int width, int flags) +fill2(SprintfState* ss, const Char* src, int srclen, int width, int flags) { char space = ' '; @@ -296,16 +318,19 @@ static bool cvt_f(SprintfState* ss, double d, const char* fmt0, const char* fmt1 } static inline const char* generic_null_str(const char*) { return "(null)"; } +static inline const char16_t* generic_null_str(const char16_t*) { return u"(null)"; } static inline size_t generic_strlen(const char* s) { return strlen(s); } +static inline size_t generic_strlen(const char16_t* s) { return js_strlen(s); } /* * Convert a string into its printable form. "width" is the output * width. "prec" is the maximum number of characters of "s" to output, * where -1 means until NUL. */ +template static bool -cvt_s(SprintfState* ss, const char* s, int width, int prec, int flags) +cvt_s(SprintfState* ss, const Char* s, int width, int prec, int flags) { if (prec == 0) return true; @@ -427,24 +452,23 @@ BuildArgArray(const char* fmt, va_list ap, NumArgStateVector& nas) // size nas[cn].type = TYPE_INTN; if (c == 'h') { - nas[cn].type = TYPE_SHORT; + nas[cn].type = TYPE_INT16; c = *p++; } else if (c == 'L') { - nas[cn].type = TYPE_LONGLONG; + // XXX not quite sure here + nas[cn].type = TYPE_INT64; c = *p++; } else if (c == 'l') { - nas[cn].type = TYPE_LONG; + nas[cn].type = TYPE_INT32; c = *p++; if (c == 'l') { - nas[cn].type = TYPE_LONGLONG; + nas[cn].type = TYPE_INT64; c = *p++; } } else if (c == 'z' || c == 'I') { - static_assert(sizeof(size_t) == sizeof(int) || sizeof(size_t) == sizeof(long) || - sizeof(size_t) == sizeof(long long), + static_assert(sizeof(size_t) == sizeof(int32_t) || sizeof(size_t) == sizeof(int64_t), "size_t is not one of the expected sizes"); - nas[cn].type = sizeof(size_t) == sizeof(int) ? TYPE_INTN : - sizeof(size_t) == sizeof(long) ? TYPE_LONG : TYPE_LONGLONG; + nas[cn].type = sizeof(size_t) == sizeof(int64_t) ? TYPE_INT64 : TYPE_INT32; c = *p++; } @@ -466,7 +490,16 @@ BuildArgArray(const char* fmt, va_list ap, NumArgStateVector& nas) break; case 'p': - nas[cn].type = TYPE_POINTER; + // XXX should use cpp + if (sizeof(void*) == sizeof(int32_t)) { + nas[cn].type = TYPE_UINT32; + } else if (sizeof(void*) == sizeof(int64_t)) { + nas[cn].type = TYPE_UINT64; + } else if (sizeof(void*) == sizeof(int)) { + nas[cn].type = TYPE_UINTN; + } else { + nas[cn].type = TYPE_UNKNOWN; + } break; case 'C': @@ -479,7 +512,7 @@ BuildArgArray(const char* fmt, va_list ap, NumArgStateVector& nas) break; case 's': - nas[cn].type = TYPE_STRING; + nas[cn].type = (nas[cn].type == TYPE_UINT16) ? TYPE_WSTRING : TYPE_STRING; break; case 'n': @@ -511,18 +544,18 @@ BuildArgArray(const char* fmt, va_list ap, NumArgStateVector& nas) VARARGS_ASSIGN(nas[cn].ap, ap); switch (nas[cn].type) { - case TYPE_SHORT: - case TYPE_USHORT: + case TYPE_INT16: + case TYPE_UINT16: case TYPE_INTN: case TYPE_UINTN: (void) va_arg(ap, int); break; - case TYPE_LONG: (void) va_arg(ap, long); break; - case TYPE_ULONG: (void) va_arg(ap, unsigned long); break; - case TYPE_LONGLONG: (void) va_arg(ap, long long); break; - case TYPE_ULONGLONG: (void) va_arg(ap, unsigned long long); break; + case TYPE_INT32: (void) va_arg(ap, int32_t); break; + case TYPE_UINT32: (void) va_arg(ap, uint32_t); break; + case TYPE_INT64: (void) va_arg(ap, int64_t); break; + case TYPE_UINT64: (void) va_arg(ap, uint64_t); break; case TYPE_STRING: (void) va_arg(ap, char*); break; + case TYPE_WSTRING: (void) va_arg(ap, char16_t*); break; case TYPE_INTSTR: (void) va_arg(ap, int*); break; case TYPE_DOUBLE: (void) va_arg(ap, double); break; - case TYPE_POINTER: (void) va_arg(ap, void*); break; default: MOZ_CRASH(); } @@ -543,13 +576,14 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) int flags, width, prec, radix, type; union { char ch; + char16_t wch; int i; long l; - long long ll; + int64_t ll; double d; const char* s; + const char16_t* ws; int* ip; - void* p; } u; const char* fmt0; static const char hex[] = "0123456789abcdef"; @@ -651,24 +685,23 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) // size type = TYPE_INTN; if (c == 'h') { - type = TYPE_SHORT; + type = TYPE_INT16; c = *fmt++; } else if (c == 'L') { - type = TYPE_LONGLONG; + // XXX not quite sure here + type = TYPE_INT64; c = *fmt++; } else if (c == 'l') { - type = TYPE_LONG; + type = TYPE_INT32; c = *fmt++; if (c == 'l') { - type = TYPE_LONGLONG; + type = TYPE_INT64; c = *fmt++; } } else if (c == 'z' || c == 'I') { - static_assert(sizeof(size_t) == sizeof(int) || sizeof(size_t) == sizeof(long) || - sizeof(size_t) == sizeof(long long), + static_assert(sizeof(size_t) == sizeof(int32_t) || sizeof(size_t) == sizeof(int64_t), "size_t is not one of the expected sizes"); - type = sizeof(size_t) == sizeof(int) ? TYPE_INTN : - sizeof(size_t) == sizeof(long) ? TYPE_LONG : TYPE_LONGLONG; + type = sizeof(size_t) == sizeof(int64_t) ? TYPE_INT64 : TYPE_INT32; c = *fmt++; } @@ -702,15 +735,15 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) fetch_and_convert: switch (type) { - case TYPE_SHORT: + case TYPE_INT16: u.l = va_arg(ap, int); if (u.l < 0) { u.l = -u.l; flags |= FLAG_NEG; } goto do_long; - case TYPE_USHORT: - u.l = (unsigned short) va_arg(ap, unsigned int); + case TYPE_UINT16: + u.l = va_arg(ap, int) & 0xffff; goto do_long; case TYPE_INTN: u.l = va_arg(ap, int); @@ -723,33 +756,30 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) u.l = (long)va_arg(ap, unsigned int); goto do_long; - case TYPE_LONG: - u.l = va_arg(ap, long); + case TYPE_INT32: + u.l = va_arg(ap, int32_t); if (u.l < 0) { u.l = -u.l; flags |= FLAG_NEG; } goto do_long; - case TYPE_ULONG: - u.l = (long)va_arg(ap, unsigned long); + case TYPE_UINT32: + u.l = (long)va_arg(ap, uint32_t); do_long: if (!cvt_l(ss, u.l, width, prec, radix, type, flags, hexp)) return false; break; - case TYPE_LONGLONG: - u.ll = va_arg(ap, long long); + case TYPE_INT64: + u.ll = va_arg(ap, int64_t); if (u.ll < 0) { u.ll = -u.ll; flags |= FLAG_NEG; } goto do_longlong; - case TYPE_POINTER: - u.ll = (uintptr_t)va_arg(ap, void*); - goto do_longlong; - case TYPE_ULONGLONG: - u.ll = va_arg(ap, unsigned long long); + case TYPE_UINT64: + u.ll = va_arg(ap, uint64_t); do_longlong: if (!cvt_ll(ss, u.ll, width, prec, radix, type, flags, hexp)) return false; @@ -786,7 +816,7 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) } } switch (type) { - case TYPE_SHORT: + case TYPE_INT16: case TYPE_INTN: u.ch = va_arg(ap, int); if (!(*ss->stuff)(ss, &u.ch, 1)) @@ -802,7 +832,16 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) break; case 'p': - type = TYPE_POINTER; + if (sizeof(void*) == sizeof(int32_t)) { + type = TYPE_UINT32; + } else if (sizeof(void*) == sizeof(int64_t)) { + type = TYPE_UINT64; + } else if (sizeof(void*) == sizeof(int)) { + type = TYPE_UINTN; + } else { + MOZ_ASSERT(0); + break; + } radix = 16; goto fetch_and_convert; @@ -817,9 +856,15 @@ dosprintf(SprintfState* ss, const char* fmt, va_list ap) #endif case 's': - u.s = va_arg(ap, const char*); - if (!cvt_s(ss, u.s, width, prec, flags)) - return false; + if(type == TYPE_INT16) { + u.ws = va_arg(ap, const char16_t*); + if (!cvt_s(ss, u.ws, width, prec, flags)) + return false; + } else { + u.s = va_arg(ap, const char*); + if (!cvt_s(ss, u.s, width, prec, flags)) + return false; + } break; case 'n': @@ -959,18 +1004,18 @@ JS_vsprintf_append(char* last, const char* fmt, va_list ap) return ss.base; } -#undef TYPE_SHORT -#undef TYPE_USHORT +#undef TYPE_INT16 +#undef TYPE_UINT16 #undef TYPE_INTN #undef TYPE_UINTN -#undef TYPE_LONG -#undef TYPE_ULONG -#undef TYPE_LONGLONG -#undef TYPE_ULONGLONG +#undef TYPE_INT32 +#undef TYPE_UINT32 +#undef TYPE_INT64 +#undef TYPE_UINT64 #undef TYPE_STRING #undef TYPE_DOUBLE #undef TYPE_INTSTR -#undef TYPE_POINTER +#undef TYPE_WSTRING #undef TYPE_UNKNOWN #undef FLAG_LEFT diff --git a/js/src/jsprf.h b/js/src/jsprf.h index b84b5a5c9864..3bdbe638472c 100644 --- a/js/src/jsprf.h +++ b/js/src/jsprf.h @@ -14,13 +14,11 @@ ** %x - unsigned hex ** %X - unsigned uppercase hex ** %o - unsigned octal -** %hd, %hu, %hx, %hX, %ho - "short" versions of above -** %ld, %lu, %lx, %lX, %lo - "long" versions of above -** %lld, %llu, %llx, %llX, %llo - "long long" versions of above -** %zd, %zo, %zu, %zx, %zX - size_t versions of above -** %Id, %Io, %Iu, %Ix, %IX - size_t versions of above (for Windows compat) -** You should use PRI*SIZE macros instead -** %s - string +** %hd, %hu, %hx, %hX, %ho - 16-bit versions of above +** %ld, %lu, %lx, %lX, %lo - 32-bit versions of above +** %lld, %llu, %llx, %llX, %llo - 64 bit versions of above +** %s - ascii string +** %hs - ucs2 string ** %c - character ** %p - pointer (deals with machine dependent pointer size) ** %f - float @@ -39,8 +37,7 @@ ** buffer on success, nullptr on failure. Call "JS_smprintf_free" to release ** the memory returned. */ -extern JS_PUBLIC_API(char*) JS_smprintf(const char* fmt, ...) - MOZ_FORMAT_PRINTF(1, 2); +extern JS_PUBLIC_API(char*) JS_smprintf(const char* fmt, ...); /* ** Free the memory allocated, for the caller, by JS_smprintf @@ -54,8 +51,7 @@ extern JS_PUBLIC_API(void) JS_smprintf_free(char* mem); ** will allocate the initial string. The return value is the new value of ** last for subsequent calls, or nullptr if there is a malloc failure. */ -extern JS_PUBLIC_API(char*) JS_sprintf_append(char* last, const char* fmt, ...) - MOZ_FORMAT_PRINTF(2, 3); +extern JS_PUBLIC_API(char*) JS_sprintf_append(char* last, const char* fmt, ...); /* ** va_list forms of the above. diff --git a/js/src/moz.build b/js/src/moz.build index a0b563b9e4e6..8f830f6caebc 100644 --- a/js/src/moz.build +++ b/js/src/moz.build @@ -783,7 +783,7 @@ if CONFIG['JS_HAS_CTYPES']: DEFINES['FFI_BUILDING'] = True if CONFIG['GNU_CXX']: - CXXFLAGS += ['-Wno-shadow', '-Werror=format'] + CXXFLAGS += ['-Wno-shadow'] # Suppress warnings in third-party code. if CONFIG['CLANG_CXX']: diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index e120b17c293c..b53af7be407e 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -5232,7 +5232,7 @@ ReflectTrackedOptimizations(JSContext* cx, unsigned argc, Value* vp) uint8_t* addr = ion->method()->raw() + endOffset; entry.youngestFrameLocationAtAddr(rt, addr, &script, &pc); - if (!sp.jsprintf("{\"location\":\"%s:%" PRIuSIZE "\",\"offset\":%" PRIuSIZE ",\"index\":%u}%s", + if (!sp.jsprintf("{\"location\":\"%s:%u\",\"offset\":%u,\"index\":%u}%s", script->filename(), script->lineno(), script->pcToOffset(pc), index, iter.more() ? "," : "")) { diff --git a/js/src/shell/jsoptparse.cpp b/js/src/shell/jsoptparse.cpp index eaf4042d3bf4..5e1a3aa09fdc 100644 --- a/js/src/shell/jsoptparse.cpp +++ b/js/src/shell/jsoptparse.cpp @@ -264,7 +264,7 @@ OptionParser::extractValue(size_t argc, char** argv, size_t* i, char** value) if (eq) { *value = eq + 1; if (*value[0] == '\0') - return error("A value is required for option %.*s", (int) (eq - argv[*i]), argv[*i]); + return error("A value is required for option %.*s", eq - argv[*i], argv[*i]); return Okay; } diff --git a/js/src/shell/jsoptparse.h b/js/src/shell/jsoptparse.h index 274978130ea3..b2a24348186a 100644 --- a/js/src/shell/jsoptparse.h +++ b/js/src/shell/jsoptparse.h @@ -228,7 +228,7 @@ class OptionParser Option* findArgument(const char* name); const Option* findArgument(const char* name) const; - Result error(const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); + Result error(const char* fmt, ...); Result extractValue(size_t argc, char** argv, size_t* i, char** value); Result handleArg(size_t argc, char** argv, size_t* i, bool* optsAllowed); Result handleOption(Option* opt, size_t argc, char** argv, size_t* i, bool* optsAllowed); diff --git a/js/src/shell/moz.build b/js/src/shell/moz.build index 72ea8145cc31..77475b241fa8 100644 --- a/js/src/shell/moz.build +++ b/js/src/shell/moz.build @@ -51,7 +51,7 @@ shellmoduleloader.inputs = [ ] if CONFIG['GNU_CXX']: - CXXFLAGS += ['-Wno-shadow', '-Werror=format'] + CXXFLAGS += ['-Wno-shadow'] # This is intended as a temporary workaround to enable VS2015. if CONFIG['_MSC_VER']: diff --git a/js/src/vm/CodeCoverage.cpp b/js/src/vm/CodeCoverage.cpp index e7146a32a3be..280256b66eef 100644 --- a/js/src/vm/CodeCoverage.cpp +++ b/js/src/vm/CodeCoverage.cpp @@ -91,16 +91,16 @@ LCovSource::exportInto(GenericPrinter& out) const outFN_.exportInto(out); outFNDA_.exportInto(out); - out.printf("FNF:%" PRIuSIZE "\n", numFunctionsFound_); - out.printf("FNH:%" PRIuSIZE "\n", numFunctionsHit_); + out.printf("FNF:%d\n", numFunctionsFound_); + out.printf("FNH:%d\n", numFunctionsHit_); outBRDA_.exportInto(out); - out.printf("BRF:%" PRIuSIZE "\n", numBranchesFound_); - out.printf("BRH:%" PRIuSIZE "\n", numBranchesHit_); + out.printf("BRF:%d\n", numBranchesFound_); + out.printf("BRH:%d\n", numBranchesHit_); outDA_.exportInto(out); - out.printf("LF:%" PRIuSIZE "\n", numLinesInstrumented_); - out.printf("LH:%" PRIuSIZE "\n", numLinesHit_); + out.printf("LF:%d\n", numLinesInstrumented_); + out.printf("LH:%d\n", numLinesHit_); out.put("end_of_record\n"); } @@ -130,7 +130,7 @@ bool LCovSource::writeScript(JSScript* script) { numFunctionsFound_++; - outFN_.printf("FN:%" PRIuSIZE ",", script->lineno()); + outFN_.printf("FN:%d,", script->lineno()); if (!writeScriptName(outFN_, script)) return false; outFN_.put("\n", 1); @@ -191,7 +191,7 @@ LCovSource::writeScript(JSScript* script) } if (oldLine != lineno && fallsthrough) { - outDA_.printf("DA:%" PRIuSIZE ",%" PRIu64 "\n", lineno, hits); + outDA_.printf("DA:%d,%" PRIu64 "\n", lineno, hits); // Count the number of lines instrumented & hit. numLinesInstrumented_++; @@ -220,13 +220,13 @@ LCovSource::writeScript(JSScript* script) } uint64_t taken = hits - fallthroughHits; - outBRDA_.printf("BRDA:%" PRIuSIZE ",%" PRIuSIZE ",0,", lineno, branchId); + outBRDA_.printf("BRDA:%d,%d,0,", lineno, branchId); if (taken) outBRDA_.printf("%" PRIu64 "\n", taken); else outBRDA_.put("-\n", 2); - outBRDA_.printf("BRDA:%" PRIuSIZE ",%" PRIuSIZE ",1,", lineno, branchId); + outBRDA_.printf("BRDA:%d,%d,1,", lineno, branchId); if (fallthroughHits) outBRDA_.printf("%" PRIu64 "\n", fallthroughHits); else @@ -308,8 +308,7 @@ LCovSource::writeScript(JSScript* script) caseHits -= fallsThroughHits; } - outBRDA_.printf("BRDA:%" PRIuSIZE ",%" PRIuSIZE ",%" PRIuSIZE ",", - lineno, branchId, caseId); + outBRDA_.printf("BRDA:%d,%d,%d,", lineno, branchId, caseId); if (caseHits) outBRDA_.printf("%" PRIu64 "\n", caseHits); else @@ -360,8 +359,7 @@ LCovSource::writeScript(JSScript* script) } if (defaultHasOwnClause) { - outBRDA_.printf("BRDA:%" PRIuSIZE ",%" PRIuSIZE ",%" PRIuSIZE ",", - lineno, branchId, caseId); + outBRDA_.printf("BRDA:%d,%d,%d,", lineno, branchId, caseId); if (defaultHits) outBRDA_.printf("%" PRIu64 "\n", defaultHits); else diff --git a/js/src/vm/Printer.h b/js/src/vm/Printer.h index 3ee76da44d5e..ae70d59fa114 100644 --- a/js/src/vm/Printer.h +++ b/js/src/vm/Printer.h @@ -43,7 +43,7 @@ class GenericPrinter } // Prints a formatted string into the buffer. - virtual int printf(const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); + virtual int printf(const char* fmt, ...); virtual int vprintf(const char* fmt, va_list ap); // Report that a string operation failed to get the memory it requested. The @@ -115,7 +115,7 @@ class Sprinter final : public GenericPrinter // Format the given format/arguments as if by JS_vsmprintf, then put it. // Return true on success, else return false and report an error (typically // OOM). - MOZ_MUST_USE bool jsprintf(const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); + MOZ_MUST_USE bool jsprintf(const char* fmt, ...); // Prints a formatted string into the buffer. virtual int vprintf(const char* fmt, va_list ap) override; @@ -157,7 +157,7 @@ class Fprinter final : public GenericPrinter using GenericPrinter::put; // pick up |inline int put(const char* s);| // Prints a formatted string into the buffer. - virtual int printf(const char* fmt, ...) override MOZ_FORMAT_PRINTF(2, 3); + virtual int printf(const char* fmt, ...) override; virtual int vprintf(const char* fmt, va_list ap) override; }; @@ -203,7 +203,7 @@ class LSprinter final : public GenericPrinter using GenericPrinter::put; // pick up |inline int put(const char* s);| // Prints a formatted string into the buffer. - virtual int printf(const char* fmt, ...) override MOZ_FORMAT_PRINTF(2, 3); + virtual int printf(const char* fmt, ...) override; virtual int vprintf(const char* fmt, va_list ap) override; // Report that a string operation failed to get the memory it requested. The diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp index 6f6792e98040..16d270b7e54a 100644 --- a/js/src/vm/TraceLoggingGraph.cpp +++ b/js/src/vm/TraceLoggingGraph.cpp @@ -50,7 +50,6 @@ TraceLoggerGraphState* traceLoggerGraphState = nullptr; // are allowed, with %u standing for a full 32-bit number and %d standing for // an up to 3-digit number. static js::UniqueChars -MOZ_FORMAT_PRINTF(1, 2) AllocTraceLogFilename(const char* pattern, ...) { js::UniqueChars filename; diff --git a/js/src/vm/TypeInference.cpp b/js/src/vm/TypeInference.cpp index 762edf71d3a5..97a92fccee95 100644 --- a/js/src/vm/TypeInference.cpp +++ b/js/src/vm/TypeInference.cpp @@ -237,7 +237,6 @@ js::InferSpewImpl(const char* fmt, ...) #endif MOZ_NORETURN MOZ_COLD static void -MOZ_FORMAT_PRINTF(2, 3) TypeFailure(JSContext* cx, const char* fmt, ...) { char msgbuf[1024]; /* Larger error messages will be truncated */ @@ -3289,7 +3288,7 @@ js::TypeMonitorResult(JSContext* cx, JSScript* script, jsbytecode* pc, TypeSet:: if (types->hasType(type)) return; - InferSpew(ISpewOps, "bytecodeType: %p %05" PRIuSIZE ": %s", + InferSpew(ISpewOps, "bytecodeType: %p %05u: %s", script, script->pcToOffset(pc), TypeSet::TypeString(type)); types->addType(cx, type); } diff --git a/js/src/vm/TypeInference.h b/js/src/vm/TypeInference.h index 26522727c98f..ee243bf299f0 100644 --- a/js/src/vm/TypeInference.h +++ b/js/src/vm/TypeInference.h @@ -1296,7 +1296,7 @@ const char * InferSpewColor(TypeConstraint* constraint); const char * InferSpewColor(TypeSet* types); #define InferSpew(channel, ...) if (InferSpewActive(channel)) { InferSpewImpl(__VA_ARGS__); } else {} -void InferSpewImpl(const char* fmt, ...) MOZ_FORMAT_PRINTF(1, 2); +void InferSpewImpl(const char* fmt, ...); /* Check that the type property for id in group contains value. */ bool ObjectGroupHasProperty(JSContext* cx, ObjectGroup* group, jsid id, const Value& value); diff --git a/js/xpconnect/loader/mozJSComponentLoader.cpp b/js/xpconnect/loader/mozJSComponentLoader.cpp index 95c214867758..2f0c0ff40a56 100644 --- a/js/xpconnect/loader/mozJSComponentLoader.cpp +++ b/js/xpconnect/loader/mozJSComponentLoader.cpp @@ -154,7 +154,6 @@ private: }; static nsresult -MOZ_FORMAT_PRINTF(2, 3) ReportOnCallerUTF8(JSContext* callerContext, const char* format, ...) { if (!callerContext) { @@ -178,7 +177,6 @@ ReportOnCallerUTF8(JSContext* callerContext, } static nsresult -MOZ_FORMAT_PRINTF(2, 3) ReportOnCallerUTF8(JSCLContextHelper& helper, const char* format, ...) { diff --git a/js/xpconnect/src/XPCThrower.cpp b/js/xpconnect/src/XPCThrower.cpp index 4a37e1554287..ad479b4e3eb8 100644 --- a/js/xpconnect/src/XPCThrower.cpp +++ b/js/xpconnect/src/XPCThrower.cpp @@ -116,9 +116,9 @@ XPCThrower::ThrowBadResult(nsresult rv, nsresult result, XPCCallContext& ccx) format = ""; if (nsXPCException::NameAndFormatForNSResult(result, &name, nullptr) && name) - sz = JS_smprintf("%s 0x%x (%s)", format, (unsigned) result, name); + sz = JS_smprintf("%s 0x%x (%s)", format, result, name); else - sz = JS_smprintf("%s 0x%x", format, (unsigned) result); + sz = JS_smprintf("%s 0x%x", format, result); NS_ENSURE_TRUE_VOID(sz); if (sz && sVerbose) diff --git a/js/xpconnect/src/XPCWrappedJSClass.cpp b/js/xpconnect/src/XPCWrappedJSClass.cpp index 0cf82633c6c9..518c8c94ce62 100644 --- a/js/xpconnect/src/XPCWrappedJSClass.cpp +++ b/js/xpconnect/src/XPCWrappedJSClass.cpp @@ -971,7 +971,7 @@ nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS* wrapper, uint16_t methodIndex, const char* str = "IDL methods marked with [implicit_jscontext] " "or [optional_argc] may not be implemented in JS"; // Throw and warn for good measure. - JS_ReportErrorASCII(cx, "%s", str); + JS_ReportErrorASCII(cx, str); NS_WARNING(str); return CheckForException(ccx, aes, name, GetInterfaceName()); } diff --git a/js/xpconnect/src/moz.build b/js/xpconnect/src/moz.build index 94d58577cc79..9108fd66aca2 100644 --- a/js/xpconnect/src/moz.build +++ b/js/xpconnect/src/moz.build @@ -72,4 +72,4 @@ if CONFIG['MOZ_B2G_BT']: ] if CONFIG['GNU_CXX']: - CXXFLAGS += ['-Wno-shadow', '-Werror=format'] + CXXFLAGS += ['-Wno-shadow'] diff --git a/js/xpconnect/wrappers/AccessCheck.cpp b/js/xpconnect/wrappers/AccessCheck.cpp index 9f468931f197..66e96d04c34a 100644 --- a/js/xpconnect/wrappers/AccessCheck.cpp +++ b/js/xpconnect/wrappers/AccessCheck.cpp @@ -274,7 +274,7 @@ static void EnterAndThrowASCII(JSContext* cx, JSObject* wrapper, const char* msg) { JSAutoCompartment ac(cx, wrapper); - JS_ReportErrorASCII(cx, "%s", msg); + JS_ReportErrorASCII(cx, msg); } bool