[PATCH] D145726: Fix assembler error when -g and -gdwarf-* is passed with -fno-integrated-as.

Nick Desaulniers via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 29 10:55:05 PDT 2023


nickdesaulniers added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/Gnu.cpp:980-981
+    StringRef BaseInput = StringRef(II.getBaseInput());
+    types::ID InputType = types::lookupTypeForExtension(
+        llvm::sys::path::extension(BaseInput).drop_front());
+    if (InputType == types::TY_Asm || InputType == types::TY_PP_Asm)
----------------
garvitgupta08 wrote:
> nickdesaulniers wrote:
> > The following input causes clang to crash:
> > 
> > ```
> > $ clang -fno-integrated-as -c -x assembler-with-cpp /dev/null
> > clang: /android0/llvm-project/llvm/include/llvm/ADT/StringRef.h:597: llvm::StringRef llvm::StringRef::drop_front(size_t) const: Assertion `size() >= N && "Dropping more elements than exist"' failed.
> > ```
> > 
> > Please fix that and add a test case for `/dev/null` (i.e. inputs for which no extension exists).
> For Inputs without extension, will there always be a -x flag?
I assume the input can have any extension or no extension. Maybe find where in clang we decide we don't know the extension, and emulate a similar approach?

For example, `clang foo.xyz` will complain that we don't know the source language. `clang -x c foo.xyz` should shut up the warning if `foo.xyz` is a valid c file.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145726/new/

https://reviews.llvm.org/D145726



More information about the cfe-commits mailing list