diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td @@ -476,7 +476,7 @@ def LLVM_DINamespaceAttr : LLVM_Attr<"DINamespace", "di_namespace", /*traits=*/[], "DIScopeAttr"> { let parameters = (ins - "StringAttr":$name, + OptionalParameter<"StringAttr">:$name, OptionalParameter<"DIScopeAttr">:$scope, "bool":$exportSymbols ); diff --git a/mlir/test/Dialect/LLVMIR/debuginfo.mlir b/mlir/test/Dialect/LLVMIR/debuginfo.mlir --- a/mlir/test/Dialect/LLVMIR/debuginfo.mlir +++ b/mlir/test/Dialect/LLVMIR/debuginfo.mlir @@ -60,6 +60,12 @@ name = "nested", scope = #toplevel_namespace, exportSymbols = false > +// CHECK-DAG: #[[ANONYMOUS_NS:.*]] = #llvm.di_namespace +#anonymous_namespace = #llvm.di_namespace< + scope = #file, + exportSymbols = false +> + // CHECK-DAG: #[[COMP2:.*]] = #llvm.di_composite_type #comp2 = #llvm.di_composite_type< tag = DW_TAG_class_type, name = "class_name", file = #file, scope = #nested_namespace, @@ -83,9 +89,9 @@ callingConvention = DW_CC_normal > -// CHECK-DAG: #[[SP0:.*]] = #llvm.di_subprogram +// CHECK-DAG: #[[SP0:.*]] = #llvm.di_subprogram #sp0 = #llvm.di_subprogram< - compileUnit = #cu, scope = #file, name = "addr", linkageName = "addr", + compileUnit = #cu, scope = #anonymous_namespace, name = "addr", linkageName = "addr", file = #file, line = 3, scopeLine = 3, subprogramFlags = "Definition|Optimized", type = #spType0 >