Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3108e0a68c0ea7f887716cdb73cbd3f9109ddc78
      
https://github.com/WebKit/WebKit/commit/3108e0a68c0ea7f887716cdb73cbd3f9109ddc78
  Author: Dan Hecht <[email protected]>
  Date:   2026-08-01 (Sat, 01 Aug 2026)

  Changed paths:
    M Source/JavaScriptCore/b3/B3LowerToAir.cpp
    M Source/JavaScriptCore/b3/air/opcode_generator.rb

  Log Message:
  -----------
  REGRESSION(318202@main): Win-Build-EWS -  failing compile-webkit
https://bugs.webkit.org/show_bug.cgi?id=320754
rdar://183756146

Reviewed by Yusuke Suzuki and Ian Grunert.

The generated AirOpcodeUtils.h and AirOpcodeGenerated.h #undef the <windows.h>
macros that collide with Air opcode names (RotateRight32, MemoryFence, and
friends) and then #include AirInstInlines.h, CCallHelpers.h, and others. Those
includes reach <windows.h>, which re-defines the macros, so the references that
follow expand to garbage: "no member named '_rotr' in 'JSC::B3::Air::Opcode'"
for case Opcode::RotateRight32. The headers only compiled because something had
already pulled <windows.h> into the translation unit ahead of the undefs, either
via JavaScriptCorePrefix.h (286296@main) or via an earlier file in the same
unified source bundle. 318202@main dropped a file from Sources.txt, which
shifted the b3 bundles so that AirGenerated.cpp became the first file in
UnifiedSource-b3-15.cpp, leaving nothing ahead of it.

Emit the #includes before the #pragma push_macro/#undef block, so no header is
read while the macros are undefined and none of them can re-define the names.
This makes the generated headers independent of bundle order and of whether the
prefix header reaches the translation unit. B3LowerToAir.cpp had the same
ordering, so it gets the same treatment; its #pragma pop_macro block moves
inside #if USE(JSVALUE64) to stay balanced with the pushes.

* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/air/opcode_generator.rb:

Canonical link: https://commits.webkit.org/318381@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to