[all-commits] [llvm/llvm-project] a3529a: [libc++][test] Avoid preprocessor directives in ma...

Stephan T. Lavavej via All-commits all-commits at lists.llvm.org
Mon Nov 27 17:38:12 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a3529aa92ee48552946066330f5302281a49e447
      https://github.com/llvm/llvm-project/commit/a3529aa92ee48552946066330f5302281a49e447
  Author: Stephan T. Lavavej <stl at nuwen.net>
  Date:   2023-11-27 (Mon, 27 Nov 2023)

  Changed paths:
    M libcxx/test/std/input.output/iostream.format/print.fun/print.file.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/println.file.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/vprint_nonunicode.file.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/vprint_unicode.file.pass.cpp
    M libcxx/test/support/test_macros.h

  Log Message:
  -----------
  [libc++][test] Avoid preprocessor directives in macro argument lists (#73440)

Found while running libc++'s test suite with MSVC's STL.

MSVC has a level 1 "warning C5101: use of preprocessor directive in
function-like macro argument list is undefined behavior". I don't know
why Clang doesn't complain about this.

There are some formatting tests which densely interleave preprocessor
directives within function-like macros, and they would need invasive
changes. For now, I'm just skipping those tests.

However, a few tests were only slightly affected, and I was able to add
a new test macro `TEST_IF_AIX` to make them portable.




More information about the All-commits mailing list