Skip to content

#include "" broke subsequent #include_next #10661

@Alexandr-Konovalov

Description

@Alexandr-Konovalov
C:\Users\akonoval\src\include_hext>clang++.exe -v -I include\oneapi\dpl\stdpar -I include -O0 -g -w -S test.cpp
clang version 17.0.0 (https://github.com/intel/llvm 1a5e53216b009177c73dfd6d644a5c016b71b552)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Users\akonoval\sycl_workspace\llvm\build\bin
 (in-process)
 "C:\\Users\\akonoval\\sycl_workspace\\llvm\\build\\bin\\clang++.exe" -cc1 -triple x86_64-pc-windows-msvc19.36.32537 -S -disable-free -clear-ast-before-backend -main-file-name test.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -gno-column-info -gcodeview -debug-info-kind=constructor -v "-fcoverage-compilation-dir=C:\\Users\\akonoval\\src\\include_hext" -resource-dir "C:\\Users\\akonoval\\sycl_workspace\\llvm\\build\\lib\\clang\\17" -I "include\\oneapi\\dpl\\stdpar" -I include "-IC:\\Users\\akonoval\\src\\oneTBB\\include" -I. -internal-isystem "C:\\Users\\akonoval\\sycl_workspace\\llvm\\build\\lib\\clang\\17\\include" -internal-isystem "C:\\Users\\akonoval\\src\\oneTBB\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.36.32532\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.36.32532\\ATLMFC\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Auxiliary\\VS\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22000.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\winrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\cppwinrt" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.36.32532\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.36.32532\\ATLMFC\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Auxiliary\\VS\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22000.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\winrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\cppwinrt" -O0 -w -fdeprecated-macro "-fdebug-compilation-dir=C:\\Users\\akonoval\\src\\include_hext" -ferror-limit 19 -fmessage-length=120 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.36.32537 -std=c++14 -fdelayed-template-parsing -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -o test.s -x c++ test.cpp
clang -cc1 version 17.0.0 based upon LLVM 17.0.0git default target x86_64-pc-windows-msvc
ignoring duplicate directory "C:\Users\akonoval\src\oneTBB\include"
  as it is a non-system directory that duplicates a system directory
ignoring duplicate directory "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.36.32532\include"
ignoring duplicate directory "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.36.32532\ATLMFC\include"
ignoring duplicate directory "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include"
ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt"
ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um"
ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared"
ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt"
ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt"
#include "..." search starts here:
#include <...> search starts here:
 include\oneapi\dpl\stdpar
 include
 .
 C:\Users\akonoval\sycl_workspace\llvm\build\lib\clang\17\include
 C:\Users\akonoval\src\oneTBB\include
 C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.36.32532\include
 C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.36.32532\ATLMFC\include
 C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\VS\include
 C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt
 C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um
 C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared
 C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt
 C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt
End of search list.
In file included from test.cpp:1:
In file included from include\oneapi\dpl\stdpar\algorithm:16:
In file included from include\oneapi\dpl\stdpar\oneapi/dpl/algorithm:16:
In file included from include\oneapi/dpl/algorithm:19:
In file included from include\oneapi/dpl/stdpar/internal/algorithm_impl.h:19:
include\oneapi\dpl\stdpar/oneapi/dpl/execution:16:15: fatal error: 'oneapi/dpl/execution' file not found
   16 | #include_next <oneapi/dpl/execution>
      |               ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.

If #include "" replaced with #include <>, #include_next functionality is restored.

$ diff -u include/oneapi/dpl/stdpar/internal/algorithm_impl.h.fixed  include/oneapi/dpl/stdpar/internal/algorithm_impl.h
--- include/oneapi/dpl/stdpar/internal/algorithm_impl.h.fixed   2023-08-02 16:05:00.759781400 +0200
+++ include/oneapi/dpl/stdpar/internal/algorithm_impl.h 2023-08-02 16:04:57.704476600 +0200
@@ -16,6 +16,6 @@
 #ifndef _ONEDPL_STDPAR_INTERNAL_ALGORITHM_IMPL_H
 #define _ONEDPL_STDPAR_INTERNAL_ALGORITHM_IMPL_H

-#include <oneapi/dpl/execution>
+#include "oneapi/dpl/execution"

 #endif // _ONEDPL_STDPAR_INTERNAL_ALGORITHM_IMPL_H

Environment:

Only Windows affected, same version under Linux is not affected.
clang version 17.0.0 (https://github.com/intel/llvm 1a5e532)
Target: x86_64-pc-windows-msvc
Thread model: posix

Please find the reproducer attached include_next.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    Need infoSome clarifications are needed from the reporterbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions